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

EMPRESS

Extracting and Mining of Probabilistic Event Structures from Software Systems (2016-2020)

 

Das Forschungsfeld "specification mining" zielt darauf ab, Modelle aus exitierender Software zu extrahieren, bzw. zu rekonstruieren—Modelle, die genau genug sind, um als formale Spezifikation dienen zu können. Die meisten aktuellen Ansätze abstrahieren Software-Verhalten durch Modelle, die knapp alle zulässigen Ereignissequenzen, die während der Programmausführung auftreten könnten, repräsentieren. Was wir allerdings nicht wissen, ist wie wahrscheinlich solche Sequenzen sind. In EMPRESS versuchen wir probabilistische Modelle zu extrahieren, in welchen die Übergänge zwischen den einzelnen Ereignissen mit Wahrscheinlichkeiten charakterisiert werden (siehe z.B. Abbildung 1).

Abbildung1.png
Abbildung 1: Probabilistisches Modell von Java-Methoden Aufrufe bei der Ausführung einer SQL Datenbankabfrage

Solche probabilistischen Modelle werden die Genauigkeit und Effektivität in mehreren Bereichen des Software Engineering verbessern: In der Laufzeitüberwachung und dem Debugging werden solche Modelle Anomalien während der Ausführung entdecken können, die fehlerhaftes Verhalten prognostizieren und diagnostizieren. Im Softwaretest erlauben es probabilistische Modelle sich auf Verhalten zu konzentrieren, in dem Fehler den größten Einfluss hätten, als auch auf unwahrscheinliches Verhalten, in dem bisher noch unentdeckte Fehler liegen können. Letztlich können probabilistische Modelle im Bereich Sicherheit und Zuverlässigkeit Abweichungen vom Normalverhalten erkennen und so fehlerhaftes oder gar bösartiges Verhalten aufdecken. Die Hauptprobleme dieses Forschungsgebietes werden (1) das effiziente Extrahieren akurater probabilistischer Modelle aus Software Systemen und (2) das Finden geeigneter Abstraktionsniveaus für die ausgewählten Aktivitäten im Software Engineering sein.

 

EMPRESS zielt darauf ab, die Genauigkeit und Effektivität verschiedener Software-Engineering Aktivitäten zu erhöhen:

  • In der Laufzeitüberwachung und im Debugging wollen wir Anomalien während der Ausführung aufdecken, die fehlerhaftes Verhalten vorhersagen und diagnostizieren.
  • Im Softwaretest betrachten wir Verhalten, das wahrscheinlich von Defekten am stärksten beeinflusst werden wird. Aber wir betrachten auch unwahrscheinliches Verhalten, um bisher unerkannte Fehler aufzudecken.
  • Im Bereich Sicherheit und Zuverlässigkeit von Software wollen wir Abweichungen vom Normalverhalten aufdecken und so fehlerhaftes oder gar bösartiges Verhalten erkennen.

 

Das Projekt ist in vier Arbeitspakete gegliedert, deren Abhängigkeiten in Abbildung 2 zusammengefasst sind.

Abbildung2.png
Abbildung 2: Übersicht über das Projekt EMPRESS

 

Publikationen:

  • A Kampmann, N Havrikov, E Soremekun, A Zeller: When does my Program do this? Learning Circumstances of Software Behavior. ESEC/FSE European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE), 1228–1239, 2020.
  • E Soremekun, E Pavese, N Havrikov, L Grunske, A Zeller: Inputs from Hell: Learning Input Distributions for Grammar-Based Test Generation. IEEE Transactions on Software Engineering , early access, DOI: 10.1109/TSE.2020.3013716, 2020.
  • Y Noller, CS Pasareanu, M Böhme, Y Sun, HL Nguyen, L Grunske: HyDiff: Hybrid Differential Software Analysis. Proceedings of the International Conference on Software Engineering (ICSE), 1273–1285, 2020.
  • S Nilizadeh, Y Noller, CS Pasareanu: DifFuzz: Differential Fuzzing for Side-Channel Analysis. Proceedings of the International Conference on Software Engineering (ICSE), 176–187, 2019.
  • Y Noller, R Kersten, CS Pasareanu: Badger: Complexity Analysis with Fuzzing and Symbolic Execution. Proceedings of the International Symposium on Software Testing and Analysis, 322-332, 2019.
  • M Eberlein, Y Noller, T Vogel, L Grunske: Evolutionary Grammar-Based Fuzzing. Int. Symposium on Search Based Software Engineering (SSBSE), 105-120, 2020

Beteiligte Personen: