Selecting Software Test Data Using Data Flow Information
IEEE Transactions on Software Engineering
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
IEEE Transactions on Software Engineering
Detecting conflicts between structure accesses
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
The synthesizer generator: a system for constructing language-based editors
The synthesizer generator: a system for constructing language-based editors
Integrating noninterfering versions of programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the adequacy of program dependence graphs for representing programs
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dependence analysis for pointer variables
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automated Software Test Data Generation
IEEE Transactions on Software Engineering
Identifying syntactic differences between two programs
Software—Practice & Experience
Efficient comparison of program slices
Acta Informatica
Constraint-Based Automatic Test Data Generation
IEEE Transactions on Software Engineering
An Approach to Program Testing
ACM Computing Surveys (CSUR)
The Semantics of Program Slicing and Program Integration
TAPSOFT '89 Proceedings of the International Joint Conference on Theory and Practice of Software Development, Volume 2: Advanced Seminar on Foundations of Innovative Software Development II and Colloquium on Current Issues in Programming Languages
The program dependence graph in a software development environment
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Efficient construction of program dependence graphs
ISSTA '93 Proceedings of the 1993 ACM SIGSOFT international symposium on Software testing and analysis
Selecting tests and identifying test coverage requirements for modified software
ISSTA '94 Proceedings of the 1994 ACM SIGSOFT international symposium on Software testing and analysis
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Precise interprocedural chopping
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
Slicing object-oriented software
Proceedings of the 18th international conference on Software engineering
Analyzing Regression Test Selection Techniques
IEEE Transactions on Software Engineering
A safe, efficient regression test selection technique
ACM Transactions on Software Engineering and Methodology (TOSEM)
A framework for evaluating regression test selection techniques
ICSE '94 Proceedings of the 16th international conference on Software engineering
Semantics Guided Regression Test Cost Reduction
IEEE Transactions on Software Engineering
Task dependence nets for concurrent systems with Ada 95 and its applications
Proceedings of the conference on TRI-Ada '97
On the limit of control flow analysis for regression test selection
Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis
Empirical Studies of a Safe Regression Test Selection Technique
IEEE Transactions on Software Engineering
Reuse-driven interprocedural slicing
Proceedings of the 20th international conference on Software engineering
Semantics-preserving procedure extraction
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Empirical Studies of a Prediction Model for Regression Test Selection
IEEE Transactions on Software Engineering
Slicing Software for Model Construction
Higher-Order and Symbolic Computation
Complexity of Points-To Analysis of Java in the Presence of Exceptions
IEEE Transactions on Software Engineering
A schema for interprocedural modification side-effect analysis with pointer aliasing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Static and Dynamic Slicing of Constraint Logic Programs
Automated Software Engineering
Experience With Regression Test Selection
Empirical Software Engineering
Lessons Learned from a Regression Testing Case Study
Empirical Software Engineering
Empirical Studies of Control Dependence Graph Size forC Programs
Empirical Software Engineering
An overview of methods for dependence analysis of concurrent programs
ACM SIGPLAN Notices
Computational Divided Differencing and Divided-Difference Arithmetics
Higher-Order and Symbolic Computation
Tool Support for Improving Test Coverage
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
Dependence Analysis of Java Bytecode
COMPSAC '00 24th International Computer Software and Applications Conference
Program Slicing of Hardware Description Languages
CHARME '99 Proceedings of the 10th IFIP WG 10.5 Advanced Research Working Conference on Correct Hardware Design and Verification Methods
Slicing Methods Using Static and Dynamic Analysis Information
APSEC '99 Proceedings of the Sixth Asia Pacific Software Engineering Conference
An Implementation of and Experiment with Semantic Differencing
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Regression Testing on Object-Oriented Programs
ISSRE '99 Proceedings of the 10th International Symposium on Software Reliability Engineering
Static Slicing of Concurrent Object-Oriented Programs
COMPSAC '96 Proceedings of the 20th Conference on Computer Software and Applications
Design and Implementation of a Fine-Grained Software Inspection Tool
IEEE Transactions on Software Engineering
Slicing, Chopping, and Path Conditions with Barriers
Software Quality Control
Chianti: a tool for change impact analysis of java programs
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A brief survey of program slicing
ACM SIGSOFT Software Engineering Notes
Proceedings of the 27th international conference on Software engineering
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
Reducing verification overhead with RTL slicing
Proceedings of the 17th ACM Great Lakes symposium on VLSI
An Empirical Study of Test Case Filtering Techniques Based on Exercising Information Flows
IEEE Transactions on Software Engineering
Pareto efficient multi-objective test case selection
Proceedings of the 2007 international symposium on Software testing and analysis
Customization change impact analysis for erp professionals via program slicing
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Profile-guided program simplification for effective testing and analysis
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
An optimized change-driven regression testing selection strategy for binary Java applications
Proceedings of the 2009 ACM symposium on Applied Computing
Precise slicing of concurrent programs
Automated Software Engineering
Proceedings of the 7th annual IEEE/ACM International Symposium on Code Generation and Optimization
On PDG-based noninterference and its modular proof
Proceedings of the ACM SIGPLAN Fourth Workshop on Programming Languages and Analysis for Security
Automatic mining of functionally equivalent code fragments via random testing
Proceedings of the eighteenth international symposium on Software testing and analysis
Regression testing with UML software designs: A survey
Journal of Software Maintenance and Evolution: Research and Practice
Dependence clusters in source code
ACM Transactions on Programming Languages and Systems (TOPLAS)
Test-Suite Augmentation for Evolving Software
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Using hybrid algorithm for Pareto efficient multi-objective test suite minimisation
Journal of Systems and Software
Actively comparing clones inside the code editor
Proceedings of the 4th International Workshop on Software Clones
Field-sensitive program dependence analysis
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
An evaluation of change-based coverage criteria
Proceedings of the 10th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools
Regression testing minimization, selection and prioritization: a survey
Software Testing, Verification & Reliability
make test-zesti: a symbolic execution solution for improving regression testing
Proceedings of the 34th International Conference on Software Engineering
Intermediate representations in imperative compilers: A survey
ACM Computing Surveys (CSUR)
A regression test selection technique for embedded software
ACM Transactions on Embedded Computing Systems (TECS)
Hi-index | 0.00 |
Program dependence graphs have been proposed for use in optimizing, vectorizing, and parallelizing compilers, and for program integration. This paper proposes their use as the basis for incremental program testing when using test data adequacy criteria. Test data adequacy is commonly used to provide some confidence that a particular test suite does a reasonable job of testing a program. Incremental program testing using test data adequacy criteria addresses the problem of testing a modified program given an adequate test suite for the original program. Ideally, one would like to create an adequate test suite for the modified program that reuses as many files from the old test suite as possible. Furthermore, one would like to know, for every file that is in both the old and the new test suites, whether the program components exercised by that file have been affected by the program modification; if no components have been affected, then it is not necessary to rerun the program using that file.In this paper we define adequacy criteria based on the program dependence graph, and propose techniques based on program slicing to identify components of the modified program that can be tested using files from the old test suite, and components that have been affected by the modification. This information can be used to reduce the time required to create new test files, and to avoid unproductive retesting of unaffected components. Although exact identification of the components listed above is, in general, undecidable, we demonstrate that our techniques provide safe approximations.