Selecting Software Test Data Using Data Flow Information
IEEE Transactions on Software Engineering
Incremental data-flow analysis algorithms
ACM Transactions on Programming Languages and Systems (TOPLAS)
An Applicable Family of Data Flow Testing Criteria
IEEE Transactions on Software Engineering
The program summary graph and flow-sensitive interprocedual data flow analysis
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Interprocedual data flow testing
TAV3 Proceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification
An Incremental Version of Iterative Data Flow Analysis
IEEE Transactions on Software Engineering
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Demand-driven computation of interprocedural data flow
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Demand interprocedural dataflow analysis
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
Analyzing aliases of reference formal parameters
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A Framework for Partial Data Flow Analysis
ICSM '94 Proceedings of the International Conference on Software Maintenance
Incremental Regression Testing
ICSM '93 Proceedings of the Conference on Software Maintenance
Precise Interprocedural Dataflow Analysis with Applications to Constant Propagation
TAPSOFT '95 Proceedings of the 6th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Solving Demand Versions of Interprocedural Analysis Problems
CC '94 Proceedings of the 5th International Conference on Compiler Construction
IEEE Transactions on Software Engineering
Program analysis for software engineering: new applications, new requirements, new tools
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Refining data flow information using infeasible paths
ESEC '97/FSE-5 Proceedings of the 6th European SOFTWARE ENGINEERING conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering
A schema for interprocedural modification side-effect analysis with pointer aliasing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Parallel Data-Flow Analysis of Explicitly Parallel Programs
Euro-Par '99 Proceedings of the 5th International Euro-Par Conference on Parallel Processing
A family of test adequacy criteria for database-driven applications
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Towards the prioritization of regression test suites with data flow information
Proceedings of the 2005 ACM symposium on Applied computing
Incremental and demand-driven points-to analysis using logic programming
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
Interprocedural definition-use chains of dynamic pointer-linked data structures
Scientific Programming
Refining buffer overflow detection via demand-driven path-sensitive analysis
PASTE '07 Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Marple: a demand-driven path-sensitive buffer overflow detector
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
The dependence condition graph: Precise conditions for dependence between program points
Computer Languages, Systems and Structures
Hi-index | 0.00 |
Data-flow testing relies on static analysis for computing the definition-use pairs that serve as the test case requirements for a program. When testing large programs, the individual procedures are first tested in isolation during unit testing. Integration testing is performed to specifically test the procedure interfaces. The procedures in a program are integrated and tested in several steps. Since each integration step requires data-flow analysis to determine the new test requirements, the accumulated cost of repeatedly analyzing a program can contribute considerably to the overhead of testing. Data-flow analysis is typically computed using an exhaustive approach or by using incremental data-flow updates. This paper presents a new and more efficient approach to data-flow integration testing that is based on demand-driven analysis. We developed and implemented a demand-driven analyzer and experimentally compared its performance during integration testing with the performance of (i) a traditional exhaustive analyzer, and (ii) an incremental analyzer. Our experiments show that demand-driven analysis is faster than exhaustive analysis by up to a factor of 25. The demand-driven analyzer also outperforms the incremental analyzer in 80% of the test programs by up to a factor of 5.