As software evolves, regression testing techniques are typically used to ensure the new changes are not adversely affecting the existing features. Despite recent advances, regression testing for distributed systems remains challenging and extremely costly. Existing techniques often require running a failing system several time before detecting a regression. As a result, conventional approaches that use re-execution without considering the inherent non-determinism of distributed systems, and providing no (or low) control over execution are inadequate in many ways. In this paper, we present MRegTest, a replay-based regression testing framework in the context of model-driven development to facilitate deterministic replay of traces for detecting regressions while offering sufficient control for the purpose of testing over the execution of the changed system. The experimental results show that compared to the traditional approaches that annotate traces with timestamps and variable values MRegTest detects almost all regressions while reducing the size of the trace significantly and incurring similar runtime overhead.
Zhen Tian Beihang University, Yilong Yang Beihang University, Sheng Cheng Software Engineering and Digitalization Center of China Manned Space Engineering
Stefan Höppner Ulm University, Yves Haas Institute of Software Engineering and Programming Languages, Ulm University, Matthias Tichy Ulm University, Germany, Katharina Juhnke Institute of Software Engineering and Programming Languages, Ulm University
Kristóf Marussy Budapest University of Technology and Economics, Oszkár Semeráth Budapest University of Technology and Economics, Daniel Varro Linköping University / McGill University