Download presentation
Presentation is loading. Please wait.
Published byCameron Harrington Modified over 6 years ago
1
White-Box Testing Pfleeger, S. Software Engineering Theory and Practice 2nd Edition. Prentice Hall, 2001. Ghezzi, C. et al., Fundamentals of Software Engineering. Prentice Hall, 2002. Pressman, R., Software Engineering A Practitioner’s Approach, Mc Graw Hill, 2005. 1209
2
White Box Testing Also known as:
Glass box testing Structural testing Test set is derived from structure of code Code structure represented as a Control Flow Graph Goal is to cover the CFG
3
Control Flow Graphs Programs are made of three kinds of statements:
4
Control Flow Graph (CFG)
Sequence If-then-else If-then Iterative
5
Example 1: CFG 1. read (result); 2. read (x,k)
3. while result < 0 then { 4. ptr false 5. if x > k then ptr true 7. x x + 1 8. result result + 1 } 9. print result
6
Write a CFG Example 2 1. if (a < b) then 2. while (a < n)
a a + 1; 4. else while (b < n) b b + 1;
7
Answers Example 3 1. read (a,b); 2. if (a 0 && b 0) then {
c a + b; if c > 10 then c max else c min } 7. else print ‘Done’
8
Answers Example 4 1. read (a,b); 2. if (a 0 || b 0) then {
c a + b while( c < 100) c a + b; } 6. c a * b
9
Cyclomatic Complexity
Software metric for the logical complexity of a program. Defines the number of independent paths in the basis set of a program Provides the upper bound for the number of tests that must be conducted to ensure that all statements been have executed at least once For Edges (E) and Nodes (N) V(G) = E – N + 2
10
Complexity of CFGs 3,4 3,4 1 1 5 5 6 2 Join Join 3
11
Example 1 2,3 6 4,5 8 7 9 10 11
12
Example 1: CFG 1,2 3 9 4,5 6 Join 7,8
13
Example 2 1 2 3 Join 5 6
14
Answers 1,2 Join 3,4 5 6 7
15
Answers 1, 2 3 Join 4 5 6
16
Criteria Statement coverage Branch coverage Condition coverage
(lots of others …)
17
Branch Coverage Each edge of a program’s CFG is traversed at least once in some test. Independent paths: 1, 2, 3, 9 1, 2, 3, 4, 5, 6, 7, 8, 3, …, 9 1, 2, 3, 4, 5, 7, 8, 3, …, 9 3 4,5 6 Join 9 7,8 1,2 Example 1 P353 Pfleeger 2nd ed
18
Criteria Statement coverage Branch coverage Condition coverage
Every complex condition is made true and false by every possible combination E.G., (x and y) x = true, y = true x=false, y=true x = true, y= false x =false, y = false
19
AND Condition 1, 2A 2B 4 3 Join
20
OR Condition 1,2A 3 2B 4 5 Join
21
Path Coverage-1 Every distinct path through code is executed at least once Basis set does not yield minimal test set Example 1. read (x) 2. read (z) 3. if x 0 then begin y x * z; x z end 6. else print ‘Invalid’ 7. if y > 1 then 8. print y 9. else print ‘Invalid’ Test Paths: 1, 2, 3, 4, 5, J1, 7, 8, J2 1, 2, 3, 4, 5, J1, 7, 9, J2 1, 2, 3, 6, J1, 7, 8, J2, 1, 2, 3, 6, J1, 7, 9, J2 1,2,3 4,5 6 Join1 P353 Pfleeger 2nd ed 7 8 9 Join2
22
Def-Use Coverage 1,2,3 Example 4,5 6 Join 7 8 9 Join
Def-use coverage: every path from every definition of every variable to every use of that definition is exercised in some test. Example 1. read (x) 2. read (z) 3. if x 0 then begin y x * z; x z end 6. else print ‘Invalid’ 7. if y > 1 then 8. print y 9. else print ‘Invalid’ 1,2,3 Def: x, z Use: x Def: y, x Use: x, z 4,5 6 Use: none Join 7 Use: y 8 9 Use: none Use: y Test Path: 1, 2, 3, 4, 5, 7, 8, J Join
23
Strength of Coverage
24
What paths don’t tell you
Timing errors Unanticipated error conditions User interface inconsistency (or anything else) Configuration errors Capacity errors
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.