Software systems evolve during development and maintenance, and many test cases designed for the early versions of the system become obsolete during the software lifecycle. Repairing test cases that do not compile due to changes in the code under test and generating new test cases to test the changed code is an expensive and time consuming activity that could benefit from automated approaches. In this paper we propose an approach for automatically repairing and generating test cases during software evolution. Differently from existing approaches to test case generation, our approach uses information available in existing test cases, defines a set of heuristics to repair test cases invalidated by changes in the software, and generate new test cases for evolved software. The results obtained with a prototype implementation of the technique show that the approach can effectively maintain evolving test suites, and perform well compared to competing approaches.
Software Testing, Verification and Validation (ICST), 2012 IEEE Fifth International Conference on
automatic test pattern generation, automatic test software, Context, Instruments, Maintenance engineering, program testing, prototype implementation, Software algorithms, software development, software evolution, software lifecycle, software maintenance, Software prototyping, software systems, Software testing, test case design, Test case evolution, test case generation, Test case maintenance, test case repairing, Testing