Zum Inhalt
Fakultät für Informatik
Masterarbeit

Testumgebung für C/C++-basierte statische Programmanalyse

Kontext

Unsere Gruppe ist an der Entwicklung von PhASAR beteiligt - einem statischen Programmanalyse-Framework, das auf LLVM basiert. Sein Hauptziel ist die präzise interprozedurale Datenflussanalyse von in C/C++ geschriebenen Programmen. Abgesehen von der theoretischen Unhaltbarkeit und Ungenauigkeit einer solchen statischen Programmanalyse sind Implementierungen immer anfällig für Probleme, die aus Fehlern in ihrer Kodierung resultieren.

Zielsetzung

Das Ziel dieser Diplomarbeit ist die Implementierung und Evaluierung eines Test-Kabelbaums für die statische Programmanalyse. Der Test-Harness soll systematisch auf Basis von Sprachspezifikationen entwickelt werden. Um in der Zukunft hilfreich zu sein, muss dieses Kabelbaum sorgfältig dokumentiert werden. Dies ist auch entscheidend für die Beurteilung der Vollständigkeit des Kabelbaums.

Der Testgegenstand des Test Harness kann variieren. Hier könnten verschiedene Analysen in Betracht gezogen werden. So müssen die Anpassungsmechanismen und die Formulierung der Erwartungswerte flexibel genug sein, um sowohl einfache Analysen (z.B. Call-Graphen) als auch komplexere Datenflussanalysen (z.B. IDE, WPDS) zu begleiten.

Als Evaluation für die Arbeit sollte mindestens ein Analysetyp (z.B. Call-Graph-Algorithmen) mit dem Test-Harness überprüft werden, um zu sehen, wo PhASAR (un)bekannte Unzulänglichkeiten oder Implementierungsprobleme hat. Eine optionale Aufgabe wäre es, die Brauchbarkeit des Ausdrucks von Erwartungswerten zu evaluieren.

Forschungsfragen

  1. Enthält PhASAR unbekannte Unzulänglichkeiten?
  2. Wie gut nutzen erfahrene Entwickler:innen des Frameworks die Möglichkeiten des Test-Harnesses, um erwartete Werte auszudrücken?

Verwandte Arbeiten

  • Schubert P.D., Hermann B., Bodden E. (2019) PhASAR: An Inter-procedural Static Analysis Framework for C/C++. In: Vojnar T., Zhang L. (eds) Tools and Algorithms for the Construction and Analysis of Systems. TACAS 2019. Lecture Notes in Computer Science, vol 11428. Springer, Cham. https://doi.org/10.1007/978-3-030-17465-1_22
  • Into the Woods: Experiences from Building a Dataflow Analysis Framework for C/C++
    Philipp Dominik Schubert, Ben Hermann, Eric Bodden, Richard Leer
    In 21st IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM) - Engineering Track (Preprint on the group's website)