Elementary comparison testing (ECT) is a
white-box,
control-flow
In computer science, control flow (or flow of control) is the order in which individual statements, instructions or function calls of an imperative program are executed or evaluated. The emphasis on explicit control flow distinguishes an ''imp ...
,
test-design methodology used in
software development
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invol ...
.
[Lee Copeland (2004). ''A Practitioners Guide to Software Test Design'', chapter 10. Artech House Publishers, Norwood. .] The purpose of ECT is to enable detailed testing of complex software. Software code or
pseudocode
In computer science, pseudocode is a plain language description of the steps in an algorithm or another system. Pseudocode often uses structural conventions of a normal programming language, but is intended for human reading rather than machine re ...
is tested to assess the proper handling of all decision outcomes. As with
multiple-condition coverage and
basis path testing,
coverage of all independent and isolated conditions is accomplished through
modified condition/decision coverage (MC/DC).
[Tim Kroom (2006). ''TMap Next, for result driven testing'', p. 668. UTN Publishers, Rotterdam. .] Isolated conditions are aggregated into connected situations creating formal
test case
In software engineering, a test case is a specification of the inputs, execution conditions, testing procedure, and expected results that define a single test to be executed to achieve a particular software testing objective, such as to exercise ...
s. The independence of a condition is shown by changing the condition value in isolation. Each relevant condition value is covered by
test case
In software engineering, a test case is a specification of the inputs, execution conditions, testing procedure, and expected results that define a single test to be executed to achieve a particular software testing objective, such as to exercise ...
s.
Test case
A
test case
In software engineering, a test case is a specification of the inputs, execution conditions, testing procedure, and expected results that define a single test to be executed to achieve a particular software testing objective, such as to exercise ...
consists of a logical path through one or many decisions from start to end of a process. Contradictory situations are deduced from the test case matrix and excluded. The
MC/DC approach isolates every condition, neglecting all possible subpath combinations and path coverage.
where
* ''T'' is the number of test cases per decision and
* ''n'' the number of conditions.
The decision
consists of a combination of elementary conditions
The transition function
is defined as
Given the transition
the isolated test path
consists of
Test case graph
A test case graph illustrates all the necessary independent paths (test cases) to cover all isolated conditions. Conditions are represented by nodes, and condition values (situations) by edges. An edge addresses all program situations. Each situation is connected to one preceding and successive condition. Test cases might overlap due to isolated conditions.
Inductive proof of a number of condition paths
The elementary comparison testing method can be used to determine the number of condition paths by inductive proof.
There are
possible condition value combinations
When each condition
is isolated, the number of required test cases
per decision is:
there are