Path Analysis

1 / 18

# Path Analysis - PowerPoint PPT Presentation

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.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Path Analysis' - lilli

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
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

- The statements are represented

by the rectangular and diamond blocks.

- The segments between the blocks are

labeled with numbered circles.

1

2

C1

Path1 : S1 – C1 – S3

Path2 : S1 – C1 – S2 – S3

OR

Path1: segments (1,4)

Path2: segments (1,2,3)

4

S2

3

S3

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

1

S2

8

C1

2

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

5

C2

3

S3

9

6

C3

4

10

S4

7

S5

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

Path1 : S1 – C1 – S3

Path2 : S1 – C1 – S2 – S3

1

2

C1

4

S2

3

S3

Path1 and Path2 are needed to cover all the statements: (S1,C1,S2,S3) ?

Another Example of Statement Coverage

S1

1

S2

8

C1

2

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

5

C2

3

S3

9

6

C3

4

10

S4

7

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 Path4 - - - -

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

Decision C1 :

B1 : Path1 : C1 – S3

B2 : Path2 : C1 – S2 – S3

1

Branch 1

C1

Branch 2

2

4

S2

3

S3

Path1 and Path2 are needed to cover both branches from C1?

Another Example of Branch Coverage

The 3 Decisions:

C1:

- B1 : C1- S2

- B2 : C1- C2

C2:

- B3 : C2 – S3

- B4 : C2 – C3

C3:

- B5 : C3 – S4

- B6 ; C3 – S5

S1

1

S2

8

C1

2

5

C2

3

S3

9

6

C3

4

10

S4

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

7

S5

We need:

Path1 to cover B1,

Path2 to cover B2 and B3,

Path3 to cover B4 and B5,

Path4 to cover B6

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 NumberEarlier Example

We know there are 2 linearly independent

paths from before:

Path1 : C1 – S3

Path2 : C1 – S2 – S3

S1

1

• McCabe’s Cyclomatic Number:
• a) # of binary decisions +1 = 1 +1 = 2
• b) # of edges - # of nodes +2 = 4-4+2 = 2
• c) # of closed regions + 1 = 1 + 1 = 2

C1

2

4

S2

Closed region

3

S3

McCabe’s Cyclomatic Complexity NumberAnother Example
• McCabe’s Cyclomatic Number:
• a) # of binary decisions +1 = 2 +1 = 3
• b) # of edges - # of nodes +2 = 7-6+2 = 3
• c) # of closed regions + 1 = 2 + 1 = 3

S1

1

4

C1

2

C2

5

S2

There are 3 Linearly

Independent Paths

Closed Region

Closed Region

S4

7

6

3

S3

An example of 2n total path

Since for each binary decision, there are 2 paths and

there are 3 in sequence, there are 23 =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

S1

1

C1

2

3

S2

4

C2

5

6

S3

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)

7

C3

9

8

S5

S4

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

Total number of paths may be “ infinite” (very large)

because of the loop

S1

1

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)

C1

4

S3

2

One path will cover all statements: (S1,C1,S2, S3)

path2 : S1-C1-S2-C1-S3

S2

3

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 “linearcombination” of these vectors:
• [1,0]
• [0,1]

e.g.

[2,4] = 2[1,0] + 4[0,1]

[2,4]

[1,0]

[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:

We already know: a) there are a total of 22=4 logical paths.

b) 2 paths that will cover all statements

and all branches.

c) 2 branches +1 = 3 linearly independent paths.

C1

2

1

S1

1

2

3

4

5

6

3

We picked path1,

path2 and path3 as

The Linearly

Independent Set

1

path1

1

1

C2

5

path2

1

1

4

path3

1

1

1

S1

path4

1

1

1

1

6

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)

More on Linearly Independent Paths

We already know: a) there are a total of 22=4 logical paths.

b) 2 paths that will cover all statements

and all branches.

c) 2 branches +1 = 3 linearly independent paths.

C1

2

1

S1

1

2

3

4

5

6

3

1

path1

1

1

C2

5

path2

1

1

4

path3

1

1

1

S1

path4

1

1

1

1

6

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.?