Download presentation
Presentation is loading. Please wait.
Published byAnissa Baldwin Modified over 9 years ago
1
Software testing techniques Testing criteria based on data flow
Presentation on the seminar Kaunas University of Technology
2
What is data-flow testing?
Data-flow testing is a white box testing technique that can be used to detect improper use of data values due to coding errors. Testing criteria based on data flow
3
Testing criteria based on data flow
The General Idea A program unit accepts inputs, performs computations, assigns new values to variables, and returns results. One can visualize of “flow” of data values from one statement to another. A data value produced in one statement is expected to be used later. Testing criteria based on data flow
4
Data flow testing can be performed at two conceptual levels
Static data flow testing Dynamic data flow testing Testing criteria based on data flow
5
Static data flow testing
Identify potential defects, commonly known as data flow anomaly. Analyze source code. Do not execute code. Testing criteria based on data flow
6
Dynamic data flow testing
Involves actual program execution. Bears similarity with control flow testing. Identify paths to execute them. Paths are identified based on data flow testing criteria. Testing criteria based on data flow
7
Testing criteria based on data flow
Data Flow Anomaly Anomaly: It is an abnormal way of doing something. Example: The second definition of x overrides the first. x = f1(y); x = f2(z); Testing criteria based on data flow
8
Abnormal situations with using variable.
Defined and then defined again Undefined but referenced Defined but not referenced Defined and destroyed Destroyed before definition Destroyed and then referenced Destroyed twice Testing criteria based on data flow
9
Testing criteria based on data flow
Data Flow Graph A data flow graph is a directed graph constructed as follows. A sequence of definitions and uses is associated with each node of the graph. The entry nodes usually contains definitions of variables used in the program. The exit node has an undefinition of each local variable. Testing criteria based on data flow
10
Testing criteria based on data flow
Data Flow Graph Public double calculateBill(int Usage) { double Bill = 0; if(Usage > 0) Bill = 40; if(Usage > 100) Bill = Bill + Usage – 10; return Bill } Testing criteria based on data flow
11
Seven data flow testing criteria
All-defs All-c-uses All-p-uses All-p-uses/some-c-uses All-c-uses/some-p-uses All-uses All-du-paths Testing criteria based on data flow
12
Testing criteria based on data flow
All-definition Every definition of every variable be covered by at least one use of that variable, be that use a computational use or a predicate use. In this strategy, there is path from every definition to at least one use of that definition. Testing criteria based on data flow
13
Testing criteria based on data flow
All-c-uses In this testing strategy, for every variable, there is a path from every definition to every c-use of that definition. If there is a definition with no c-use following it, then it is dropped from contention. Testing criteria based on data flow
14
Testing criteria based on data flow
All-p-uses In this testing strategy, for every variable, there is path from every definition to every p-use of that definition. If there is a definition with no p-use following it, then it is dropped from contention. Testing criteria based on data flow
15
All-p-uses/some-c-uses
For every variable and every definition of that variable, include at least one path from the definition to every predicate use; if there are definitions of the variable that are not covered then add computational use test cases as required to cover every definition. In this testing strategy, for every variable, there is a path from every definition to every p-use of that definition. If there is a definition with no p-use following it, then a c-use of the definition is considered. Testing criteria based on data flow
16
All-c-uses/some-p-uses
For every variable and every definition of that variable, include at least one path from the definition to every computational use; if there are definitions of the variable that are not covered then add predicate use test cases as required to cover every definition. In this testing strategy, for every variable, there is a path from every definition to every c-use of that definition. If there is a definition with no c-use following it, then a p-use of the definition is considered. Testing criteria based on data flow
17
Testing criteria based on data flow
All-uses At least one path from every definition of every variable to every use of that can be reached by that definition. For every use of the variable, there is a path from the definition of that variable to the use. Testing criteria based on data flow
18
Testing criteria based on data flow
All-du-paths Every du path from every definition of every variable to every use of that definition. It is the strongest data-flow testing strategy since it is a superset of all other data flow testing strategies. Moreover, this strategy requires greatest number of paths for testing. Testing criteria based on data flow
19
Testing criteria based on data flow
Questions Is Data-flow testing a white box or black box testing technique? What are two data flow conceptual levels? Whitch of data flow testing criteria is the strongest testing strategy? Testing criteria based on data flow
20
Testing criteria based on data flow
Thank you Testing criteria based on data flow
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.