automatic test suite evolution
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.
test case maintenance test case generation software evo- lution automated testing process