Humboldt-Universität zu Berlin - Mathematisch-Naturwissenschaftliche Fakultät - Software Engineering

EMPEROR

Lernen der Ursachen von Programmverhalten (2022-2025)

 

Jegliches Programmverhalten wird durch bestimmte Eingaben ausgelöst. Welche Teile einer Eingabe lösen bestimmtes Verhalten aus, und auf welcher Weise geschieht das? Mit dem EMPEROR Projekt möchten wir auf automatische Weise Erklärungen für Programmverhalten erzeugen, insbesondere für Programmfehler. Zu diesem Zweck verwenden wir (1) Grammatiken, welche Eingaben in einzelne Elemente trennen; (2) das Lernen von statistischen Beziehungen zwischen Eigenschaften von Eingabeelementen und Programmverhalten; und (3) systematische Tests, um abgeleitete Assoziationen unter Einbeziehung interner Eigenschaften der Programmausführung zu festigen oder zu widerlegen. Als Ergebnis erhalten wir einen Ansatz, welcher (1) automatisch die (Eingabe-) Bedingungen ableitet, unter denen ein bestimmtes Verhalten ausgelöst wird: "Das Programm schlägt fehl, wenn die E-Mail-Adresse ein Hochkommata enthält"; (2) das Programmverhalten von Interesse durch automatisch generierte Testfälle (re)produziert: "andr'e@foo.com"; und (3) Ursache-Wirkungs-Beziehungen anhand von Ausführungseigenschaften automatisch generierter Testfälle erzeugt und verfeinert: "Die Eingabe "foo'''''''''@bar.com" verursacht eine Rekursionstiefe von mehr als 128, was zu einem Absturz führt."

 

Beteiligte Personen:

 

EMPEROR wird gefördert durch die Deutsche Forschungsgemeinschaft (DFG).