Forschungsschwerpunkt Softwaretest: Constraint-basierte Testfallerzeugung

  • The Muenster Generator of Glass-box Test Cases

    Das Testen von Software-Komponenten ist ein aufwändiger Prozess, der durch den Einsatz geeigneter Werkzeuge unterstützt werden kann. Mit Muggl arbeiten wir an einem solchen Werkzeug. Der Muenster generator of glass-box test cases dient der automatischen Erzeugung von Testfällen. Dazu führt Muggl Java Bytecode symbolisch aus und sucht dabei nach Ausführungspfaden durch ein Programm. Um diese Aufgabe effizient bearbeiten zu können, kommen Techniken wie Constraint Solving, die Erzeugung von Entscheidungspunkten sowie Backtracking zum Einsatz. Als Ergebnis wird ein Satz von Testfällen in Form von JUnit-Tests erstellt, die direkt genutzt werden können.

    Ziel der Forschung ist, ein universelles Testwerkzeug zu schaffen. Auch wenn derzeit für viele Algorithmen bereits Testfälle erzeugt werden können, gibt es einige offene Fragen:

    • Wie lässt sich die Effizienz erhöhen? Laufzeiten sollten in jedem Fall maximal einige Minuten betragen. Dies erfodert aufgrund der Explosion des Suchraums besondere Techniken.
    • Wie kann das Tool möglichst autonom arbeiten? Welche Konfigurierungsarbeit kann Entwicklern und Testern abgenommen werden?
    • Warum bereiten einige Algorithmen derzeit noch Schwierigkeiten?
    • Wie lassen sich auch umfangreiche Softwaresysteme überprüfen?

    Trotz jahrzehnterlanger Forschung sind die Erfolge in der automatischen Testfallerzeugung bisher bescheiden. Wir wollen daher dazu beitragen, durch neue Ansätze die Forschung auf diesem Gebiet voranzutreiben und dabei auch Denkanstöße für verwandte Gebiete zu geben.

  • Funktionalität

    Muggl bietet eine Reihe besonderer Funktionen und Techniken:

    • Eigene Java Virtual Maschine mit Zusatzfunktionen, etwa zum Zugriff auf native Methoden
    • Iterative Tiefensuche durch die möglichen Pfade eines Programms
    • Überwachung der Überdeckung von Kontroll- und Datenfluss
    • Elimination redundanter Testfälle anhand der Überdeckung
    • Generatoren, die das Testen mit Datenstrukturen ermöglichen und somit zu gezielten Testfällen führen.
    • Validatoren, die die Ergebnisse von Testläufen prüfen können
    • Automatische Erzeugung der Testfälle inklusive der Initialisierung von Objekten.
    • Umfangreiche Visualisierungen (natürlich auch abschaltbar).
    • Schritt-für-Schritt Ausführung.
    • Klassenbrowser.
    • Sehr weitgehende Konfigurationsmöglichkeiten.
  • Ausgewählte Veröffentlichungen

    1. Majchrzak, T. A. and Kuchen, H.: Automated test case generation based on coverage analysis. In: TASE ’09: Proc. of the 2009 3nd IEEE Int. Symp. on Theoretical Aspects of Software Engineering, IEEE Computer Society (2009)
    2. Majchrzak, T. A. and Kuchen, H.: Automatische Testfallerzeugung auf Basis der Überdeckungsanalyse. In: M. Hanus and B. Brassel (Hrgs.): Technischer Bericht des Instituts für Informatik Nr. 0915: 26. Workshop der GI-Fachgruppe "Programmiersprachen und Rechenkonzepte", 14-25, Bad Honnef, Germany, May 2009. Christian-Albrechts-Universität Kiel
    3. C. Lembeck, R.A. Müller, Herbert Kuchen: Testfallerzeugung mit einer symbolischen virtuellen Maschine und Constraint Solvern. In: INFORMATIK 2004 - Informatik verbindet, Band 2, Beiträge der 34. Jahrestagung der Gesellschaft für Informatik e.V. (GI), Ulm, 20.-24. September 2004. LNI Vol. 51. Springer 2004.
    4. C. Lembeck, R. Caballero, R. Müller, H.Kuchen: Constraint Solving for Generating Glass-Box Test Cases. Proceedings of International Workshop on Functional and (Constraint) Logic Programming (WFLP). Aachen, Juni 2004.
    5. R.A. Müller: Glass-Box Testing Using a Symbolic Virtual Machine. Electronic Proceedings des 12. Kolloquium Programmiersprachen und Grundlagen der Programmierung. Universität Freiburg, April 2004.
    6. R.A. Müller, C. Lembeck, H. Kuchen: Generating Glass-Box Test cases using a symbolic virtual machine. Proceedings of the IASTED International Conference on Software Engineering (IASTED SE 2004). Innsbruck, 17.-19. Februar 2004.
    7. R. Müller, C. Lembeck, H. Kuchen: GlassTT - a Symbolic Java Virtual Machine Using Constraint Solving Techniques for Glass-Box Test Case Generation. Arbeitsbericht Nummer 102. Universität Münster, Department of Information Systems, November 2003.
  • Ansprechpartner