CONTROL FLOW TESTING
UNIT - 3
1
Prepared By: Ravi J Khimani, CSE Department, SLTIET, Rajkot
CONCEPTS
 Two kinds of Basic Statements in Program
 Assignment Statements
 Conditional Statements
 Conditional Statements alters the default
sequential control flow of program.
 A program unit must be having a proper entry-point
and exit-point, single or multiple.
 Sequence of instruction from Entry-Point to Exit-
Point is called Path. 2
CONCEPTS
 A specific input value causes a specific path to be
executed.
 That performs desired operations to produce
expected output.
 More execution of higher number of paths, at
higher cost, may not be effective to relieve defaults.
 Control Flow Testing is a kind of Structural Testing
which is performed by programmer to test code
written by them.
3
GENERATE TEST INPUT DATA FOR CFT
4
ACTIVITIES IN GENERATE TEST INPUT DATA
 Over all idea of generation test input data is to
perform control flow testing.
 Those activities performed and intermediate results
are produced.
 Input: Source Code & Set of Path Selection Criteria.
 Generation of a Control Flow Graph:
 aim to visualize all possible paths in program unit.
 Graphical Representation of execution.
5
ACTIVITIES IN GENERATE TEST INPUT DATA
 Selection of Paths:
 Paths are selected from CFG to satisfy Path Selection Criteria.
 Generation of a Test Input Data:
 A Path can be executed if and only if input to program unit
cause all conditional statements to true or false as per CFG.
 Such path is called Feasible Path.
 Otherwise it’s known as Infeasible Path.
6
ACTIVITIES IN GENERATE TEST INPUT DATA
 Feasibility Test of Path:
 Idea behind it to check the path is to meet the path selection
criteria.
 If some path founds to be infeasible, then new paths are
selected to be feasible.
7
CONTROL FLOW GRAPH
 A CFG is graphical representation of a program.
 Three symbols are used.
8
9
PATH REPRESENTATION
10
PATH SELECTION CRITERIA
 A Program Unit with small number of paths,
executing all paths may desirable and achievable.
 But if large number of paths, then executing all
path may not be practical.
 What paths do I select for testing?
 it is more productive for programmers to select a
small number of program paths in an effort to
reveal defects
11
ADVANTAGES OF PATH SELECTION
 Following, advantages of selecting paths based on
defined criteria:
 The programmer needs to observe the outcome of
executing each program construct.
 do not generate test inputs which execute the same
path repeatedly. It’s a waste of resources.
 If same path updates state of program, then repeat
execution of same path is not identical.
 Programmer can know the program features that have
been tested and those not tested
12
TECHNIQUES FOR PATH SELECTION
 All-Path coverage criteria
 If all-path are selected in CFG, then one can detect all
faults.
 Except those due to missing path error.
 Program may contain infinite number of paths.
 So, if all paths are selected to perform testing, then all-
path selection criteria has been satisfied.
13
FOR EXAMPLE - ALL-PATH COVERAGE CRITERIA
14
CFG
FOR
OPENFILES()
FUNCTION
15
INPUT DOMAIN AND PATHS
16
TECHNIQUES FOR PATH SELECTION [CONT…]
 Statement Coverage Criteria
 Refers to the individual program statement and
measure the outcome.
 100% achieved if all statements are executed.
 Its weakest coverage criteria.
 All program statements must be represent in CFG with
proper representation.
 So, basic problem is to select few feasible path for
covering all nodes in CFG.
 So, path length should be longer in increasingly
manner.
17
TECHNIQUES FOR PATH SELECTION [CONT…]
 Branch Coverage Criteria
 Each node in CFG may have one or two branches.
 Covering branch means selecting path that includes
that branch.
 Complete branch coverage means selecting a number
of paths such a way that all possible branches must be
included in those path.
18
TECHNIQUES FOR PATH SELECTION [CONT…]
 Predicate Coverage
Criteria
 Includes logic check
inside program, that
covers all
statements and
branch coverage
criteria.
19
TECHNIQUES FOR PATH SELECTION [CONT…]
 So need to design test cases that covers all the
possible conditions (logic).
 The False branch of node 5 (Figure 4.9a) is
executed under exactly one condition, namely,
when OB1 = False, OB2 = False, and OB3 = False,
whereas the true branch executes under seven 20
TECHNIQUES FOR PATH SELECTION [CONT…]
 If all possible combinations of truth values of the
conditions affecting a selected path have been
explored under some tests, then we say that
predicate coverage has been achieved.
 For Example, The path taking the true branch of
node 5 in Figure 4.9a must be executed for all
seven possible combinations of truth values of
OB1, OB2, and OB3 which result in OB = True.
21
GENERATING TEST INPUT
 After having an identified path, main question is
how to select input values?
 Such that, when program is executed with such
input values, the selected path gets executed.
 So, it needs to identify input to force path
