Path testing - PowerPoint PPT Presentation

1 / 22
About This Presentation
Title:

Path testing

Description:

Linearly Independent Path ... Count all the linearly independent paths ... Is there a way to know how many linearly independent paths exist? ... – PowerPoint PPT presentation

Number of Views:141
Avg rating:3.0/5.0
Slides: 23
Provided by: Frank47
Category:

less

Transcript and Presenter's Notes

Title: Path testing


1
Path 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

2
Path 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

3
Linearly 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.
4
Another 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
5
Statement 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) ?
6
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
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 - - - - !!
7
Statement 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?!
8
Branch 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.

9
Branch 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.
10
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
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
11
Branch Coverage
What do you think about a Software Company who
states that they care about quality and executes
every branch in their testing?!
12
McCabes 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

13
McCabes 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
14
McCabes 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
15
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 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.
16
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 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)
17
More 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
18
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 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)
19
More 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.
20
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.
  • 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.

21
Total 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
22
Paths 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.?
Write a Comment
User Comments (0)
About PowerShow.com