To content
Fakultät für Informatik
Master-Thesis

Test Harness for C/C++-based Static Program Analysis

Context

Our group is involved in the development of PhASAR - a static program analysis framework based on LLVM. Its main goal is the precise interprocedural data flow analysis of programs written in C/C++. Besides the theoretical unsoundness and imprecision of such static program analysis, implementations are always prone to issues resulting from mistakes in their coding.

Goal

The goal of this thesis project is to implement and evaluate a test harness for static program analysis.
The test harness needs to be systematically developed based on language specifications. To be helpful in the future this harness needs to be documented meticulously. This is also is crucial in the assessment of the completeness of the harness.

The test subject of the test harness may vary. Various analyses could be considered here. Thus, the adaptation mechanisms and the expression of expected values have to be flexible enough to accompany simple analyses (e.g. call graphs) as well as more complex data flow analyses (e.g. IDE, WPDS).

As an evaluation for the work at least one analysis type (e.g. call graph algorithms) should be checked with the test harness to see where PhASAR has (un)known unsoundness or implementation issue. An optional task would be to evaluate the usability of the expression of expected values.

Research Question

  1. Does PhASAR contains unknown unsoundness?
  2. How well do experienced developers of the framework use the test harnesses facilities to express expected values?

Related Work

  • 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)