Erweiterung des coffee4j Testframeworks
Geeignet als Bachelorarbeit oder Masterarbeit.
Combinatorial Testing (CT) ist eine systematische Testtechnik, bei der aus einem Input Parameter Model (IPM) effizient Testfälle generiert werden [Kuhn2010].
coffee4j ist ein Java-basiertes Framework für kombinatorisches Testen, welches verschiedene Algorithmen zur kombinatorischen Testfallgenerierung anbietet und mit einer Erweiterung für JUnit auch die direkte Ausführung der Testfälle ermöglicht [Bonn2019]. Zusätzlich unterstützt das coffee4j Framework mit der Fault Characterization die Fehleranalyse und bietet eine automatische Identifikation der Eingabewerte oder Eingabewertekombinationen, die für fehlgeschlagene Testfälle verantwortlich sind.
Ziel dieser Abschlussarbeit ist es, das coffee4j Framework weiter zu entwickeln und anzuwenden. Je nach Interessensschwerpunkt kann die Arbeit stärker architekturell, werkzeugtechnisch oder forschungsorientiert ausgerichtet werden. Dabei sind verschiedene Schwerpunkte denkbar, wie z.B.
- Schwerpunkt Modernisierung der Architektur: Analyse und Verbesserung der aktuellen Implementierung, Verbesserung der Modularisierung unter Einsatz neuer Features aus Java 25, Maven 3.9 und JUnit 6.
- Schwerpunkt Erweiterung oder Optimierung der mitgelieferten Algorithmen (Reserviert): Implementierung neuer Algorithmen zur Generierung kombinatorischer Tests [Kleine2018] oder zur Charakterisierung von Fehlern, Verbesserung des Constraint Handlings.
- Schwerpunkt Erweiterung des Frameworks um Fehlerlokalisierung (Reserviert): Unter Zuhilfenahme einer Bibliothek zur Ermittlung der Code Coverage, wie z.B. JaCoCo, soll die Fehlercharakterisierung zu Fehlerlokalisierung ausgeweitet werden, sodass nach der Testausführung klar ist, wo sich Fehler im Quelltext befinden [Ghandehari2020].
- Schwerpunkt DevOps (Reserviert): Für die Weiterentwicklung des coffee4j Frameworks soll ein Konzept für das Konfigurationsmanagement erarbeitet werden, welches z.B. Branching Strategie wie Github Flow, Continuous Integration mittels Gitlab CI/CD und eine Release Strategie für das Maven Central Repository etc. umfasst.
Weitere Informationen
- [Kuhn2010]: Kuhn, D. , Kacker, R. and Lei, Y. (2010), Practical Combinatorial Testing, Special Publication (NIST SP), National Institute of Standards and Technology, Gaithersburg, MD, NIST
- [Bonn2019]: J. Bonn, K. Foegen and H. Lichter, "A Framework for Automated Combinatorial Test Generation, Execution, and Fault Characterization," 2019 IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW), Xi'an, China, 2019, pp. 224-233. IEEE
- [Kleine2018]: Kleine, K., Simos, D.E. An Efficient Design and Implementation of the In-Parameter-Order Algorithm. Math.Comput.Sci. 12, 51–67 (2018). Springer Nature
- [Ghandehari2020]: L. Sh. Ghandehari, Y. Lei, R. Kacker, R. Kuhn, T. Xie and D. Kung, "A Combinatorial Testing-Based Approach to Fault Localization," in IEEE Transactions on Software Engineering, vol. 46, no. 6, pp. 616-645, 1 June 2020. IEEE