Techniques |
Applicability |
TCS
|
Industry Motivation
|
Experiment subject(s) |
Industrial Partner |
Programming Language |
five Open Source Java projects (from 20-254K lines of code, up to 271 TCs): Apache Commons Lang, Closure
Compiler, Functor, Jaxen, and JUnit.
Open-source, small scale. |
|
Java |
Effectiveness Metrics |
Efficiency Metrics |
Other Metrics |
|
Total/End-to-end time
|
|
Information Approach |
Algorithm Approach |
Open Challenges |
Change-based
|
|
- develop methods for generating program-driven tests from input-
driven tests
- combine the
method with unsafe RTS methods to be able to skip tests
|
Abstract
Frequent regression testing is a core activity in agile software development, but large test suites can lead to long test running times, hampering agility. By safe RTS (Regression Test Selection) techniques, a subset of the tests can be identified that cover all tests that can change result since the last run. To pay off in practice, the RTS overhead must be low. Most existing RTS techniques are based on dynamic coverage analysis, making the overhead related to the tests run. We present Extraction-Based RTS, a new safe RTS technique which uses a fast static analysis with very low overhead, related to the size of the modification rather than to the tests run. The method is suitable for program-driven testing, commonly used in agile development, where each test is a piece of code that uses parts of the system under test. We have implemented the method for Java, and bench-marked it on a number of open source projects, showing that it pays off substantially in practice.