Fleck, P. (2022). Utilizing code coverage density to enhance software quality management decisions [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2022.102021
Aus heutiger Sicht sind Tätigkeiten und Entscheidungsprozesse in den Bereichen Software-Qualitätsmanagement und -Qualitätssicherung zu essenziellen Bestandteilen gängiger Software-Entwicklungsprozesse avanciert. Es existieren vielfältige Software-Metriken, welche im Bereich der Software-Entwicklung tätigen Personen als Grundlage für Entscheidungenim Rahmen von Maßnahmen zur Verbesserung und Aufrechterhaltung der Qualität eines Software-Produkts dienen. Obwohl erwähnte Metriken bereits sehr gut in bestehende praxisorientierte Werkzeuge (z.B.: Code Coverage Tools) integriert wurden, zeigt diese Diplomarbeit, dass dennoch zahlreicheschwer erfüllbare Informationsbedürfnisse im Bereich Software-Qualitätsmanagement und -Qualitätssicherung existieren. Im Speziellen werden im Zuge dieser Arbeit prominente Informationsbedürfnisse in diesem Kontext gesammelt, diskutiert und aktuell verfügbaren Code Coverage Tools gegenübergestellt, welche auf deren Erfüllung abzielen. Diese Recherche in Bezug auf den aktuellen Stand der Technik zeigt, dass derzeit eklatante Informationslücken in den Bereichen Risikoanalyse von Codeänderungen und Refactorings, Wartung von Test Suites und der Analyse von Testredundanzen bestehen. Auf dieser Basis wird in dieser Diplomarbeit die Metrik Code Coverage Density eingeführt, welche klassische Code Coverage um die Beschreibung der Verteilung der Testfälle über ein bestimmtes Software-Artefakt erweitert. Des Weiteren umfasst diese Arbeit die Implementierung eines Prototyps, welcher auf dieser Metrik basierende Features bzw. Visualisierungen zur Verfügung stellt und auf die Erfüllung der identifizierten Informationsbedürfnisse abzielt. Zudem wird eine szenariobasierte Expertenevaluierung unter Zuhilfenahme eines vom Prototyp generierten Coverage Density Reports durchgeführt. Die Ergebnisse dieser Evaluierung zeigen, dass die eingeführte Metrik und die darauf aufbauenden Visualisierungen ein bemerkenswertes Potenzial zur Unterstützung bei Tätigkeiten in den Bereichen Risikoanalyse von Codeänderungen und Refactorings und Wartung von Test Suites mit sich bringen. Es wird außerdem gezeigt, dass das eingeführte Konzept im Rahmen der Analyse von Testredundanzen bei detaillierteren Untersuchungen von vorab als potentielle Redundanzen identifizierten Tests beitragen kann, jedoch nicht zur Auffindung von ebendiesen geeignet ist.
de
From today’s perspective, activities and decision-making processes in software quality management and assurance have become an inevitable element of current software engineering processes. There exists a variety of software metrics that serve software engineers as a decision basis during actions that aim at enhancing and maintaining a software product’s quality. This master’s thesis shows that though such metrics have been gracefully transferred into practical tools (i.e., code coverage tools), there are information needs in the context of software quality management and assurance that are still hard to satisfy. In fact, popular unsatisfied information needs are gathered, discussed and reflected concerning scientific approaches and currently available code coverage tools that try to satisfy them. This research on the state of the art shows that there are significant information gaps in the areas of risk assessment concerning code changes and refactorings, test suite maintenance and test redundancy analysis. On this basis, this thesis introduces the novel software metric code coverage density, which enhances classical code coverage by the notion of describing how test cases distribute over a software product’s artifacts. Furthermore, the thesis includes the implementation of a prototype that utilizes the latter and provides features and visualizations that are concentrated on fulfilling the found unsatisfied information needs. Moreover, a scenario-based expert evaluation is conducted with the aid of a coverage density report generated by the implemented prototype. The results of the latter show that the introduced metric along with the proposed visualizations has a significant potential for filling the identified information gaps in the areas of risk assessment concerning code changes and refactorings and test suite maintenance. Concerning the field of test redundancy analysis, it is shown that the presented concept rather establishes assistance for further analysis of potential test redundancy suspects than providing support for discovering those.