Fulltext available Open Access
Title: Reducing Testing Costs by Applying Regression Test Selection
Language: English
Authors: Dang, Phu Binh 
Keywords: Regression Test Selection; Software Testing; Regressionstestselektion; Testen von Software
Issue Date: 10-Jan-2025
Abstract: 
Automated regression testing is an established and well-proven technique to ensure software quality. It consists of a set of tests that are re-run on every code change. With a large test suite, it can be very time and resource consuming. Researchers propose Regression Test Selection (RTS) tools as a solution for tackling this problem. RTS tools aim to select and run only tests that are impacted by code changes. The goal of this work is to evaluate Java-based RTS tools. The RTS tools are evaluated on a real-world Java project containing 14 000 LoC. The evaluation is based on four metrics: end-to-end time reduction, safety and precision violation, and fault detection ability. During implementation of this thesis, three out of five tools turned out to be incompatible with software under test or had technical problems, for instance, due to discontinued maintenance of the tools. Because of these issues, only STARTS and OpenClover are evaluated. The findings show STARTS saves 40.5% of the testing time compared to rerunning all tests on average. This time saving is achieved mainly from the integration tests. Conversely, OpenClover cannot save any time in any revision. It needs even 7% more time than rerunning all tests. The sets of selected tests by OpenClover are always larger than that of STARTS, thus OpenClover rarely misses a test that is selected by STARTS. Both tools are as good as rerunning all tests in detecting faults. Their average mutation coverages are 55%.

Automatisiertes Regressionstesten ist eine etablierte und bewährte Methode zur Sicherung von Softwarequalität. Sie besteht aus einer Reihe von Tests, die bei jeder Codeänderung erneut durchgeführt werden. Bei einer großen Testreihe kann dies sehr zeit- und ressourcenaufwendig sein. Forscher schlagen Regression-Test-Selection-Tools (RTS Tools) als Lösung für dieses Problem vor. RTS-Tools zielen darauf ab, nur Tests auszuwählen und auszuführen, die von Codeänderungen betroffen sind. Das Ziel dieser Arbeit ist es, Java-basierte RTS-Tools zu evaluieren. Die RTS-Tools werden anhand eines realen Java-Projekts mit 14 000 Codezeilen evaluiert. Die Bewertung basiert auf vier Metriken: Zeitreduktion (end-to-end time reduction), Sicherheits- und Präzisionsverletzungen (safety and precision violations) sowie die Fähigkeit zur Fehlererkennung. Während der Durchführung dieser Arbeit stellte sich heraus, dass drei von fünf RTSTools nicht mit der zu testenden Software kompatibel waren oder technische Probleme aufwiesen, z.B. aufgrund eingestellter Wartung der Tools. Aufgrund dieser Probleme wurden nur STARTS und OpenClover evaluiert. Die Ergebnisse zeigen, dass STARTS im Vergleich zur Wiederholung aller Tests im Durchschnitt 40,5% der Testzeit reduziert. Diese Zeitreduktion wird hauptsächlich bei den Integrationstests erzielt. Im Gegensatz dazu kann OpenClover in keiner einzigen Revision Zeit reduzieren. Es benötigt sogar 7% mehr Zeit als die Wiederholung aller Tests. Die Menge der ausgewählten Tests von OpenClover ist immer größer als die von STARTS. Daher lässt OpenClover selten einen Test aus, der von STARTS ausgewählt wurde. Beide Tools sind so gut wie die Wiederholung aller Tests bei der Erkennung von Fehlern. Ihre durchschnittliche Mutationsabdeckung beträgt 55%.
URI: https://hdl.handle.net/20.500.12738/16796
Institute: Fakultät Technik und Informatik 
Department Informatik 
Type: Thesis
Thesis type: Bachelor Thesis
Advisor: Zukunft, Olaf 
Referee: Sarstedt, Stefan 
Appears in Collections:Theses

Files in This Item:
Show full item record

Page view(s)

23
checked on Jan 21, 2025

Download(s)

7
checked on Jan 21, 2025

Google ScholarTM

Check

HAW Katalog

Check

Note about this record


Items in REPOSIT are protected by copyright, with all rights reserved, unless otherwise indicated.