2016-009 – Jan-Hendrik Telke – Bachelor Thesis
Regression testing is common practice to reduce bugs in software projects. Even though test cases are often automated, test execution takes a significant amount of time. Increasingly so on huge software projects or if testing needs to be performed for different configurations with regard to architecture, processor type, or operating system. Long test executions can delay development due to a longer feedback loop for developers. Additionally, if tests are skipped due to time limitations, code faults may propagate and the cost to fix them increases over time.
Regression test optimization aims to optimize test execution. While test selection reduces execution time by finding a subset of change-relevant test cases, test prioritization orders test cases corresponding to a weight function, such that important tests are executed first. Especially test selection there involves risks, because faults may stay undetected and that time, the cost to fix it increases.
In literature, many algorithms have been presented. Recent research yield promising results with multi-objective, search-based, and self-adaptive optimization algorithms. For example, in 2015, researchers at Microsoft presented an approach, named THEO, for test selection using metric measurements. Based on the test history, THEO computes some metrics, e.g., the detection rate , and based on those cost values are derived for each test case.
This thesis presents the requirements to implement a metric based strategy, and proposes how to realize them. Furthermore, metric-based strategies are implemented, one that is very similar to THEO and another one that extends the idea by increased use of parameters. Also a first step toward runtime analysis is made.