UML-basierte Beschre... Theses on offer Development of a Met...

Student thesis

Regression testing for Java-Software

(Original Title:Regressionstest für Java-Software)



Software is being modified during maintenance, e.g. to correct errors or to add new functionality. After the software has been modified regression testing is performed in order to provide confidence that the software is correct. For regression testing the test cases that have been created in the implementation and integration phases are reused and new test cases for specifically testing the modifications are added. It is of interest to know which of the reused test cases are affected by the modifications and thus possibly have to be updated. To identify those test cases a number of regression test selection techniques have been developed. In this work different techniques that are suited for Java software have been compared and the best one has been implemented.
The implemented technique relies on a static and a dynamic analysis. The static analysis creates extended control flow graphs from the Java bytecode of the original and the modified version of the software and compares the graphs, in order to precisely locate the parts of the original software that have been modified. The dynamic analysis obtains coverage information for each test case by instrumenting the Java bytecode of the original version of the software to record for each test case which parts of the original software are executed. The technique finally selects all test cases for which coverage information indicates, that they would execute a modification that was identified in the control flow graphs.

Author: Benjamin Polak

Tutor: Dr.-Ing. Norbert Oster