title: Balancing Time and Test Coverage: A Time-Constrained Approach to Software Testing
Creators: name: Zumtobel, René
Publisher: name: TU Wien
Year: 2024
Subjects: subject: Test Auswahl
subject: Continous Integration
subject: Automatisiertes Testing
subject: Test Case Selection
subject: Continuous Integration
subject: Test Execution

description: Automatisierte Tests, welche in einer Continuous Integration (CI) Umgebung ausgeführt werden, sind ein fester Bestandteil moderner Softwareentwicklung. Sie werden sowohl von Open-Source-Projekten als auch von Branchenriesen wie Google, Amazon und Facebook genutzt, um Fehler frühzeitig zu erkennen. Die Herausforderung besteht darin, dass mit zunehmender Größe eines Projekts und mit mehr geschriebenem Code die Laufzeit jeder einzelnen Pipeline steigt. Zentral ist die Frage, wie kann das Problem langer Pipelines gelöst werden? Die wohl einfachste Möglichkeit besteht darin, Ressourcen in horizontale und vertikale Skalierung zu investieren. Doch welche Alternativen gibt es?Forschung, die sich mit diesem Thema befasst, konzentriert sich hauptsächlich auf die Auswahl von Testfällen und die Minimierung von Testsuiten. Eine Frage, die jedoch nur selten Beachtung findet: Kann die Testausführung auf ein bestimmtes Zeitbudget reduziert werden? Wie würde ein solcher zeitlich begrenzter Ansatz für Softwaretests aussehen? Welche Informationen müssen genutzt und welche Metriken optimiert werden? Wie effizient ist ein solcher Ansatz im Vergleich zur Durchführung aller Tests? Wie groß muss ein solches Zeitbudget mindestens sein?Diese Arbeit soll diese Fragen beantworten. Einleitend wird ein Überblick über die Forschung zu diesem Thema gegeben. Anschließend wird eine Methode für einen solchen zeitlich begrenzten Softwaretestansatz unter Verwendung der Design Cycle Methode entwickelt. Ein Fallstudienprojekt aus der Industrie wird verwendet, um die Effizienz des Ansatzes zu evaluieren.In über 40.000 Minuten Testzeit übertraf die entwickelte Methode die Ergebnisse des Kontrollansatzes und zeigte Ergebnisse, die mit denen einer vollständigen Pipeline vergleichbar waren.
description: Automated tests executed within a Continuous Integration (CI) environment are a staple of state-of-the-art software engineering. They are utilized by everyone from open-source projects to industry giants like Google, Amazon, and Facebook. However, one major challenge remains: the bigger a project’s scope gets, the more code is written, and the more tests accumulate, the higher the overall execution time. The issue of execution time can be addressed in numerous ways. An easy one is to allocate ever-increasing resources by scaling horizontally and vertically. What are the alternatives?The research addressing this challenge centers primarily on test case selection and test suite minimization. One idea is rarely covered: Can a test suite be reduced to a strict time budget? What would such a time-constraint approach to software testing look like? What information needs to be utilized? How does such an approach compare to executing all tests? What time budget is sufficient?This thesis aims to address these questions. It will start with an overview of the limited research on the topic. Afterwards, a method for such a time-constraint software testing approach will be developed using the design cycle method. An industry case study project will be utilized to evaluate the approach. In over 40.000 minutes of testing, the developed method outperformed random testing and repeatedly showed results comparable to running a full test pipeline.