Path testing - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Path testing

Description:

Path testing is a 'design structural testing' in that it is based on detailed ... Does All Branch Coverage subsume All Statements Coverage? McCabe's Cyclomatic Number ... – PowerPoint PPT presentation

Number of Views:153
Avg rating:3.0/5.0
Slides: 30
Provided by: Frank47
Category:
Tags: path | subsume | testing

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 detailed design 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 and is am important White Box testing
    technique

2
Transforming Code to Diagram
  • In early chapter (chapter 4) on graph theory, we
    mentioned condensation graph as a graph that was
    derived by condensing a component into a node
    as a way to simplify the graphical diagram of
    source code.
  • We will
  • address the issue of condensation later and
  • assume that we have a condensed graph and discuss
    path analysis first

3
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

Reasons similar to why document test cases
Path, as previously defined, is a sequence of
connected nodes
4
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 edge that is not included in
the other. (note not necessarily nodes) This
definition will require more explanation later.
5
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
6
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 edges (1, 4) Path2 S1
C1 S2 S3 edges (1, 2. 3 )
1
2
C1
S2
4
3
S3
Are both Path1 and Path2 needed to cover all the
statements (S1,C1,S2,S3) ? What
would you say?
7
Another Example of Statement Coverage
S1
1
S2
8
C1
2
The 4 Linearly Independent Paths Covers Path1
includes S1-C1-S2-S5
edges (1,2,8) Path2 includes S1-C1-C2-S3-S5
edges ( 1,5,3,9) Path3
includes S1-C1-C2-C3-S4-S5
edges (1,5,6,4,10) Path4 includes
S1-C1-C2-C3-S5 edges
(1,5,6,7)
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 - - - - !!
8
Statement Coverage
Now - - - What
do you think of a Software Company which boasts
that they test every statement in the software
before release? Try this on some students or
other professors and see their reaction.
9
Branch Coverage Method(Also DD-Paths of our text
book)
  • Identify all the decisions
  • Count all the branches from each of the decisions
    ( out-degree of the decision node)
  • Pick the minimum number of paths that will cover
    all the branches from the decisions.

10
Branch Coverage Method
One decision C1 B1 Path1 C1
S3 B2 Path2 C1 S2

S1
1
C1
Branch 1
Branch 2
2 linearly independent paths cover
B1 Path1 C1 S3
B2 Path2 C1 S2 S3

2
S2
4
3
S3
Are both Path1 and Path2 needed to cover Branch1
and Branch2 from C1?
11
Another Example of Branch Coverage
The 3 Decisions and the Branches 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 Cover 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
12
Branch Coverage
How do you feel about a Software Company who
states that they test every branch in
the Software before release?
Does All Branch Coverage subsume All Statements
Coverage?
13
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

14
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
15
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
16
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.
17
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-C1-S3 (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)
18
More on Linearly Independent Paths
  • In discussing dimensionality, we talks about
    orthogonal vectors (or basis of vector space) .
  • (e.g.) Two dimensional space has two orthogonal
    vector from which all the other vectors in two
    dimension can be obtained via linear
    combination of these 2 vectors
  • 1,0
  • 0,1

e.g. 2,4 21,0 40,1
2,4
1,0
0,1
19
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)
1 path (path4) will cover all statements
c) 2 paths will cover all
branches. d) 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
S2
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)
20
Other Sets of Linearly Independent Paths
1
2
3
4
5
6
1
path1
1
1
path2
1
1
path3
1
1
1
path4
1
1
1
1
  • Consider the set of linearly independent paths
    1, 2 4 instead.
  • Can we get Path3 (0,1,1,1,0,0)?
  • Consider path3 path2 path4 path1
  • (1,0,0,1,0,0,)(0,1
    ,1,0,1,1) (1,0,0,0,1,1) (0,1,1,1,0,0)
  • Consider another set of linearly independent
    paths 2, 3 4 instead.
  • Can we get Path 1 (1,0,0,0,1,1))?
  • Consider path1 path2 path4 path3
  • (1,0,0,1,0,0,)(0,1
    ,1,0,1,1) (0,1,1,1,0,0) (1,0,0,0,1,1)

21
More on Linearly Independent Paths
We already know a) there are a total of 224
logical paths. b)
1 path (path4) will cover all statements
c) 2 paths will cover all
branches. d) 2
branches 1 3 linearly independent paths.
C1
2
1
1
2
3
4
5
6
S1
1
path1
1
1
3
path2
1
1
C2
5
path3
1
1
1
4
path4
1
1
1
1
S2
6
Note 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.
22
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.

