Professional Documents
Culture Documents
Chapter 10
Dataflow Testing
DFT–2
Concordance
What is a concordance?
DFT–3
Concordance – 2
What is a concordance?
An alphabetical list of the words (esp. the important
ones) present in a text, usually with citations of the
passages concerned
Used to help find particular passages
Also used to analyze books to establish authorship
A concordance to the Bible
DFT–4
Concordance – 2
18 beta ← 2
25 alpha ← 3 × gamma + 1
51 gamma ← gamma + alpha - beta
123 beta ← beta + 2 × alpha
124 beta ← gamma + beta + 1
Defined Used
alpha 25 51, 123
beta 18, 123, 124 51, 123, 124
gamma 51 25, 51, 124
DFT–5
Dataflow Analysis
DFT–6
Dataflow Analysis – 2
DFT–7
Definitions
DFT–8
Definitions – 2
DFT–9
Definitions – 3
DFT–10
Example 2 – Billing program
DFT–11
Definition-Use path
What is a du-path?
DFT–12
Definition-Use path – 2
What is a du-path?
A definition-use path, du-path, with respect to a variable
v is a path whose first node is a defining node for v, and
its last node is a usage node for v
DFT–13
Definition clear path
What is a dc-path?
DFT–14
Definition clear path – 2
What is a dc-path?
A du-path with no other defining node for v is a
definition-clear path
DFT–15
Example 1 – Max program
A definition of j
1 int max = 0;
2 int j = s.nextInt();
Definitions
3 while (j > 0) P-uses of j & max
of max
4 if (j > max) {
A C-use of j
5 max = j;
6 }
7 j = s.nextInt();
A C-use of max
8 } A definition of j
9 System.out.println(max);
DFT–16
Max program – analysis
DFT–17
Dataflow Coverage Metrics
All-Edges
All-Paths
DFT–18
All-Defs Criterion
DFT–19
All-Uses Criterion
DFT–21
All-C-uses / Some-P-uses
DFT–22
Miles-per-gallon Program
DFT–23
Miles-per-gallon Program – 2
DFT–24
Mile-per-gallon Program – Segmented
DFT–25
Miles-per-gallon Program – 3
DFT–26
MPG program graph
DFT–27
MPG program graph
Def miles,
gallons
C-use gallons
P-use
gallons
P-use
miles,
gallons
Possible
C-use miles, gallons
C-use miles, gallons, price
But not common
practice
DFT–28
Miles-per-gallon Program – 4
DFT–29
Example du-paths
All-C-uses/Some-P-uses (ACU+P)
All-P-uses/Some-C-uses (APU+C)
All-uses
DFT–30
MPG – DU-Paths for Miles
All-Defs
Each definition of each variable for at least one use of
the definition
ABD
All-C-uses
At least one path of each variable to each c-use of the
definition
ABDE ABDF ABD
DFT–31
MPG – DU-Paths for Miles – 2
All-P-uses
At last one path of each variable to each p-use of the
definition
ABD
All-C-uses/Some-P-uses
At least one path of each variable definition to each c-
use of the variable. If any variable definitions are not
covered use p-use
ABDE ABDF ABD
DFT–32
MPG – DU-Paths for Miles – 3
All-P-uses/Some-C-uses
At least one path of each variable definition to each p-
use of the variable. If any variable definitions are not
covered by p-use, then use c-use
ABD
All-uses
At least one path of each variable definition to each p-
use and each c-use of the definition
ABD ABDE ABDF
DFT–33
MPG – DU-Paths for Gallons
All-Defs
Each definition of each variable for at least one use of the
definition
AB
All-C-uses
At least one path of each variable to each c-use of the
definition
ABC ABDE ABDF ABD
DFT–34
MPG – DU-Paths for Gallons – 2
All-P-uses
At least one path of each variable definition to each p-
use of the definition
AB ABD
All-C-uses/Some-P-uses
At least one path of each variable definition to each c-
use of the variable. If any variable definitions are not
covered by c-use, then use p-use
ABC ABDE ABDF ABD
DFT–35
MPG – DU-Paths for Gallons – 3
All-P-uses/Some-C-uses
At least one path of each variable definition to each p-
use of the variable. If any variable definitions are not
covered use c-use
AB ABD
All-uses
At least one path of each variable definition to each p-
use and each c-use of the definition
AB ABC ABD ABDE ABDF
DFT–36
MPG – DU-Paths for Price
All-Defs
Each definition of each variable for at least one use of
the definition
ABDF
All-C-uses
At least one path of each variable to each c-use of the
definition
ABDF
DFT–37
MPG – DU-Paths for Price – 2
All-P-uses
At least one path of each variable definition to each p-
use of the definition
None
All-C-uses/Some-P-uses
At least one path of each variable definition to each c-
use of the variable. If any variable definitions are not
covered use p-use
ABDF
DFT–38
MPG – DU-Paths for Price – 2
All-P-uses/Some-C-uses
At least one path of each variable definition to each p-
use of the variable. If any variable definitions are not
covered use c-use
ABDF
All-uses
At least one path of each variable definition to each p-
use and each c-use of the definition
ABDF
DFT–39
Rapps-Weyuker data flow hierarchy
All-Paths
All-DU-Paths
All-Uses
All-C-uses All-P-uses
Some-P-uses Some-C-uses
All-Defs All-P-uses
All-Edges
All-Nodes
DFT–40
Potential Anomalies – static analysis
Anomalies Explanation
~d first define ???
du define-use ???
dk define-kill ???
~u first use ???
ud use-define ???
uk use-kill ???
~k first kill ???
ku kill-use ???
DFT–41
Potential Anomalies – static analysis – 2
Anomalies Explanation
kd kill-define ???
dd define-define ???
uu use-use ???
kk kill-kill ???
d~ define last ???
u~ use last ???
k~ kill last ???
DFT–42
Potential Anomalies – static analysis – 3
Anomalies Explanation
~d first define Allowed – normal case
du define-use Allowed – normal case
dk define-kill Potential bug
~u first use Potential bug
ud use-define Allowed – redefine
uk use-kill Allowed – normal case
~k first kill Serious defect
ku kill-use Serious defect
DFT–43
Potential Anomalies – static analysis – 4
Anomalies Explanation
kd kill-define Allowed - redefined
dd define-define Potential bug
uu use-use Allowed - normal case
kk kill-kill Serious defect
d~ define last Potential bug
u~ use last Allowed- normal case
k~ kill last Allowed - normal case
DFT–44
Data flow guidelines
DFT–45
Data flow guidelines – 2
DFT–46
Data flow guidelines – 3
DFT–47