White box testing
© ThoughtWorks, 2007
Objective • What is White box testing • Techniques of white box testing • What is Grey Box testing
© ThoughtWorks, 2007
What is it? 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 © 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 Paths FindMean (FILE ScoreFile) { float SumOfScores = 0.0; int NumberOfScores = 0; 1 float Mean=0.0; float Score; Read(ScoreFile, Score); 2 while (! EOF(ScoreFile) { 3 if (Score > 0.0 ) { SumOfScores = SumOfScores + Score; NumberOfScores++; } 5 Read(ScoreFile, Score);
}
4
6
} /* Compute the mean and print the result */ 7 if (NumberOfScores > 0) { Mean = SumOfScores / NumberOfScores; printf(“ The mean score is %f\n”, Mean); } else printf (“No scores found in file\n”); 9 © ThoughtWorks, 2007
8
Path testing: Logic flow diagram Start 1 F
2 T
4
3
T
F
5
6
8
T
7
F
Exit
© ThoughtWorks, 2007
9
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?
© ThoughtWorks, 2007