DFG project G:(GEPRIS)261444241

EMPEROR: Lernen der Ursachen von Programmverhalten

CoordinatorProfessor Dr. Lars Grunske ; Professor Andreas Zeller, Ph.D.
Grant period2015 -
Funding bodyDeutsche Forschungsgemeinschaft
 DFG
IdentifierG:(GEPRIS)261444241

Note: 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 automatischer 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."EMPEROR ist der Nachfolger vom EMPRESS-Projekt, in dem wir gezeigt haben, dass statistische Beziehungen zwischen Eingabeelementen und Programmverhalten existieren und wie diese in prototypischen Implementierungen für das Testen und Debugging verwendet werden können. EMPEROR übernimmt die Ansätze von EMPRESS und vereinheitlicht sowie erweitert sie in einem einzelnen modularen Ansatz, der weit über einfache statistische Beziehungen hinausgeht. Durch das Lernen und Verfeinern von prädiktiven und generativen Modellen kann EMPEROR Beziehungen mit beliebigen Eigenschaften der Programmeingabe ableiten und somit unser Verständnis dafür verbessern, wie und warum Software sich so verhält, wie sie sich verhält.
   

Recent Publications

There are no publications


 Record created 2023-01-19, last modified 2025-03-20