Implementing Content-Based Regression Test Selection Using the LLVM Intermediate Representation
- Typ der Arbeit: Masterarbeit
- Status der Arbeit: abgeschlossen
- Projekte: CADOS
- Betreuer: Tobias Landsberg, Daniel Lohmann
- Bearbeiter: Tino Lorenz
Unit testing is a commonly used technique to automatically test specific parts of a software (unit) in order to ensure correctness. However, running all tests after every change can take a significant amount of time and energy.
Therefore, we describe TASTING, an approach for efficiently selecting and reusing regression-test executions across program changes, branches, and variants in continuous integration settings. Instead of detecting changes between two variants of the software-under-test, TASTING recursively composes hashes of the defining elements with all their dependencies on AST-level at compile time into a semantic fingerprint of the test and its execution environment. This fingerprint is easy to store and remains stable across changes if the test’s run-time behavior is not affected.
The goal of this thesis is to replace the AST-level hashing procedure with an LLVM intermediate representation-based approach. For the evaluation, the new implementation than should be applied to various C/C++ open-source software projects.
Related Publications
-
USENIX
Conference
A
Best Paper Award
cHash: Detection of Redundant Compilations via AST Hashing -
Proceedings of the 2017 USENIX Annual Technical Conference (USENIX '17)USENIX Association2017Best Paper Award.
PDF Details Slides Raw Data [BibTex]
-
ICSOFT
Conference
B
Best Student Paper
TASTING: Reuse Test-case Execution by Global AST Hashing -
Proceedings of the 17th International Conference on Software Technologies - ICSOFTSciTePress2022Best Student Paper.
PDF 10.5220/0011139200003266 [BibTex]