Supporting symbolic execution using graph metrics

OData support
Dr. Micskei Zoltán Imre
Department of Measurement and Information Systems

Nowadays, due to the increasing number of automated test generators, generated tests are getting more and more popular besides manually written ordinary unit tests. These tools are able to provide high coverage test suites in a short amount of time. The aim of this thesis is to improve the productivity of one of these tools via a special supporting approach.

Microsoft IntelliTest is one of the most advanced automated test generators. IntelliTest uses dynamic symbolic execution to explore the code and generate test cases. This thesis focuses on one of its extensions called SEViz. This extension is able to represent the test generation process in a graph, commonly called as symbolic execution tree. Although automated test generators are built on very sophisticated algorithms, they may fail in several situatiion, which include object creation issue and complicated constraints in the path condition. The symbolic execution trees can be great tools to identify and overcome these test generation anomalies, which usually cause low coverage of the test cases.

The aforementioned anomalies of the symbolic execution-based test generation processes can be effectively identified with the help of focused metrics. In this thesis, I have chosen 6 generic graph metrics and 1 symbolic execution-related metric. The thesis contains the possible implementation approaches for each of the presented metrics.

In my thesis I describe how I have implemented the 7 metrics in SEViz: how metrics were calculated, what algorithms were used, how the results are stored. In the final part of the thesis I present my implementation on an open-source project from GitHub, and I suggest improvements on the implementation of the metrics.


Please sign in to download the files of this thesis.