Affiliation:
1. School of Computer Science and Software Engineering, East China Normal University, Shanghai, China
2. Department of Computer Science and Engineering, Shanghai Jiao Tong University, Shanghai, China
3. Department of Computer Science, University of California, CA, USA
Abstract
Data-flow testing (DFT) is a family of testing strategies designed to verify the interactions between each program variable’s definition and its uses. Such a test objective of interest is referred to as a
def-use pair
. DFT selects test data with respect to various test adequacy criteria (i.e.,
data-flow coverage criteria
) to exercise each pair. The original conception of DFT was introduced by Herman in 1976. Since then, a number of studies have been conducted, both theoretically and empirically, to analyze DFT’s complexity and effectiveness. In the past four decades, DFT has been continuously concerned, and various approaches from different aspects are proposed to pursue automatic and efficient data-flow testing. This survey presents a detailed overview of data-flow testing, including challenges and approaches in enforcing and automating it: (1) it introduces the data-flow analysis techniques that are used to identify def-use pairs; (2) it classifies and discusses techniques for data-flow-based test data generation, such as search-based testing, random testing, collateral-coverage-based testing, symbolic-execution-based testing, and model-checking-based testing; (3) it discusses techniques for tracking data-flow coverage; (4) it presents several DFT applications, including software fault localization, web security testing, and specification consistency checking; and (5) it summarizes recent advances and discusses future research directions toward more practical data-flow testing.
Funder
National Nature Science Foundation of China
United States NSF
Shanghai STC Project
Publisher
Association for Computing Machinery (ACM)
Subject
General Computer Science,Theoretical Computer Science
Cited by
59 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. BigDataflow: A Distributed Interprocedural Dataflow Analysis Framework;Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2023-11-30
2. Bit-wise All Edge-pairs Coverage;Proceedings of the XXXVII Brazilian Symposium on Software Engineering;2023-09-25
3. DatAFLow
: Toward a Data-flow-guided Fuzzer;ACM Transactions on Software Engineering and Methodology;2023-07-21
4. DatAFLow
: Toward a Data-Flow-Guided Fuzzer;ACM Transactions on Software Engineering and Methodology;2023-07-21
5. Who Judges the Judge: An Empirical Study on Online Judge Tests;Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis;2023-07-12