Explanation: Every executable statement is covered is the statement that is guaranteed to be true if a program got 100% decision coverage in a test. Decision coverage is a structure-based testing technique that measures how many decision outcomes have been exercised by a set of test cases. A decision is a control structure that has two or more possible outcomes (e.g., if-then-else, switch-case, etc.). Decision coverage requires that each decision outcome is executed at least once by a test case. If a program got 100% decision coverage in a test, it means that every possible outcome of every decision in the code has been covered by at least one test case. This also implies that every executable statement in the code has been covered by at least one test case, since every statement belongs to some decision outcome2 explains decision coverage as follows:
Decision Coverage (also known as Branch Coverage) is a white box testing technique which measures how many decision outcomes have been tested by a set of test cases.
A decision is any control structure where there are two or more possible paths through it (e.g., if-then-else statements, switch-case statements, etc.). Each path through such control structures represents an outcome.
Decision Coverage requires that each outcome from each decision point be executed at least once by one or more test cases.
Decision Coverage can be calculated as follows:
Decision Coverage = (Number of Decision Outcomes Executed / Total Number of Decision Outcomes) * 100%
If Decision Coverage is 100%, it means that every possible outcome from every decision point has been tested by at least one test case. This also means that every executable statement has been tested by at least one test case.
A, B, and C are incorrect answers. Every output equivalence class has been tested (A), every input equivalence class has been tested (B), and the “dead” code has not been covered © are statements that are not guaranteed to be true if a program got 100% decision coverage in a test. Equivalence classes are groups of inputs or outputs that are expected to produce similar results or behavior from the system under test. Equivalence partitioning is a specification-based testing technique that uses equivalence classes to design test cases. Decision coverage is a structure-based testing technique that does not consider equivalence classes, but only the outcomes of the decisions in the code. Therefore, achieving 100% decision coverage does not ensure that every output or input equivalence class has been tested. Dead code is code that can never be executed, regardless of the input values or conditions. Dead code can be caused by logic errors, redundant statements, unreachable branches, etc. Decision coverage does not detect or cover dead code, since it only considers the outcomes of the decisions that can be executed. Therefore, achieving 100% decision coverage does not imply that the dead code has not been covered.