A safe, efficient regression test selection technique
ACM Transactions on Software Engineering and Methodology (TOSEM)
Symbolic execution and program testing
Communications of the ACM
ACM Transactions on Computational Logic (TOCL)
Proceedings of the 2002 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Semantic Diff: A Tool for Summarizing the Effects of Modifications
ICSM '94 Proceedings of the International Conference on Software Maintenance
ICSE Workshop on Dynamic Analysis (WODA 2003)
Proceedings of the 25th International Conference on Software Engineering
Test input generation with java PathFinder
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Dex: A Semantic-Graph Differencing Tool for Studying Changes in Large Code Bases
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Chianti: a change impact analysis tool for java programs
Proceedings of the 27th international conference on Software engineering
Test input generation for java containers using state matching
Proceedings of the 2006 international symposium on Software testing and analysis
Using model checking with symbolic execution to verify parallel numerical programs
Proceedings of the 2006 international symposium on Software testing and analysis
MATRIX: Maintenance-Oriented Testing Requirements Identifier and Examiner
TAIC-PART '06 Proceedings of the Testing: Academic & Industrial Conference on Practice And Research Techniques
Embedded software verification using symbolic execution and uninterpreted functions
International Journal of Parallel Programming
Compositional dynamic test generation
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
JDiff: A differencing technique and tool for object-oriented programs
Automated Software Engineering
Automated testing of refactoring engines
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Slicing concurrent Java programs using Indus and Kaveri
International Journal on Software Tools for Technology Transfer (STTT)
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Apache JMeter
Demand-driven compositional symbolic execution
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Efficient mutation testing by checking invariant violations
Proceedings of the eighteenth international symposium on Software testing and analysis
Has the bug really been fixed?
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Factors affecting the use of genetic algorithms in test suite augmentation
Proceedings of the 12th annual conference on Genetic and evolutionary computation
Exploiting program dependencies for scalable multiple-path symbolic execution
Proceedings of the 19th international symposium on Software testing and analysis
Categorizing and modeling variation in families of systems: a position paper
Proceedings of the Fourth European Conference on Software Architecture: Companion Volume
Test generation to expose changes in evolving programs
Proceedings of the IEEE/ACM international conference on Automated software engineering
A program differencing algorithm for verilog HDL
Proceedings of the IEEE/ACM international conference on Automated software engineering
Directed test suite augmentation: techniques and tradeoffs
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Proceedings of the FSE/SDP workshop on Future of software engineering research
Differential static analysis: opportunities, applications, and challenges
Proceedings of the FSE/SDP workshop on Future of software engineering research
Experimental comparison of concolic and random testing for java card applets
SPIN'10 Proceedings of the 17th international SPIN conference on Model checking software
Non-essential changes in version histories
Proceedings of the 33rd International Conference on Software Engineering
Identifying program, test, and environmental changes that affect behaviour
Proceedings of the 33rd International Conference on Software Engineering
Directed test suite augmentation
Proceedings of the 33rd International Conference on Software Engineering
Theoretical aspects of compositional symbolic execution
FASE'11/ETAPS'11 Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software
kb-anonymity: a model for anonymized behaviour-preserving test and debugging data
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Directed incremental symbolic execution
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
eXpress: guided path exploration for efficient regression test generation
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Persuasive prediction of concurrency access anomalies
Proceedings of the 2011 International Symposium on Software Testing and Analysis
ADDiff: semantic differencing for activity diagrams
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Path exploration based on symbolic output
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Practical, low-effort equivalence verification of real code
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
CDDiff: semantic differencing for class diagrams
Proceedings of the 25th European conference on Object-oriented programming
Statically validating must summaries for incremental compositional dynamic test generation
SAS'11 Proceedings of the 18th international conference on Static analysis
Counterfactually reasoning about security
Proceedings of the 4th international conference on Security of information and networks
Differencing labeled transition systems
ICFEM'11 Proceedings of the 13th international conference on Formal methods and software engineering
A symbolic analysis framework for static analysis of imperative programming languages
Journal of Systems and Software
DARWIN: An approach to debugging evolving programs
ACM Transactions on Software Engineering and Methodology (TOSEM)
Integration testing of software product lines using compositional symbolic execution
FASE'12 Proceedings of the 15th international conference on Fundamental Approaches to Software Engineering
Probabilistic symbolic execution
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Build code analysis with symbolic evaluation
Proceedings of the 34th International Conference on Software Engineering
Software regression as change of input partitioning
Proceedings of the 34th International Conference on Software Engineering
SYMDIFF: a language-agnostic semantic diff tool for imperative programs
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
High-coverage symbolic patch testing
SPIN'12 Proceedings of the 19th international conference on Model Checking Software
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Green: reducing, reusing and recycling constraints in program analysis
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Symbolic testing of OpenCL code
HVC'11 Proceedings of the 7th international Haifa Verification conference on Hardware and Software: verification and testing
eVolCheck: incremental upgrade checker for C
TACAS'13 Proceedings of the 19th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Expressing and checking intended changes via software change contracts
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Partition-based regression verification
Proceedings of the 2013 International Conference on Software Engineering
Detecting inconsistencies in wrappers: a case study
Proceedings of the 2013 International Conference on Software Engineering
Regression tests to expose change interaction errors
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
KATCH: high-coverage testing of software patches
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Differential assertion checking
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Making offline analyses continuous
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Continuous test suite augmentation in software product lines
Proceedings of the 17th International Software Product Line Conference
Data-driven equivalence checking
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
A methodology for testing CPU emulators
ACM Transactions on Software Engineering and Methodology (TOSEM) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance
Path exploration based on symbolic output
ACM Transactions on Software Engineering and Methodology (TOSEM) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance
Finding trojan message vulnerabilities in distributed systems
Proceedings of the 19th international conference on Architectural support for programming languages and operating systems
Maintaining the health of software monitors
Innovations in Systems and Software Engineering
Hi-index | 0.00 |
Detecting and characterizing the effects of software changes is a fundamental component of software maintenance. Version differencing information can be used to perform version merging, infer change characteristics, produce program documentation, and guide program re-validation. Existing techniques for characterizing code changes, however, are imprecise leading to unnecessary maintenance efforts. In this paper, we introduce a novel extension and application of symbolic execution techniques that computes a precise behavioral characterization of a program change. This technique, which we call differential symbolic execution (DSE), exploits the fact that program versions are largely similar to reduce cost and improve the quality of analysis results. We define the foundational concepts of DSE, describe cost-effective tool support for DSE, and illustrate its potential benefit through an exploratory study that considers version histories of two Java code bases.