execution.
22
GENERATING TEST INPUT
 For that some terms need to go through,
 1. Input Vector
 Collection of all data entities
 Fixed prior entering to routine / program.
 Like, input arguments, global variables, files, network
connections, timers, etc…
 For example, input vector for OPENFILE() function is
presence or absence of file1, file2, file3 and so on.
23
GENERATING TEST INPUT
 2. Predicate
 It’s a logical function evaluated at decision point.
 In this figure, OB is a predicate at decision point
24
GENERATING TEST INPUT
 3. Path Predicate
 It’s a set of predicates associated with the path.
25
GENERATING TEST INPUT
 4. Predicate Interpretation
 Predicate interpretation is defined as the process of
symbolically substituting operations along a path in
order to express the predicates solely in terms of the
input vector and a constant vector.
 Means, there is no role play of local variables inside
functions because they are not visible to outside
functions.
 Those local variables can be easily substituted by the
elements of input vector using symbolic substitution.
26
GENERATING TEST INPUT
27
GENERATING TEST INPUT
 5. Path Predicate Expression
 An interpreted path predicate is called a path predicate
expression with following properties.
 composed of input vector and constant vector
 set of constraints composed from input vector
 Forcing input values can be generated from constraints in path
predicate expression.
 If set of constraint can not be solved, then selected path can
not be executed.
 An infeasible path is not responsible for path predicate
expression, that dissatisfied.
 infeasibility of path forces to choose other path which meet
proper criteria. 28
GENERATING TEST INPUT
29
GENERATING TEST INPUT
 6. Generating Input Data from PPE
 The respective Path Predicate Expression must be
solved in order to generate input data which can force a
program to execute a selected path.
30
COINCIDENTAL CORRECTNESS
 In spite of the fault available in the code, some test
data produces the correct result, that’s known as
Coincidental Correctness.
 For Example,
31
Produces correct result in
CFG at slide number 9
CONTAIN INFEASIBLE PATH
 A CFG may contain number of paths, shorter or
longer.
 Not practical to execute or analyze all paths.
 So, define strategy like,
 Select as many as sort paths which are feasible
 Choose longer path to achieve coverage of statements,
predicates and branches.
 Reduce number of infeasible paths through language
design, program design, program transformations.
CONTAIN INFEASIBLE PATH
 Bertoline and Marre,
 gave an algorithm which generate set of feasible paths.
 Based on idea, Reduced Flow Graph, called ddgraph.
 Yates & Malevries,
 Suggests a strategy to select a path with minimum
number of predicates.

