SOFTWARE TESTING METHODOLOGY Term:2009-2010 B.Tech III/IT
Semester - I Unit-V PPT Slides
Text Books: 1.Software Testing Techniques: Boris Beizer 2. Craft of Software Testing: Brain Marrick
Prof. N. Prasanna Balaji
1
Sub Topic No’s
Sub Topic name
1
Path Products & expressions: Introduction
2
Path Expression
Lecturer No
Slide No’s
L1
3 6
L1 3
Path Product
14 L2
4
Reduction Procedure
19 L3
5
Reduction Procedure: Application
L4
25
6
Regular Expression
L5
34
7
Flow anomaly detection
L6
69
8
Review: Questions from the previous year’s exams
2L7
73
2
Path Products & expressions - Purpose
PURPOSE: APPLICATIONS 1. How many paths in a flow-graph? Maximum, minimum etc. 2. The probability of getting to a point in a program ? (to a node in a flow graph) 3. The mean processing time of a routine (a flow graph) 4. Effect of Routines involving complementary operations : (Push / Pop & Get / Return) 3
Path Products & expressions - Purpose
PURPOSE & APPLICATIONS 1. Check for data flow anomalies. 2. Regular expressions are applied to problems in test design & debugging 3. Electronics engineers use flow graphs to design & analyze circuits & logic designers. 1. Software development, testing & debugging tools use flow graph analysis tools & techniques. 1. These are helpful for test tool builders. 4
Path Products & expressions - Motivation Motivation 1. Flow graph is an abstract representation of a program. 2. A question on a program can be mapped on to an equivalent question on an appropriate flow graph. 3. It will be a foundation for syntax testing & state testing
5
Path Products & expressions - Definitions Path Expression: An algebraic representation of sets of paths in a flow graph.
Regular Expression: Path expressions converted by using arithmetic laws & weights into an algebraic function.
6
Path Products & expressions – Path Product • Annotate each link with a name. • The pathname as you traverse a path (segment) expressed as concatenation of the link names is the path product. c 1
2
a
3
b
4
d
• Examples of path products between 1 & 4 are: abd
abcbd
a b c b c b d …. 7
Path Products & expressions – Path Expression Path Expression Simply: Derive using path products. c 1
2
a
3
b
4
d
Example: {a
b d , a b c b d, a b c b c b d , ….. }
abd + abcbd + abcbcbd + …. 8
Path Products & expressions – Path Expression Example: g
e a
h b
f
i c
j d
{ abcd , abfhebcd , abfigebcd , abfijd } abcd + abfhebcd + abfigebcd + abfijd
9
Path Products & expressions – Path Expression Path name for two successive path segments is the concatenation of their path products. X = abc
Y = def
XY = abcdef
a X = aabc
X a = abca
XaX = abcaabc
X = ab + cd cdgh
Y = ef + gh
XY = abef + abgh + cdef +
10
Path Products & expressions – Path Segments & Products • Loops: a1 = a
a2 = aa
X = abc
X1 = abc
a3 = aaa
an = aaaaa … n times
X2 = (abc)2 = abcabc
• Identity element a0 = 1
X0 = 1
(path of length 0)
11
Path Products & expressions – Path Product Path Product • Not Commutative: XY
≠ YX
in general
• Associative A ( BC ) = ( AB ) C = ABC
: Rule 1
12
Path Products & expressions – Path Product Denotes a set of paths in parallel between two nodes. • Commutative X + Y = Y + X
: Rule
2
: Rule
3
: Rule
4
• Associative (X+Y)+Z = X+(Y+Z) = X+Y+Z
• Distributive A ( B + C) = A B + A C (A+B)C = AC+BC
13
Path Products & expressions – Path Products • Absorption X + X = X X + any subset of X = X X = a + bc + abcd
:
X + a = X + bc + abcd
14
Rule 5 = X
Path Products & expressions – Path Products • Loop: b
An infinite set of parallel paths. a
b* =
c
b0 + b1 + b2 + b3 + ……
X* = X0 + X1 + X2 + X3 + …… X+ = X1 + X2 + X3 + …… • X X* = X* X = X+
a a* = a* a = a+
n
X = X0 + X1 + X2 + X3 + …… + Xn 15
Path Products & expressions – Path products More Rules… m
n
X + X = Xn = Xm m
n
: Rule
X X
= Xm+n
X X*
= X* X
X X+
= X+ X
n
n
: Rule
if n ≥ m if n < m
n
n
= X*
= X+
16
6
7
: Rule
8
: Rule
9
Path Products & expressions â&#x20AC;&#x201C; Path products Identity Elements .. 1 : Path of Zero Length 1+1
= 1
1X
= X1
n
1
n
= 1
1 + 1 = 1* +
= X
=
1* = 1+
= 1
= 1 17
: Rule
11
: Rule
12
: Rule
13
: Rule
14
Path Products & expressions â&#x20AC;&#x201C; Path products Identity Elements .. 0 : empty set of paths X + 0
=
0+X = X
: Rule
15
X0
=
0X
: Rule
16
: Rule
17
0*
=
= 0
1 + 0 + 0 2 + 03 + . . .
= 1 18
Path Products & expressions – Reduction Procedure
To convert a flow graph into a path expression that denotes the set of all entry/exit paths.
Node by Node Reduction Procedure
19
Path Products & expressions â&#x20AC;&#x201C; Reduction Procedure Initialization Steps: 1. Combine all serial links by multiplying their path expressions. 1. Combine all parallel links by adding their path expressions. 1. Remove all self-loops - replace with links of the form X* 20
Path Products & expressions â&#x20AC;&#x201C; Reduction Procedure Steps in the Algorithmâ&#x20AC;&#x2122;s loop 4. Select a non-initial & non-final node.
Replace it with a set of equivalent links, whose path expressions correspond to all the ways you can form a product of the set of in-links with the set of out-links of that node. 5
4
e
d 1
f 2
a
b
g 3
c 21
Path Products & expressions – Reduction Procedure Steps in the Algorithm’s loop: 5. Combine any serial links by multiplying their path expressions. ( as in step 1)
6. Combine any parallel links by adding their path expressions. ( as in step 2)
7. Remove all the self-loops. ( as in step 3)
8. IF there’s just one node between entry & exit nodes, path expression for the flow graph is the link’s path expression. ELSE, return to step 4. 22
Path Products & expressions – Reduction Procedure Path Expression for a Flow Graph • is not unique • depends on the order of node removal.
23
Path Products & expressions – Reduction Procedure Example Cross-Term Step (Step 4 of the algorithm) • Fundamental step. • Removes nodes one by one till there’s one entry & one exit node. • Replace the node by path products of all in-links with all out-links and interconnecting its immediate neighbors.
24
Path Products & expressions â&#x20AC;&#x201C; Reduction Procedure Example Processing of Loop Terms: b 1
a
c
2
d
1
a
b*c
2
b*d
25
Path Products & expressions â&#x20AC;&#x201C; Reduction Procedure Example Processing of Loop Terms: 1
a
b 3 d
2
c
f
4
5
e bd 1
a
bc
2
e
1
a
2
(bd)* bc
4
f
5
e 26
4
f
5
Path Products & expressions â&#x20AC;&#x201C; Reduction Procedure Example Processing of Loop Terms: 1
a
2
(bd)* bc
4
f
5
e 1
a (bd)* bc
4
f
5
e (bd)* bc
1
a (bd)* bc
4
( e (bd)* bc ) * f
5
a (bd)* bc ( e (bd)* bc )* f 27
Path Products & expressions â&#x20AC;&#x201C; Reduction Procedure Example Example:
1
a
3
b
c
4
g
f 7
j
d
5
h k
8
e
6
2
i l
9
10
m
1
a
3
b
4
c
g
f 7
j
5
il
h 8
k
d
9
im 28
6
e
2
Path Products & expressions â&#x20AC;&#x201C; Reduction Procedure Example 1
a
3
b
4
c
5
g
f 7
j
d
e
6
2
ilh 8
kh
im
a
1
b
3
jf
4
c
5
g
ilh 8
kh
imf 1
a
3
b
c+gkh 4
5
gif
d
6
e
2
ilh imf
d
29
6
e
2
Path Products & expressions â&#x20AC;&#x201C; Reduction Procedure Example bgif 1
a
3
b(c+gkh)
d
5
e
6
2
ilh imf
1
a
(bgif)*b(c+gkh) 3
5
d ilh
imf ilhd 1
a
3
(bgif)*b(c+gkh)d
6
e
2
imf 30
6
e
2
Path Products & expressions â&#x20AC;&#x201C; Reduction Procedure Example 1
a
3
(bgif)*b(c+gkh)d
6
(ilhd)*e
2
(ilhd)*imf
1
a(bgif)*b(c+gkh)d
(ilhd)*e
6
2
(ilhd)*imf(bgif)*b(c+gkh)d
31
Path Products & expressions â&#x20AC;&#x201C; Reduction Procedure Example 1
a(bgif)*b(c+gkh)d
6
{(ilhd)*imf(bgif)*b(c+gkh)d}* (ilhd)*e
Flow Graph Path Expression : a(bgif)*b(c+gkh)d {(ilhd)*imf(bgif)*b(c+gkh)d}* (ilhd)*e
32
2
Path Products & expressions â&#x20AC;&#x201C; Before going into Applications Before that, we learn: Identities Structured Flow Graphs (code/routines) Unstructured Flow graphs (routines)
33
Path Products & expressions â&#x20AC;&#x201C; Identities / Rules (A+B)*
(A+B+C+...)*
=
( A* + B* ) *
: I1
=
( A* B* )*
: I2
=
( A* B )* A*
: I3
=
( B* A )* B*
: I4
=
( A* B + A )*
: I5
=
( B* A + B )*
: I6
=
( A* + B* + C* + . . . )*
: I7
=
( A* B* C* . . . )*
: I8
Derived by removing nodes in different orders & applying the series-parallel-loop rules. 34
Path Products & expressions â&#x20AC;&#x201C; Structured Flow Graphs Reducible to a single link by successive application of the transformations shown below.
A
B
A, B
Process
A
B
A
B
IF THEN .. ELSE ..
A
B
WHILE .. DO ..
35
Path Products & expressions – Structured Flow Graphs
Structured flow graph transformations
A
A, B
B
REPEAT .. UNTIL ..
Properties: •No cross-term transformation. •No GOTOs. •No entry into or exit from the middle of a loop. 36
Path Products & expressions â&#x20AC;&#x201C; Structured Flow Graphs
Some examples:
b a
f
d c
a
b e
c
g
d h j
37
i
e
Path Products & expressions – UNstructured Flow Graphs Some examples – unstructured flow graphs/code:
X
Jumping into loops Jumping out of loops
X
X X
Branching into Decisions
Branching out of Decisions 38
Questions from the previous yearâ&#x20AC;&#x2122;s exams
1. Write short notes on: path products, path expressions, path sums, loops. 2. Define structured code. Explain lower path count Arithmetic. 3. What is the looping probability of a path expression. Write arithmetic rules. Explain with an example. 4. Write the steps involved in Node Reduction Procedure. Illustrate all the steps with the help of neatly labeled diagrams.
39