Title: Path testing
1Path testing
- Path testing is a design structural testing in
that it is based on the source code of the
program to be tested. - The methodology uses the graphical representation
of the source code - Thus it is very much control flow or path
oriented - This methodology has been available since the
mid-1970s
2Path Analysis
- Why path analysis for test case design?
- Provides a systematic methodology of White Box
testing. - 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
3Linearly Independent Path
- A path through the system is Linearly
Independent from other paths only if it
includes some segment or edge 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 edges (1,4) Path2 edges (1,2,3)
S2
4
3
S3
Path1 and Path2 are linearly independent because
each includes some edges that is not included in
the other. This definition will require more
explanation later.
4Another Example of Linearly Independent Paths
S1
1
S2
8
C1
2
Path1 edges (1,2,8) Path2 edges
(1,5,3,9) Path3 edges (1,5,6,4,10) Path4
edges (1,5,6,7) Note that these are all
linearly independent
5
S3
C2
3
9
6
C3
4
10
S4
7
S5
5Statement Coverage Method
- Count all the linearly independent paths
- Pick the minimum number of linearly independent
paths that will include all the statements (Ss
and Cs in the diagram)
S1
Path1 S1 C1 S3 Path2 S1 C1 S2 S3
1
2
C1
S2
4
3
S3
Do we need Path1 and Path2 to cover all the
statements (S1,C1,S2,S3) ?
6Another 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
S3
C2
3
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 - - - - !!
7Statement Coverage
What do you think about a Software Company who
states that they care about quality and executes
every line of code in their testing?!
8Branch Coverage Method(also known as
decision-decision, or dd, path)
- 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.
9Branch Coverage Method
S1
Decision C1 B1 Path1 C1 S3
B2 Path2 C1 S2 S3
1
C1
Branch 1
Branch 2
2
S2
4
3
S3
Path1 and Path2 are needed to cover both branches
from C1.
10Another 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
S3
C2
3
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
11Branch Coverage
What do you think about a Software Company who
states that they care about quality and executes
every branch in their testing?!
12McCabes Cyclomatic Number
- Is there a way to know how many linearly
independent paths exist? - McCabes 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
13McCabes Cyclomatic Complexity NumberEarlier
Example
We know there are 2 linearly independent paths
from before Path1 C1 S3
Path2 C1 S2 S3
S1
1
- McCabes Cyclomatic Number
- a) of binary decisions 1 1 1 2
- b) of edges - of nodes 2 4-42 2
- c) of closed regions 1 1 1 2
C1
2
S2
4
Closed region
3
S3
14McCabes Cyclomatic Complexity NumberAnother
Example
- McCabes Cyclomatic Number
- a) of binary decisions 1 2 1 3
- b) of edges - of nodes 2 7-62 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
3
6
S3
15An 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 edges
(1,2,4,6,9) path2 includes edges (1,2,4,6,8)
path3 includes edges (1,2,4,5,7,9) path5
includes edges (1,3,6,9)
7
C3
9
8
S4
S5
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.
16Example 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 path2
(S1,C1,S2, S3)
S2
3
One path will cover all branches path2
S1-C1-S2-C1-S3
branch1 (C1-S2) and branch 2
(C1-S3)
17More on Linearly Independent Paths
- In discussing dimensionality, we talks about
orthogonal vectors (or basis of vector space) .
- 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
e.g. 2,4 21,0 40,1
2,4
1,0
0,1
18More 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 224
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 pick 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)
19More on Linearly Independent Paths
We already know a) there are a total of 224
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.
20More 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. - The main notion is that since the linear
independent set of paths as a set can span all
the paths for the design/code construct, then
basis testing covers the essence of the whole
structure.
21Total Possible Logical Paths can be Big!
s1
There are 5 choices each time we process
through this loop. For passing through the loop
n times we have 5n possibilities of logical
paths. If we go through the loop just 3 times,
we have (5)3 125 possible paths!
c1
1
c3
c2
4
2
s2
5
3
s3
c4
s4
22Paths Analysis
- Interested in total number of all possible
combinations of logical paths - Interested in Linearly Independent paths
- Interest in Branch coverage or DD-path
- Interested in Statement coverage
Which one do you think is the largest set, next
largest, - - - , etc.?