PIE: A Dynamic Failure-Based Technique
IEEE Transactions on Software Engineering
Korat: automated testing based on Java predicates
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
An Informal Formal Method for Systematic JUnit Test Case Generation
Proceedings of the Second XP Universe and First Agile Universe Conference on Extreme Programming and Agile Methods - XP/Agile Universe 2002
MuJava: an automated class mutation system: Research Articles
Software Testing, Verification & Reliability
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Empirical Software Engineering
From daikon to agitator: lessons and challenges in building a commercial tool for developer testing
Proceedings of the 2006 international symposium on Software testing and analysis
Towards a Framework for Differential Unit Testing of Object-Oriented Programs
AST '07 Proceedings of the Second International Workshop on Automation of Software Test
Differential testing: a new approach to change detection
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Augmenting automatically generated unit-test suites with regression oracle checking
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Mutation-driven generation of unit tests and oracles
Proceedings of the 19th international symposium on Software testing and analysis
MiTV: multiple-implementation testing of user-input validators for web applications
Proceedings of the IEEE/ACM international conference on Automated software engineering
Generating integration test cases automatically
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Generating regression unit tests using a combination of verification and capture & replay
TAP'10 Proceedings of the 4th international conference on Tests and proofs
DyGen: automatic generation of high-coverage tests via mining gigabytes of dynamic traces
TAP'10 Proceedings of the 4th international conference on Tests and proofs
eXpress: guided path exploration for efficient regression test generation
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Generating parameterized unit tests
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Sound empirical evidence in software testing
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the 34th International Conference on Software Engineering
Teaching and learning programming and software engineering via interactive gaming
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.01 |
Software programs continue to evolve throughout their lifetime. Maintenance of such evolving programs, including regression testing, is one of the most expensive activities in software development. We present an approach and its implementation called DiffGen for automated regression unit-test generation and checking for Java programs. Given two versions of a Java class, our approach instruments the code by adding new branches such that if these branches can be covered by a test generation tool, behavioral differences between the two class versions are exposed. DiffGen then uses a coverage-based test generation tool to generate test inputs for covering the added branches to expose behavioral differences. We have evaluated DiffGen on finding behavioral differences between 21 classes and their versions. Experimental results show that our approach can effectively expose many behavioral differences that cannot be exposed by state-of-the-art techniques.