- By
**lilli** - Follow User

- 130 Views
- Uploaded on

Download Presentation
## Path Analysis

**An Image/Link below is provided (as is) to download presentation**

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

Download Presentation

Connecting to Server..