Presentation on theme: "Path Analysis Why path analysis for test case design? –Provides a systematic methodology. Reproducible Traceable Countable What is path analysis? –Analyzes."— Presentation transcript:
Path Analysis Why path analysis for test case design? –Provides a systematic methodology. Reproducible Traceable Countable What is path analysis? –Analyzes the number of paths that exist in the system –Facilitates the decision process of how many paths to include in the test
Linearly Independent Path A path through the system is Linearly Independent** from other paths only if it includes some segment that is not covered in the other path. S1 S3 S2 C The statements are represented by the rectangular and diamond blocks. - The segments between the blocks are labeled with numbered circles. Path1 : S1 – C1 – S3 Path2 : S1 – C1 – S2 – S3 OR Path1: segments (1,4) Path2: segments (1,2,3) Path1 and Path2 are linearly independent because each includes some segment that is not included in the other. ** This definition will require more explanation later.
Another Example of Linearly Independent Paths S1 S2 S3 S4 S5 C1 C2 C Path1: segments (1,2,8) Path2: segments (1,5,3,9) Path3: segments (1,5,6,4,10) Path4: segments (1,5,6,7) Note that these are all linearly independent
Statement Coverage Method Count all the linearly independent paths Pick the minimum number of linearly independent paths that will include all the statements (S’s and C’s in the diagram) S1 S3 S2 C Path1 : S1 – C1 – S3 Path2 : S1 – C1 – S2 – S3 Path1 and Path2 are needed to cover all the statements: (S1,C1,S2,S3) ?
Another Example of Statement Coverage S1 S2 S3 S4 S5 C1 C2 C The 4 Linearly Independent Paths Covers: Path1: includes S1-C1-S2-S5 Path2: includes S1-C1-C2-S3-S5 Path3: includes S1-C1-C2-C3-S4-S5 Path4: includes S1-C1-C2-C3-S5 For 100% Statement Coverage, all we need are 3 paths : Path1, Path2, and Path3 to cover all the statements (S1,C1,S2,C2,S3,C3,S4,S5) no need for Path
Branch Coverage Method Identify all the decisions Count all the branches from the each of the decisions Pick the minimum number of paths that will cover all the branches from the decisions.
Branch Coverage Method S1 S3 S2 C Decision C1 : B1 : Path1 : C1 – S3 B2 : Path2 : C1 – S2 – S3 Path1 and Path2 are needed to cover both branches from C1? Branch 1Branch 2
Another Example of Branch Coverage S1 S2 S3 S4 S5 C1 C2 C The 3 Decisions: C1: - B1 : C1- S2 - B2 : C1- C2 C2: - B3 : C2 – S3 - B4 : C2 – C3 C3: - B5 : C3 – S4 - B6 ; C3 – S5 We need: Path1 to cover B1, Path2 to cover B2 and B3, Path3 to cover B4 and B5, Path4 to cover B6 The 4 Linearly Independent Paths Covers : Path1: includes S1-C1-S2-S5 Path2: includes S1-C1-C2-S3-S5 Path3: includes S1-C1-C2-C3-S4-S5 Path4: includes S1-C1-C2-C3-S5
McCabe’s Cyclomatic Number Is there a way to know how many linearly independent paths exist? –McCabe’s Cyclomatic number used to study program complexity may be applied. There are 3 ways to get the Cyclomatic Complexity number from a flow diagram. # of binary decisions + 1 # of edges - # of nodes + 2 # of closed regions + 1 -Reference: T.J. McCabe, “A complexity Measure,” IEEE Transactions on Software Engineering, Dec. 1976
McCabe’s Cyclomatic Complexity Number Earlier Example S1 S3 S2 C We know there are 2 linearly independent paths from before: Path1 : C1 – S3 Path2 : C1 – S2 – S3 McCabe’s Cyclomatic Number: a) # of binary decisions +1 = 1 +1 = 2 b) # of edges - # of nodes +2 = = 2 c) # of closed regions + 1 = = 2 Closed region
McCabe’s Cyclomatic Complexity Number Another Example S1 S3 S2 C McCabe’s Cyclomatic Number: a) # of binary decisions +1 = 2 +1 = 3 b) # of edges - # of nodes +2 = = 3 c) # of closed regions + 1 = = 3 Closed Region C2 S Closed Region There are 3 Linearly Independent Paths
An example of 2 n total path S1 C1 C2 C3 S2 S3 S4S Since for each binary decision, there are 2 paths and there are 3 in sequence, there are 2 3 = 8 total “logical” paths path1 : S1-C1-S2-C2-C3-S4 path2 : S1-C1-S2-C2-C3-S5 path3 : S1-C1-S2-C2-S3-C3-S4 path4 : S1-C1-S2-C2-S3-C3-S5 path5 : S1-C1-C2-C3-S4 path6 : S1-C1-C2-C3-S5 path7 : S1-C1-C2-S3-C3-S4 path8 : S1-C1-C2-S3-C3-S5 How many Linearly Independent paths are there? Using Cyclomatic number = 3 decisions +1 = 4 One set would be: path1 : includes segments (1,2,4,6,9) path2 : includes segments (1,2,4,6,8) path3 : includes segments (1,2,4,5,7,9) path5 : includes segments (1,3,6,9) Note 1: with just 2 paths ( Path1 and Path8) all the statements are covered. Note2: with just 2 paths ( Path1 and Path8) all the branches are covered.
Example with a Loop S1 S2 S3 C Total number of paths may be “ infinite” (very large) because of the loop Linearly Independent Paths = 1 decision +1 = 2 path1 : S1-C1-S3 (segments 1,4) path2 : S1-C1-S2-C1-S3 (segments 1,2,3,4) One path will cover all statements: (S1,C1,S2, S3) path2 : S1-C1-S2-C1-S3 One path will cover all branches: path2 : S1-C1-S2-C1-S3 branch1 (C1-S2) and branch 2 (C1-S3)
More on Linearly Independent Paths In discussing dimensionality, we talks about orthogonal vectors. –Two dimensional space has two orthogonal vector from which all the other vectors in two dimension can be obtained via “linear combination” of these vectors: [1,0] [0,1] [1,0] [0,1] [2,4] e.g. [2,4] = 2[1,0] + 4[0,1]
More on Linearly Independent Paths A set of paths is considered to be a Linearly Independent Set if every path may be constructed as a “linear combination” of paths from the linearly independent set. For example: C1 C2 S We already know: a) there are a total of 2 2 =4 logical paths. b) 2 paths that will cover all statements and all branches. c) 2 branches +1 = 3 linearly independent paths. path1 path2 path3 path path 4 = path3 + path1 – path2 = (0,1,1,1,0,0)+(1,0,0,0,1,1)- (1,0,0,1,0,0) = (1,1,1,1,1,1) - (1,0,0,1,0,0) = (0,1,1,0,1,1) We picked path1, path2 and path3 as The Linearly Independent Set
More on Linearly Independent Paths C1 C2 S We already know: a) there are a total of 2 2 =4 logical paths. b) 2 paths that will cover all statements and all branches. c) 2 branches +1 = 3 linearly independent paths. path1 path2 path3 path Although path1 and path3 are linearly independent, they do NOT form a Linearly Independent Set because no linear combination of path1 and path3 can get, say, path4.
More on Linearly Independent Paths Because the Linearly Independent Set of paths display the same characteristics as the mathematical concept of basis in n-dimensional vector space, the testing using the Linearly Independent Set of paths is sometimes called the “basis” testing.
Paths Analysis Interested in Total number of “logical” paths Interested in Linearly Independent paths Interest in Branch coverage Interested in Statement coverage Which one is the largest set, next largest set, - - -, etc.?