Data flow testing (DFT), introduced by Herman in 1976, is a family of testing strategies based on selecting paths from the program’s control flow in order to explore sequences of events related to the status of variables or data objects. It fills the gaps between all path testing and branch/statement testing with the aim to pinpoint the potential data-flow anomalies. The motivation behind is to verify the correctness of defined variable values by observing their corresponding uses can produce the desired results.
See this survey for details about data flow testing techniques.
Various approaches have been used to automate data flow testing, for example the following approaches have been used in data flow-based test generation:
A list of publications related to data flow testing (download, zip). (If you know about a paper that is not in the list, feel free to send me an email).
Paper Title | Venue | Year | Research Topic | Authors | Description |
---|---|---|---|---|---|
Automated Testing of Definition-Use Data Flow for Multithreaded Programs | ICST | 2017 | Test Generation | Xiaodong Zhang, Zijiang Yang, Qinghua Zheng, Pei Liu, Jialiang Chang, Yu Hao, Ting Liu | Data Flow Coverage for Multithread Program |
Data Flow Testing for Virtual Prototypes | DATE | 2017 | Test Generation | Muhammad Hassan, Vladimir Herdt, Hoang M. Le, Mingsong Chen, Daniel Große, Rolf Drechsler | Data Flow Coverage for System C |
Dynamic Data Flow Testing of Object Oriented Systems | ICSE | 2015 | Test Generation | Giovanni Denaro, Alessandro Margara, Mauro Pezze, Mattia Vivanti | Dynamic Data Flow Analysis; Genetic Algorithm; RT |
Combining Symbolic Execution and Model Checking for Data Flow Testing | ICSE | 2015 | Test Generation | Ting Su, Zhoulai Fu, Geguang Pu, Jifeng He, Zhendong Su | Symbolic Execution,Model Checking, RT |
An approach and tool for measurement of state variable based data-flow test coverage for aspect-oriented programs | IST Journal | 2015 | Fadi Wedyan, Sudipto Ghosh, Leo R. Vijayasarathy | ||
Automatic Generation of Data Flow Test Paths using a Genetic Algorithm | IJCA Journal | 2014 | Test Generation | Moheb R. Girgis,Ahmed S. GhidukEman, H. Abd-elkawy | Genetic Algorithm;RT |
Dynamic data-flow testing | ICSE | 2014 | Mattia Vivanti | ||
On the right objectives of data flow testing | ICST | 2014 | Data-flow Analysis | Giovanni Denaro, Mauro Pezz{\`e}, Mattia Vivanti | Dynamic/Static Data Flow Analysis |
Data-flow testing in the large | ICST | 2014 | Coverage Tracking | Roberto Paulo Andrioli de Araujo,Marcos Lordello Chaim | Bitset Algorithm |
Covering User-Defined Data-flow Test Requirements Using Symbolic Execution | SBQS | 2014 | Test Generation | Marcelo Medeiros Eler,Andre Takeshi Endo,Vinicius Durelli | Symbolic Execution |
Proof of correctness of the bitwise algorithm for intra-procedural data-flow testing coverage | Technical Report | 2013 | Proof | Chaim Marcos Lordello, de Araujo Roberto Paulo Andrioli | |
Search-based data-flow test generation | ISSRE | 2013 | Test Generation | Mattia Vivanti, Andre Mis, Alessandra Gorla, Gordon Fraser | Genetic Algorithm |
Comparing multi-point stride coverage and dataflow coverage | ICSE | 2013 | New Coverage | Mohammad Mahdi Hassan, James H. Andrews | |
Quantifying the Complexity of Dataflow Testing | AST | 2013 | quantify complexity | Giovanni Denaro, Mauro Pezz\`{e},Mattia Vivanti | |
An efficient bitwise algorithm for intra-procedural data-flow testing coverage | IPL | 2013 | Coverage Tracking | Marcos Lordello Chaim,Roberto Paulo Andrioli de Araujo | Bitset Algorithm(BA); matrix-based (MB), demand-driven (DD) |
A comparative study of data flow testing techniques | IJLTET | 2013 | Comparative Study | Swati Sarraf, Farah DeebaHasan, Naveen Garg | |
State Aware Test Case Regeneration for Improving Web Application Test Suite Coverage and Fault Detection | ISSTA | 2012 | Application | Nadia Alshahwan, Mark Harman | |
Automatic Test Data Generation using Data Flow Information | Dogus University Journal | 2011 | Test Generation | Abdelaziz Khamis,Reem Bahgat,Rana Abdelaziz | dynamic domain reduction (DDR) |
A Hybrid PSO Approach to Automate Test Data Generation for Data Flow Coverage with Dominance Concepts | JAST Journal | 2011 | Test Generation | Sanjay Singla,Dharminder Kumar,H M Rai,Priti Singla | Optimization Algorithm (PSO), GA |
An Automatic Test Data Generation for Data Flow Coverage Using Soft Computing Approach | IJRRCS | 2011 | Test Generation | Sanjay Singla,Priti Singla ,H M Rai | Optimization Algorithm (PSO), GA |
Testing with state variable data-flow criteria for aspect-oriented programs | Ph.D theis | 2011 | Fadi Wedyan | ||
A Comparison of Dataflow and Mutation Testing of Java Methods | DCS | 2011 | Test Effectiveness | Ilona Bluemke, Karol Kulesza | |
Testing Coupling Relationships in Object-oriented Programs | STVR | 2010 | extend data flow criterion in OO | Alexander, Roger T. and Offutt, Jeff and Stefik, Andreas | RT |
A Dataflow Testing Approach for Aspect-Oriented Programs | HASE | 2010 | Fadi Wedyan and Sudipto Ghosh | ||
A New Software Data-Flow Testing Approach via Ant Colony Algorithms | UJCSET | 2010 | Test Generation | Ahmed S. Ghiduk | Ant Colony Algorithm (ACO) |
Automatic Test Data Generation for Data Flow Testing Using Particle Swarm Optimization | IC3 | 2010 | Test Generation | Narmada Nayak,Durga Prasad Mohapatra | Optimization Algorithm (PSO), GA |
Evolutionary Testing of Stateful Systems: a Holistic Approach | Ph.D thesis | 2010 | Test Generation | Matteo Miraz | Genetic Algorithm |
Checking Model Consistency using Data-Flow Testing | APSEC | 2009 | Model Consistency | Wang, Chen-Wei and Cavarra, Alessandra | |
Lightweight fault-localization using multiple coverage types | ICSE | 2009 | Fault Localization | Ra{\'{u}}l A. Santelices ,James A. Jones,Yanbing Yu,Mary Jean Harrold | |
Dataflow testing of java programs with DFC | CEE-SET | 2009 | Tool | Bluemke Ilona,Rembiszewski Artur | |
Dataflow approach to testing Java programs | ICDCS | 2009 | Tool | Bluemke Ilona,Rembiszewski Artur | |
Data flow testing of service choreography | FSE | 2009 | Application | Mei, Lijun and Chan, W. K. and Tse, T. H. | |
Automatic test data generation model by combining dataflow analysis with genetic algorithm | JCPC | 2009 | Test Generation | Mingjie Deng,Rong Chen, Zhenjun Du | Genetic Algorithm |
DaTeC: Contextual data flow testing of java classes | ICSE | 2009 | Tool | Giovanni Denaro,Alessandra Gorla,Mauro Pezz{\`{e}} | |
Data Flow Testing of Service-oriented Workflow Applications | ICSE | 2008 | Application | Mei, Lijun and Chan, W.K. and Tse, T.H. | |
Hybridizing Evolutionary Testing with Artificial Immune Systems and Local Search | ICST | 2008 | Test Generation | Konstantinos Liaskos, Marc Roper | Genetic Algorithm, AIS |
Contextual Integration Testing of Classes | FASE | 2008 | Contextual data-flow analysis | Giovanni Denaro,Alessandra Gorla,Mauro Pezz{\`{e}} | |
Automatic Test-Data Generation: An Immunological Approach | TAIC PART | 2007 | Test Generation | Konstantinos Liaskos, Marc Roper | Genetic Algorithm, AIS |
Investigating data-flow coverage of classes using evolutionary algorithms | GECCO | 2007 | Test Generation | Konstantinos Liaskos, Marc Roper, Murray Wood | Genetic Algorithm |
Efficiently monitoring data-flow test coverage | ASE | 2007 | Test Generation | Santelices Raul, Harrold Mary Jean | Collateral Coverage |
Using Genetic Algorithms to Aid Test-Data Generation for Data-Flow Coverage | APSEC | 2007 | Test Generation | Ahmed S. Ghiduk,Mary Jean Harrold,Moheb R. Girgis | Genetic Algorithm |
Subsumption of program entities for efficient coverage and monitoring | SOQUA | 2006 | Test Generation | Ra{\'{u}}l A. Santelices, Saurabh Sinha,Mary Jean Harrold | Collateral Coverage |
An agent-based data-flow testing approach for web applications | IST | 2006 | Application | Qi, Yu and Kung, David and Wong, Eric | |
The collateral coverage of data flow criteria when branch testing | IST | 2006 | Test Generation | Nicos Malevris, Derek F. Yates | Collateral Coverage |
Coverage testing of Java programs and components | JSCP | 2005 | Coverage Tracking | Vincenzi Auri Marcelo Rizzo, Maldonado Jos{\'e} Carlos,Wong W Eric, Delamaro M{\'a}rcio Eduardo | Last definition |
Demand-driven structural testing with dynamic instrumentation | ICSE | 2005 | Coverage Tracking | Jonathan Misurda,James A. Clause,Juliya L. Reed,Bruce R. Childers,Mary Lou Soffa | Demand-driven |
Jazz: A tool for demand-driven structural testing | CC | 2005 | Coverage Tracking | Jonathan Misurda,James A. Clause,Juliya L. Reed,Bruce R. Childers,Mary Lou Soffa | Demand-driven |
Automated Generation and Evaluation of Dataflow-Based Test Data for Object-Oriented Software | QoSA/SOQUA | 2005 | Test Generation | Norbert Oster | Genetic Algorithm |
Automatic Test Data Generation for Data Flow Testing Using a Genetic Algorithm | JUCS Journal | 2005 | Test Generation | Moheb R. Girgis | Genetic Algorithm,RT |
Dependence Testing: Extending Data Flow Testing with Control Dependence | TestCom | 2005 | Hyoung Seok Hong and Hasan Ural | ||
The construction of contextual def-use associations for object-oriented systems | TSE | 2003 | Data-flow Analysis | Souter, Amie L. and Pollock, Lori L. | |
Data Flow Testing as Model Checking | ICSE | 2003 | Test Generation | Hyoung Seok Hong, Sung Deok Cha, Insup Lee, Oleg Sokolsky, Hasan Ural | Model Checking |
Data-flow-based unit testing of aspect-oriented programs | COMPSAC | 2003 | Application | Jianjun Zhao | |
Using Spanning Sets for Coverage Testing | TSE | 2003 | Test Generation | Marr{\'e} Martina, Bertolino Antonia | Collateral Coverage |
Interclass Testing of Object Oriented Software | ICECCS | 2002 | Test Generation | Martena, Vincenzo and Orso, Alessandro and Pezz{\'e}, Mauro | (static) Symbolic Execution; Automated Deduction |
Automatic test generation from specifications for control-flow and data-flow coverage criteria | Monterey Workshop | 2001 | Model Consistency | Hong, Hyoung Seok, and Insup Lee | |
Object-Based Data Flow Testing of Web Applications | APAQS | 2000 | Application | Liu, Chien-Hung and Kung, David C. and Hsia, Pei and Hsu, Chih-Tung | |
Automated testing of classes | ISSTA | 2000 | Test Generation | Ugo A. Buy,Alessandro Orso ,Mauro Pezz{\`e} | Symbolic Execution, Backward Deduction |
Test generation based on control and data dependencies within system specifications in SDL | CC | 2000 | Application | Hasan Ural,Kassem Saleh, Alan W. Williams | |
A test sequence selection method for statecharts | STVR | 2000 | Application | Hyoung Seok Hong, Young Gon Kim, Sung Deok Cha, Doo{-}Hwan Bae,Hasan Ural | |
A static measure of a subset of intra-procedural data flow testing coverage based on node coverage | CASCON | 1999 | Test Generation | Ettore Merlo,Giuliano Antoniol | Collateral Coverage |
Data-flow-based testing of object-oriented libraries | TR | 1999 | Data-flow Analysis | BRamkrishna Chatterjee,Barbara G. Ryder | |
Further Empirical Studies of Test Effectiveness | FSE | 1998 | Test Effectiveness | Phyllis G. Frankl, Oleg Iakounenko | |
All-Uses versus Mutation Testing: An Experimental Comparison of Effectiveness | JSS | 1997 | Test Effectiveness | Frankl, Phyllis G. and Weiss, Stewart N. and Hu, Cang | |
Refining Data Flow Information Using Infeasible Paths | ACM Software Engineering Notes | 1997 | Data Flow Analysis | Rastislav Bod ́ık, Rajiv Gupta, and Mary Lou Soffa | |
A Demand-driven Analyzer for Data Flow Testing at the Integration Level | ICSE | 1996 | Data Flow Analysis | Evelyn Duesterwald, Rajiv Gupta, and Mary Lou Soffa | |
Unconstrained duals and their use in achieving all-uses coverage | ISSTA | 1996 | Test Generation | Martina Marré,Antonia Bertolino | Collateral Coverage |
An Experimental Evaluation of Data Flow and Mutation Testing | JSPE | 1996 | Test Effectiveness | Offutt, A. Jefferson and Pan, Jie and Tewary, Kanupriya and Zhang, Tong | |
Fault detection effectiveness of mutation and data flow testing | SQJ | 1995 | Test Effectiveness | W. Eric Wong, Aditya P. Mathur | |
Fault Localization using Execution Slices and Dataflow Tests | ISSRE | 1995 | Fault Localization | Hiralal Agrawal,Joseph R. Horga,Saul London, W. Eric Wong | |
An empirical comparison of data flow and mutation-based test adequacy criteria | STVR | 1994 | Test Complexity | Aditya P. Mathur and W. Eric Wong | |
Interprocedural Def-Use Associations for {C} Systems with Single Level Pointers | TSE | 1994 | Data-flow Analysis | Pande, H. D., Landi, W. A. ,Ryder, B. G. | |
Efficient computation of interprocedural definition-use chains | TPLS | 1994 | Data-flow Analysis | Harrold, Mary Jean and Soffa, Mary Lou | |
Experiments of the effectiveness of dataflow- and controlflow-based test adequacy criteria | ICSE | 1994 | Test Effectiveness | Monica Hutchins, Herbert Foster, Tarak Goradia, Thomas J. Ostrand | |
Performing Data Flow Testing in Parallel | IPPS | 1994 | Coverage Tracking | Mary Jean Harrold | parallelized DFT |
Performing data flow testing on classes | FSE | 1994 | Classes Testing | Mary Jean Harrold, Gregg Rothermel | |
A Methodology for Controlling the Size of a Test Suite | TOSEM | 1993 | Collateral Coverage | M. Jean Harrold, Rajiv Gupta, and Mary Lou Soffa | |
More Experience with Data Flow Testing | TSE | 1993 | Test Effectiveness/Cost | Weyuker, E. J. | |
Interprocedural Dynamic Slicing Applied to Interprocedural Data Flow Testing | ICSM | 1993 | Coverage Tracking | Mariam Kamkar,Peter Fritzson,Nahid Shahmehri | Dynamic Program Slicing |
An experimental comparison of the effectiveness of branch testing and data flow testing | TSE | 1993 | Test Effectiveness | Frankl, P. G., Weiss, S. N. | |
A study of the effectiveness of control and data flow testing strategies | JSS | 1993 | Test Effectiveness | Lynn M Foreman, Stuart H Zweben | |
Using symbolic execution and data flow criteria to aid test data selection | STVR | 1993 | Test Generation | Moheb Girgis | Symbolic Execution |
Data flow testing of parallelized code | ICSM | 1992 | Application | Mary Jean Harrold and Brian A. Malloy | |
ATAC: A data flow coverage testing tool for C | SAQSDT | 1992 | Coverage Tracking | Horgan, J. R.,London | Last definition |
Data flow coverage and the C language | STAV | 1991 | Tool | Horgan, J. R.,London, S. | |
POKE-TOOL-A Tool to support Structural Program Testing based on Data Flow Analysis | Journal | 1991 | Coverage Tracking | Chaim ML | Automata |
Data flow-based test adequacy analysis for languages with pointers | STAV | 1991 | Coverage Tracking | Ostrand Thomas J, Weyuker Elaine J | Memory Checking |
Data Flow Testing in STAD | JSS | 1990 | Tool | Laski, J. | |
The Cost of Data Flow Testing: An Empirical Study | TSE | 1990 | Test Complexity/Cost | Elaine J. Weyuker | |
A formal evaluation of data flow path selection criteria | TSE | 1989 | Analysis | Lori A. Clarke,Andy Podgurski,Debra J. Richardson,Steven J. Zeil | |
STAD-a system for testing and debugging: user perspective | STVA | 1988 | Tool | Korel, B. and Laski, J. | |
An empirical study of the complexity of data flow testing | STVA | 1988 | Test Complexity/Cost | EJ Weyuker | |
An Applicable Family of Data Flow Testing Criteria | TSE | 1988 | Theory | PHYLLIS G. FRANKL, ELAINE J. WEYUKER | |
The use of data flow information for the selection and evaluation of software test data | Ph.D thesis | 1987 | Coverage Tracking | Frankl F. G. | DFA |
Data flow testing in the presence of unexecutable paths | TR | 1986 | PG Frankl, EJ Weyuker | ||
Asset: A system to select and evaluate tests | Book | 1985 | Tool | Frankl Phyllis G, Weiss Stewart N,Weyuker Elaine J | |
A Tool for Data Flow Oriented Program Testing | CSDTTA | 1985 | Tool | Korel B.,Laski J. | |
A Data Flow Testing Tool | CSDTTA | 1985 | Tool | Frankl, Phyllis G.,Weyuker, Elaine J. | |
Selecting Software Test Data Using Data Flow Information | TSE | 1985 | Theory | Sandra Rapps, Elaine J. Weyuker | |
The Complexity of Data Flow Criteria for Test Data Selection | IPL | 1984 | Theory | Weyuker, Elaine J. | |
A Data Flow Oriented Program Testing Strategy | TSE | 1983 | Theory | Laski, J. W. and Korel, B. | |
Data Flow Analysis Techniques for Test Data Selection | ICSE | 1982 | Theory | Rapps, Sandra and Weyuker, Elaine J. | |
A Data Flow Analysis Approach to Program Testing | Australian Computer Journal | 1976 | Theory | P. M. Herman | |
A Program Data Flow Analysis Procedure | Communications of the ACM | 1976 | Data-flow Analysis | Allen, F. E. and Cocke, J. |
A list of tools related to data flow testing:
Tool Name | Testing Phase | Approach | Comments |
---|---|---|---|
SMV | Test Generation | Model Checking | |
DuaF | Test Generation, Coverage Tracking | Collateral Coverage, Coverage Inference | |
Testful | Test Generation | Genetic Algorithm | |
Evosuite | Test Generation | Genetic Algorithm | |
CAUT | Test Generation | (Dynamic) Symbolic Execution | |
BLAST | Test Generation | Model Checking | The newest version is 2.7.2. An old tool page. |
CPAchecker | Test Generation | Model Checking | |
ATAC | Coverage Tracking | Last Definition | |
Coverlipse | Coverage Tracking | Path Recording | |
JaBUTi | Coverage Tracking | Last Definition | |
JMockit | Coverage Tracking | - | |
BA-DUA | Coverage Tracking | Bitwise Algorithm | |
DFC | Coverage Tracking | - | The tool is available by email request. |
Last modified: 2017.1.