Unit 6
Unit 6
Unit 6
Prasanna Balaji
SOFTWARE TESTING METHODOLOGY
Term:2009-2010
B.Tech III/IT Semester - I
Unit-VI PPT Slides
Text Books: 1.Software Testing Techniques: Boris Beizer
2. Craft of Software Testing: Brain Marrick
2
Sub
Topic
Nos
Sub Topic name Lecturer
No
Slide
Nos
1 Overview
L1 3
2 Decision Tables L2 5
3 Path Expression L3 13
4 KV maps L4,L5 22
5 Specifications L6 29
6 Review: Previous years Question papers L7 31
Logic based testing: Overview
Logic is used in a program by programmers.
Boolean algebra is the way to work with logic
simplification & calculation.
Hardware logic testing hardware logic test
design tools and methods use logic & Boolean
algebra. Hardware design language
compilers/translators use logic & Boolean
algebra.
Impact of errors in specifications of a software is
high as these are first in and last out. So, higher
level language for specs is desired to reduce the
number of errors. Higher order logic systems are
used for formal specifications. The tools to
simplify, transform and check specs use
Boolean algebra.
Logic based testing: Overview
Knowledge based systems:
Knowledge based systems and artificial
intelligence systems use high level logic
languages which are based on rule bases
consisting of rules. Rules are predicate
expressions containing domain knowledge
related elements combined with logical
connectives. The answers to queries (problems)
are derived based on Boolean algebraic
operations performed on the rule bases. Such
programs are called inference engines.
Modeling Logic with
Decision Tables
A matrix representation of the logic of a
decision
Specifies the possible conditions and the
resulting actions
Best used for complicated decision logic
Modeling Logic with
Decision Tables
Consists of three parts
Condition stubs
Lists condition relevant to decision
Action stubs
Actions that result from a given set of conditions
Rules
Specify which actions are to be followed for a
given set of conditions
Modeling Logic with
Decision Tables
Indifferent Condition
Condition whose value does not affect which action is
taken for two or more rules
Standard procedure for creating decision tables
Name the condition and values each condition can
assume
Name all possible actions that can occur
List all rules
Define the actions for each rule
Simplify the table
Complete decision table for payroll system
example
9.8
Constructing a Decision Table
PART 1. FRAME THE PROBLEM.
Identify the conditions (decision criteria). These are
the factors that will influence the decision.
E.g., We want to know the total cost of a students
tuition. What factors are important?
Identify the range of values for each condition or
criteria.
E.g. What are they for each factor identified
above?
Identify all possible actions that can occur.
E.g. What types of calculations would be
necessary?
Constructing a Decision Table
PART 2. CREATE THE TABLE.
Create a table with 4 quadrants.
Put the conditions in the upper left quadrant. One
row per condition.
Put the actions in the lower left quadrant. One row
per action.
List all possible rules.
Alternate values for first condition. Repeat for all
values of second condition. Keep repeating this
process for all conditions.
Put the rules in the upper right quadrant.
Enter actions for each rule
In the lower right quadrant, determine what, if any,
appropriate actions should be taken for each rule.
Reduce table as necessary.
Example
Calculate the total cost of your tuition this
quarter.
What do you need to know?
Level. (Undergrad or graduate)
School. (CTI, Law, etc.)
Status. (Full or part time)
Number of hours
Actions?
Actions?
Consider CTI only (to make the problem smaller):
U/G
Part Time (1 to 11 hrs.): $335.00/per hour
Full Time (12 to 18 hrs.): $17,820.00
* Credit hours over 18 are charged at the part-time rate
Graduate:
Part time (1 to 7 hrs.): $520.00/per hour
Full time (>= 8 hrs.): $520.00/per hour
Create a decision table for this problem. In my
solution I was able to reduce the number of rules
from 16 to 4.
Boolean Algebra
A Boolean algebra consists of:
a set B={0, 1},
2 binary operations on B (denoted by + & ),
a unary operation on B (denoted by '), such
that :
0 + 0 = 0 0 0 = 0
1 + 0 = 1 0 1 = 0
0 + 1 = 1 1 0 = 0
1 + 1 = 1 1 1 = 1
0=1 and 1=0.
13
Rules of a Boolean Algebra
The following axioms (rules) are satisfied for all
elements x, y& z of B:
(1) x + y = y + x (commutative axioms)
x y = y x
(2) x + (y + z) = (x + y) + z (associative axioms)
x (y z) = (x y) z
(3) x (y + z) = (x y) + (x z)
x + (y z) = (x + y) (x + z) (distributive axioms)
(4) x + 0 = x x 1 = x (identity axioms)
(5) x + x' = 1 x x' = 0 (inverse axioms)
14
Laws of Boolean Algebra
In addition to the laws given by the axioms of
Boolean Algebra, we can show the following laws
x'' = x (double complement)
x + x = x x x = x (idempotent )
(x + y)' = x' y' (x y)' = x' + y' (de Morgans laws)
x + 1 = 1 x 0 = 0 (annihilation)
x + (x y) = x x (x + y) = x (absorption)
0' = 1 1' = 0 (complement)
15
Exercise
Simplify the Boolean expression
(x' y) + (x y)
Solution: (x' y) + (x y)
= (y x') + (y x) (commutative)
= y (x' + x) (distributive)
= y (x + x') (commutative)
= y 1 (inverse)
= y (identity)
Thus (x' y) + (x y) = y
16
Boolean Notation
This means that in effect well be employing
Boolean Algebra notation.
The truth tables can be rewritten as
17
Notational Short-cuts
We will employ short-cuts in notation:
(1) In multiplication well omit the symbol , &
write xy for x y (just as in ordinary algebra)
(2) The associative law says that
x + (y + z) = (x + y) + z
So well write this as simply x + y + z, because
the brackets arent necessary.
18
Notational Short-cuts
Similarly, write the product of 3 terms as xyz
(3) In ordinary algebra, the expression
x + y z means x + (y z), because of the
convention that multiplication takes
precedence over addition.
e.g. x + yz means x + (y z), and not (x + y) z
Similarly, ab + cd means (a b) + (c d)
19
Reducing Boolean
Expressions
Is this the smallest possible implementation
of this expression? No!
Use Boolean Algebra rules to reduce
complexity while preserving functionality.
Step 1: Use idempotent law (a + a = a). So
xyz + xyz + xyz = xyz + xyz + xyz + xyz
G = xyz + xyz + xyz
20
Reducing Boolean
Expressions
Step 2: Use distributive law a(b + c) = ab +
ac. So xyz + xyz + xyz + xyz = xy(z + z) +
yz(x + x)
Step 3: Use Inverse law (a + a = 1). So
xy(z + z) + yz(x + x) = xy.1 + yz.1
Step 4: Use Identity law (a . 1 = a). So
xy + yz = xy.1 + yz.1 = xyz + xyz + xyz
21
x y F
0 0 1
0 1 1
1 0 0
1 1 0
Karnaugh maps
Alternate way of representing Boolean
function
All rows of truth table represented with
a square
Each square represents a minterm
0 1
y
x
0
1
1
0 0
1
0 1
y
x
0
1
xy
xy xy
xy
22
Karnaugh maps
Easy to convert between truth table, K-map,
and SOP.
Unoptimized form: number of 1s in K-map
equals number of minterms (products) in
SOP.
Optimized form: reduced number of
minterms
23
F(x,y) = xy + xy = x
Karnaugh Maps
A Karnaugh map is a graphical tool for assisting in the
general
simplification procedure.
Two variable maps.
0
A
1 0
1
B
0 1
0
1
F=AB +AB
0
A
1 1
1
B
0 1
0
1
Three variable maps.
0
A
1 1
1
00 01
0
1
BC
0
1 1
1
11 10
F=ABC +AB C +ABC +ABC + ABC + ABC
F=AB +AB +AB
A B C F
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1
+
24
Rules for K-Maps
We can reduce functions by circling 1s in
the K-map.
Each circle represents minterm reduction.
Following circling, we can deduce minimized
and-or form.
F(x,y) = xy + xy = x
25
0 1
y
x
0
1
1
0 0
1
Rules for K-Maps
Rules to consider
1. Every cell containing a 1 must be
included at
least once.
2. The largest possible power of 2
rectangle
must be enclosed.
26
Karnaugh Maps
A Karnaugh map is a graphical tool for assisting in the
general simplification procedure.
Two variable maps.
0
A
1 0
1
B
0 1
0
1
F=AB +AB
0
A
1 1
1
B
0 1
0
1 F=A+B
Three variable maps.
F=A+B C +BC
0
A
1 1
1
00 01
0
1
BC
0
1 1
1
11 10
F=AB +AB +AB
F=ABC +AB C +ABC +ABC + ABC + ABC
27
More Karnaugh Map
Examples
Examples
g = b'
0 1
0
1
a
b
c
ab
00 01 11 10
0
1
0 1
0
1
a
b
c
ab
00 01 11 10
0
1
0 1
0 1
f = a
0 0 1 0
0 1 1 1
cout = ab + bc + ac
1 1
0 0
0 0 1 1
0 0 1 1
f = a
1. Circle the largest groups possible.
2. Group dimensions must be a power of 2.
3. Remember what circling means
28
Specifications
Specification validation procedure / steps
1. Rewrite the specifications using consistent
terminology.
2. Identify the predicates on which the cases are based.
Name them with
suitable letters, such as A, B, C.
3. Rewrite the specification in English that uses only the
logical connectives
AND, OR, and NOT, however stilted it may seem.
4. Convert the rewritten specifications into an equivalent
set of Boolean expressions.
5. Identify the default action and cases, if any are
specified.
Specifications Continue
6. Enter the Boolean expressions in a KV chart and check
for consistency. If
the specifications are consistent, there will be no
overlaps, except for the
cases that result in multiple actions.
7. Enter the default cases, and check for consistency.
8. If all boxes are covered, the specification is complete.
9. If the specification is incomplete or inconsistent, translate
the
corresponding boxes of the KV chart back into English
and get a
clarification, explanation, or revision.
10. If the default cases were not specified explicitly, translate
the default cases
back into English and get a confirmation.
Questions from the previous
exams
1. What is decision table? How is it useful in testing? Explain it with
an example.
2. Are the predicates are restricted to Binary truth value or not?
Explain.
3. Illustrate the applications of Decision Tables.
4. Minimize the function using Karnaugh map method.
5. F(A,B,C,D) = (1,2,3,8,9,10,11,14)+ (7, 15)
6. Demonstrate by means of truth tables the validity of the following
theorems of Boolean Algebra:
1. Associative laws
2. Demorgans theorems for three variables
3. Distributive law of + over .