Then ------ is there a way to find a Linearly
Independent Set ?
23
An Algorithm to Find the Basis Set
  • Select a baseline path, an arbitrary, normal
    execution path that contains as many decisions as
    possible.
  • Retrace the baseline path and flip each of the
    decision encountered each flip creates a new
    path. Continue until all the decisions are
    flipped
  • The basis set is composed of all the paths
    generated from steps 1 and 2 above

Cyclomatic 2 1 3 So there are 3 linearly
independent paths
C1
2
1
S1
1. pick baseline path P1 C1 S1- C2 S2
lt0,1,1,0,1,1gt 2. flip C1 P2
C1 C2 S2 lt1,0,0,0.1,1gt 3. flip C2
P3 C1 - C2
lt1,0,0,1,0,0gt
3
C2
5
4
Can we get the 4th path C1 S1 C2
lt0,1,1,1,0,0gt from the
above basis set? How about (P1 P3) P2
? (P1 P3) P2 (lt0,1,1,0,1,1gt
lt1,0,0,1,0,0gt) - lt1,0,0,0,1,1gt
lt1,1,1,1,1,1gt - lt1,0,0,0,1,1gt
lt0,1,1,1,0,0gt P4
S2
6
24
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
You also note that for n loops there are 3n
decisions, and we have 33 9 decisions
for looping 3 times.
c4
s4
25
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.?
Compare this list with page 136 of your text - -
- what are we missing?
26
Definition for DD-path
  • DD (decision-decision) path is a path of nodes in
    a directed graph.
  • A chain is a path in which
  • Initial and terminal nodes are distinct (not just
    one node)
  • All interior nodes have in-degree 1 and
    out-degree 1
  • A DD-path is a chain in a program graph such that
    the following are included in the chain
  • It consists of a single node with in-degree 0
    (initial node)
  • It consists of a single node with out-degree 0
    (terminal node)
  • It consists of a single node with in-deg gt 2 or
    out-deg gt 2
  • It consists of a single node with in-deg 1 and
    out-deg 1
  • It is a maximal chain of length gt 1.

27
Condensation of Code to Table then to Graph
Psuedo-code
Path/node name
DD-path Def.
code statement
1. Program Triangle 2. Dim a, b,c As Integer 3.
Dim IsTriangle As Boolean 4. Output ( enter
a,b, and c integers) 5. Input (a,b,c) 6. Output
(side 1 is, a) 7. Output (side 2 is, b) 8.
Output (side 3 is, c) 9. If (altbc) AND
(bltac) And (cltba) 10. then IsTriangle
True 11. else IsTriangle False 12.
endif 13. If IsTriangle 14. then if (ab) AND
(bc) 15. then Output
(equilateral) 16. else if (a NE b)
AND (a NE b) AND (b NE c) 17.
then Output ( Scalene) 18.
else Output (Isosceles) 19.
endif 20. endif 21. else
Output (not a triangle) 22. endif 23. end
Triangle2
Skip 1- 3 (or w/4) 4 first
1 5 8 A
5 9 B 3 10
C 4 11
D 4 12 E
3 13 F
3 14 H 3 15
I 4 16
J 3 17 K
4 18 L
4 19 M 3 20
N 3 21
G 4 22 O
3 23 last
2
Def of DD-paths on Page 140
28
Condensation Graph from Table
Statements coverage - 4 paths Branch
(DD-path) coverage - 4 paths Cyclomatic 41
5 - 5 lin. Ind paths All combinations
- 8 paths
first
A
B
C
D
E
F
H
G
J
I
K
L
M
N
O
Last
29
Closer Look into Path Testing
  • Look at 2 paths from A to E. The paths of either
    it is a triangle or not a triangle.
  • But there are many combinations to get not
    triangle so we still need to consider
    utilizing boundary values and equivalence
    classes. Just one test case to cover the path may
    not be enough
  • Look at the path that leads from D to L (D not
    triangle and L Isosceles triangle). Is that path
    possible - - - can you generate a test case for
    that path?
  • Look at the path from C to G (C Is a triangle
    and G output not triangle) - - - is this a
    possible path?
  • There may be logical dependencies that prevent us
    from generating test case to traverse certain
    paths. Thus we also need to consider employing
    decision tables from Black Box testing technique.
Write a Comment
User Comments (0)
About PowerShow.com