© ThoughtWorks, 2007
White box testing
© ThoughtWorks, 2007
Objective
• What is White box testing
• Techniques of white box testing
• What is Grey Box testing
© ThoughtWorks, 2007
Testing the internal structure of the software
Understand the code and the code will set you free!
White-box testing is testing that takes into account the internal mechanism of a system or component
It’s also known as Structural testing, clear box testing and glass box testing
What is it?
© ThoughtWorks, 2007
Techniques
• Statement coverage
• Loop testing
• Path testing
• Branch testing
© ThoughtWorks, 2007
Statement Coverage
• 100% method coverage: All methods in all classes are called.
• 100% statement coverage: All statements in a method are executed.
void foo (int a, b, c, d, e) {
if (a == 0) {
return; }
int x = 0;
if ((a==b) OR ((c==d) AND bug(a) )) {
x =1; }
e = 1/x; }
© ThoughtWorks, 2007
Loop testing
• Test the ‘for’ and ‘while’ loops in the code.
• Look for exceptions of infinite loop.
• Cause execution of loop to be skipped.
• Loop to be executed exactly once.
• Loop to be executed more than once
© ThoughtWorks, 2007
Path testing
• Make sure all the paths are covered.
• Determine the paths
• Construct a logic flow chart
© ThoughtWorks, 2007
Path testing: Determine PathsFindMean (FILE ScoreFile){ float SumOfScores = 0.0;
int NumberOfScores = 0; float Mean=0.0; float Score;Read(ScoreFile, Score);while (! EOF(ScoreFile) {
if (Score > 0.0 ) {SumOfScores = SumOfScores + Score;NumberOfScores++;}
Read(ScoreFile, Score);}/* Compute the mean and print the result */if (NumberOfScores > 0) {
Mean = SumOfScores / NumberOfScores;printf(“ The mean score is %f\n”, Mean);
} elseprintf (“No scores found in file\n”);
}
1
23
4
5
7
6
8
9
© ThoughtWorks, 2007
Path testing: Logic flow diagram
Start
2
3
4 5
6
7
8 9
Exit
1
F
T F
T F
T
© ThoughtWorks, 2007
Branch testing
• Also known as Conditional Testing
• Make sure that each possible outcome from a condition is tested at least once.
if (i=true)
printf (“I am true”)
else
printf (“I am false”)
Possible Testcases are
1. i=true; 2. i=false
© ThoughtWorks, 2007
Grey box testing
What is it?
– Mixture of both black box and white box.
– Test the system with a basic outlook of internals.
When you do?
– Once the functionality is developed
Example
– Database testing
– Using SQL
© ThoughtWorks, 2007
Grey box testing: SQL
Some times testers may have to use SQL to help in the black box testing.
Types of Grey box using SQL
– Data Validation
– Data security
– Query for system updates
© ThoughtWorks, 2007
Grey box testing: My examples
Testing I did!
– Test the inventory by using the inventory table
– Reservation retrieval
– Data encryption: Credit Card number
© ThoughtWorks, 2007
Questions?