In software engineering, a regression test is the repetition of test cases to ensure that modifications in parts of the software that have already been tested do not cause any new errors. Such modifications arise regularly due to the maintenance, modification and correction of software. The regression test is one of the dynamic test techniques.
Due to the repetitive character and the frequency of these repetitions, it makes sense if test automation is used for regression tests.
In practice, the term regression test stands for the pure repetition of test cases. The test cases themselves must be specified and provided with a target result, which is compared with the actual result of a test case. There is no direct reference to the results of a previous test run.
In contrast, some classify the regression test in the group of diversifying tests. In contrast to function-oriented testing techniques, the correctness of the test results is not decided based on the specification, but by comparing the outputs of the current version with the outputs of the predecessor. A test case is considered completed in the regression test if the outputs are identical.
Regression testing in real-time systems
The regression test represents a significant problem, particularly in the case of non-deterministic real-time systems, since, strictly speaking, a repetition of the test is not guaranteed in these systems. On the one hand, even minor changes to the hardware of the system typically lead to a change in behaviour; on the other hand, manual interventions (e.g. in telephone systems or flight control systems) are generally necessary here, which cannot be carried out “in a way that is suitable for regression tests” due to human time behaviour. A solution to this problem lies in the implementation of an automatic test system. However, the effort for this is usually avoided for the following reasons:
- the automatic test system must cover all functions of the DUT
- the automatic test system must be developed in parallel with the test object
- the automatic test system must be adjusted in parallel with the test item
- a hardware change leads to a re-setup of the test results to be compared against