Efficient computation of interprocedural definition-use chains
ACM Transactions on Programming Languages and Systems (TOPLAS)
Symbolic execution and program testing
Communications of the ACM
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Randoop: feedback-directed random testing for Java
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Reducing the Costs of Bounded-Exhaustive Testing
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
MSeqGen: object-oriented unit-test generation via mining source code
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Javalanche: efficient mutation testing for Java
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Test-Suite Augmentation for Evolving Software
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
ReAssert: Suggesting Repairs for Broken Unit Tests
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
On test repair using symbolic execution
Proceedings of the 19th international symposium on Software testing and analysis
Directed test suite augmentation: techniques and tradeoffs
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Automatically repairing test cases for evolving method declarations
ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
Software regression as change of input partitioning
Proceedings of the 34th International Conference on Software Engineering
Hi-index | 0.00 |
Software evolves continuously, and developers need to retest it frequently. To save time and effort, developers often reuse existing test cases to verify the functionality of software systems after changes, but they often need to adapt or augment the test cases to match the new characteristics of the software systems. Adapting test cases is tedious and expensive. Current automated techniques often generate invalid and incomplete test cases, and require manual inspection and correction of the generated test cases. My research aims to introduce new automated approaches for evolving and generating test cases, to keep them aligned with the corresponding software evolution. The new approach is based on the observation that software developers follow common patterns to identify changes and adapt test cases. I experimentally identified patterns that developers use in presence of specific changes, and I am working on an automated approach that generalizes these patterns into a set of test adaptation patterns that can automatically evolve existing test cases and generate new ones. My preliminary evaluation shows the applicability and effectiveness of the approach.