2. BLACK-BOX VS. WHITE-BOX
Test cases derived from specifications
The focus is not the design, nor the implementation
The focus is on the logic of implementation
3. WHITE BOX (STRUCTURAL
TESTING)
Structural - test case selection is based on an
analysis of the internal structure of
component
Control flow
Statement testing
Branch/Decision Testing
Branch Condition Testing
Modified Condition Combination Testing
Data flow testing
4. WHITE BOX
Using the white-box testing techniques outlined
in this seminar, a software engineer can design
test cases that
exercise independent paths within a module or unit;
exercise logical decisions on both their true and false side;
execute loops at their boundaries and within their
operational bounds
exercise internal data structures to ensure their validity
5. STATEMENT TESTING
uses a model of the program’s control flow
it is designed in order to execute all or selected statements of the
test object
An entity in a programming
language which is typically
the smallest indivisible unit of
execution.
Test cases are design to execute
each statement.
For each test case specify:
• the input(s) of the component
• identification of statement(s) to be
executed by the test case
• the expected outcome of the test
case
Test completeness criteria: the percentage of the statements in the
software which were executed at least at once (executing a statement
means that the statement was encountered and evaluated during testing).
6. EXAMPLE
float foo (int a, int b, int c, int d, float e)
{
float e;
if (a == 0) {
return 0;
}
int x = 0;
if ((a==b) OR ((c == d) AND bug(a) )) {
x=1;
}
e = 1/x;
return e;
}
statement
7. BRANCH/DECISION TESTING
uses a model of the program’s flow
it is designed in order to execute (each) outcome
of all or selected decision points in a test object
an executable statement
which may transfer control
to another statement,
depending upon the logic
of the decision statement
For each test specify:
• the input(s) of the component
• Identification of decision
outcome(s) to be executed by
the test case
• the expected outcome of the
test case
Test completeness criteria: achievement of the test coverage – 100%
of the branches (one true and one false for each part of condition)
8. EXAMPLE
A = true and (B or C) = false
A = false and (B or C) = true
Case A B C Output
1 0 1 1 0
2 1 0 0 0
if A and (B or C)
9. BRANCH CONDITION COMBINATION
uses a model of the program flow where each
combination of the inputs for a decision/condition must
be tested, in order to check if each branch is covered
For each test case specify:
the input(s) of the component
the expected outcome of the test case which can show which
branch is covered
Test completeness criteria: for a condition containing n
boolean operands → 2n
test cases are required to achieve
100% coverage
Note: this coverage rapidly becomes unachievable for more
complex conditions.
10. WHITE BOX - SUMMARY
Statement testing
uses a model of the program’s control flow
it is designed in order to execute all or selected statements of
the test object
Branch/Decision Testing
uses a model of the program’s flow
it is designed in order to execute (each) outcome of all or
selected decision points in a test object
Branch Condition Combination
uses a model of the program flow where each combination
of the inputs for a decision/condition must be tested, in
order to check if each branch is covered
11. MODIFIED CONDITION COMBINATION
TESTING
uses a model of the program’s flow where each
atomic condition is independently tested, in order
to show how the decision outcome is affected
test case are designed to show that each condition
independently affects the decision outcome
For each test case specify:
the input(s) of the component
The expected outcome of the test case
12. MODIFIED CONDITION COMBINATION
TESTING
Test completeness criteria
for a condition containing n boolean operands, to achieve
100% coverage are necessary:
minimum: n + 1 test cases
maximum: 2n test cases
Example: for 3 boolean operands, to achieve 100%
coverage are necessary:
Minimum 4 test cases
Maximum 6 test cases
13. EXAMPLE
Case A B B or C C Outcome
1 1 1 1 0 1
2 0 0
3 1 1 1 0 1
4 0 0 0
5 1 0 1 1 1
6 0 0 0
if (A and (B or C))