SOFTWARE TESTING
WHITE BOX
By– G.S.Wedpathak
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
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
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
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).
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
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)
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)
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.
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
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
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
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))
ANY QUESTIONS?

White box testing

  • 1.
  • 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  Usingthe 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  usesa 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 (inta, 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  usesa 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 BB 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))
  • 14.