An Efficient Specification-Based Regression Test Selection Technique for EE-Systems
Ralf Nörenberg, Anastacia Cmyrev, Klaus D. Müller-Glaser, Ralf Reißing
Abstract: Regression testing, a methodology originally developed in software engineering, is used to revalidate a (software) system in-between release cycles after having implemented changes. In practice there is always limited time to perform a full retest of a system; therefore a random/prioritizing-testing approach is often chosen to perform at least some regression testing. However, the lack of adequate regression testing can cause errors in untested parts of the system to be exposed only during production or field usage, which may have severe consequences. In order to improve the efficiency of regression testing many approaches were proposed. They intend to select only test cases which cover those parts of the system that contain the implemented changes as well as those parts that are possibly affected by the change. Unfortunately, most techniques are only available on software level requiring extensive knowledge of the source code and typically use some representation of the software such as a system model. However, in practice, especially within automotive embedded system development, available system models or source code strongly vary in type or design or may even be inaccessible. In order to provide an efficient regression test selection methodology, we propose a novel and light-weight approach primarily based on system requirements and their association with test cases. In addition, substantial similarities between challenges and objectives of regression test selection and product lines testing techniques are determined. Conclusions outline how a potential benefit in reducing overall testing efforts in product lines testing can simply be achieved by applying regression test selection techniques.