Unit 3 Control Flow Testing

  • 1.
    CONTROL FLOW TESTING UNIT- 3 1 Prepared By: Ravi J Khimani, CSE Department, SLTIET, Rajkot
  • 2.
    CONCEPTS  Two kindsof Basic Statements in Program  Assignment Statements  Conditional Statements  Conditional Statements alters the default sequential control flow of program.  A program unit must be having a proper entry-point and exit-point, single or multiple.  Sequence of instruction from Entry-Point to Exit- Point is called Path. 2
  • 3.
    CONCEPTS  A specificinput value causes a specific path to be executed.  That performs desired operations to produce expected output.  More execution of higher number of paths, at higher cost, may not be effective to relieve defaults.  Control Flow Testing is a kind of Structural Testing which is performed by programmer to test code written by them. 3
  • 4.
    GENERATE TEST INPUTDATA FOR CFT 4
  • 5.
    ACTIVITIES IN GENERATETEST INPUT DATA  Over all idea of generation test input data is to perform control flow testing.  Those activities performed and intermediate results are produced.  Input: Source Code & Set of Path Selection Criteria.  Generation of a Control Flow Graph:  aim to visualize all possible paths in program unit.  Graphical Representation of execution. 5
  • 6.
    ACTIVITIES IN GENERATETEST INPUT DATA  Selection of Paths:  Paths are selected from CFG to satisfy Path Selection Criteria.  Generation of a Test Input Data:  A Path can be executed if and only if input to program unit cause all conditional statements to true or false as per CFG.  Such path is called Feasible Path.  Otherwise it’s known as Infeasible Path. 6
  • 7.
    ACTIVITIES IN GENERATETEST INPUT DATA  Feasibility Test of Path:  Idea behind it to check the path is to meet the path selection criteria.  If some path founds to be infeasible, then new paths are selected to be feasible. 7
  • 8.
    CONTROL FLOW GRAPH A CFG is graphical representation of a program.  Three symbols are used. 8
  • 9.
  • 10.
  • 11.
    PATH SELECTION CRITERIA A Program Unit with small number of paths, executing all paths may desirable and achievable.  But if large number of paths, then executing all path may not be practical.  What paths do I select for testing?  it is more productive for programmers to select a small number of program paths in an effort to reveal defects 11
  • 12.
    ADVANTAGES OF PATHSELECTION  Following, advantages of selecting paths based on defined criteria:  The programmer needs to observe the outcome of executing each program construct.  do not generate test inputs which execute the same path repeatedly. It’s a waste of resources.  If same path updates state of program, then repeat execution of same path is not identical.  Programmer can know the program features that have been tested and those not tested 12
  • 13.
    TECHNIQUES FOR PATHSELECTION  All-Path coverage criteria  If all-path are selected in CFG, then one can detect all faults.  Except those due to missing path error.  Program may contain infinite number of paths.  So, if all paths are selected to perform testing, then all- path selection criteria has been satisfied. 13
  • 14.
    FOR EXAMPLE -ALL-PATH COVERAGE CRITERIA 14
  • 15.
  • 16.
  • 17.
    TECHNIQUES FOR PATHSELECTION [CONT…]  Statement Coverage Criteria  Refers to the individual program statement and measure the outcome.  100% achieved if all statements are executed.  Its weakest coverage criteria.  All program statements must be represent in CFG with proper representation.  So, basic problem is to select few feasible path for covering all nodes in CFG.  So, path length should be longer in increasingly manner. 17
  • 18.
    TECHNIQUES FOR PATHSELECTION [CONT…]  Branch Coverage Criteria  Each node in CFG may have one or two branches.  Covering branch means selecting path that includes that branch.  Complete branch coverage means selecting a number of paths such a way that all possible branches must be included in those path. 18
  • 19.
    TECHNIQUES FOR PATHSELECTION [CONT…]  Predicate Coverage Criteria  Includes logic check inside program, that covers all statements and branch coverage criteria. 19
  • 20.
    TECHNIQUES FOR PATHSELECTION [CONT…]  So need to design test cases that covers all the possible conditions (logic).  The False branch of node 5 (Figure 4.9a) is executed under exactly one condition, namely, when OB1 = False, OB2 = False, and OB3 = False, whereas the true branch executes under seven 20
  • 21.
    TECHNIQUES FOR PATHSELECTION [CONT…]  If all possible combinations of truth values of the conditions affecting a selected path have been explored under some tests, then we say that predicate coverage has been achieved.  For Example, The path taking the true branch of node 5 in Figure 4.9a must be executed for all seven possible combinations of truth values of OB1, OB2, and OB3 which result in OB = True. 21
  • 22.
    GENERATING TEST INPUT After having an identified path, main question is how to select input values?  Such that, when program is executed with such input values, the selected path gets executed.  So, it needs to identify input to force path execution. 22
  • 23.
    GENERATING TEST INPUT For that some terms need to go through,  1. Input Vector  Collection of all data entities  Fixed prior entering to routine / program.  Like, input arguments, global variables, files, network connections, timers, etc…  For example, input vector for OPENFILE() function is presence or absence of file1, file2, file3 and so on. 23
  • 24.
    GENERATING TEST INPUT 2. Predicate  It’s a logical function evaluated at decision point.  In this figure, OB is a predicate at decision point 24
  • 25.
    GENERATING TEST INPUT 3. Path Predicate  It’s a set of predicates associated with the path. 25
  • 26.
    GENERATING TEST INPUT 4. Predicate Interpretation  Predicate interpretation is defined as the process of symbolically substituting operations along a path in order to express the predicates solely in terms of the input vector and a constant vector.  Means, there is no role play of local variables inside functions because they are not visible to outside functions.  Those local variables can be easily substituted by the elements of input vector using symbolic substitution. 26
  • 27.
  • 28.
    GENERATING TEST INPUT 5. Path Predicate Expression  An interpreted path predicate is called a path predicate expression with following properties.  composed of input vector and constant vector  set of constraints composed from input vector  Forcing input values can be generated from constraints in path predicate expression.  If set of constraint can not be solved, then selected path can not be executed.  An infeasible path is not responsible for path predicate expression, that dissatisfied.  infeasibility of path forces to choose other path which meet proper criteria. 28
  • 29.
  • 30.
    GENERATING TEST INPUT 6. Generating Input Data from PPE  The respective Path Predicate Expression must be solved in order to generate input data which can force a program to execute a selected path. 30
  • 31.
    COINCIDENTAL CORRECTNESS  Inspite of the fault available in the code, some test data produces the correct result, that’s known as Coincidental Correctness.  For Example, 31 Produces correct result in CFG at slide number 9
  • 32.
    CONTAIN INFEASIBLE PATH A CFG may contain number of paths, shorter or longer.  Not practical to execute or analyze all paths.  So, define strategy like,  Select as many as sort paths which are feasible  Choose longer path to achieve coverage of statements, predicates and branches.  Reduce number of infeasible paths through language design, program design, program transformations.
  • 33.
    CONTAIN INFEASIBLE PATH Bertoline and Marre,  gave an algorithm which generate set of feasible paths.  Based on idea, Reduced Flow Graph, called ddgraph.  Yates & Malevries,  Suggests a strategy to select a path with minimum number of predicates.