Software and programmed systems are the part of our life nowadays. Hence, to avoid errors, software testing and creating documentation cannot be skipped when developing software. In my thesis, I work with unit testing, which is usually the lowest level of software testing during development. The objective of my work is to extract data from previously manually written unit tests to support the IntelliTest test generation tool which employs dynamic symbolic execution to generate test cases. Using the enhance-ment, IntelliTest may be able to achieve better code coverage and more competent tests for the functional requirements.
In my thesis, I give an overview of software testing and its components. I present the technologies I used, along with the introduction of how they work, what are their capa-bilities and limitations. I present the features of IntelliTest through my own example snippets, and I show how can one make suggestions for the tool. I give an overview about a code analysis tool, named Roslyn, which was developed by Microsoft. In my thesis, I used Roslyn to examine the way of creating syntax tree from the code, it’s properties and elements. I also show how to extract the semantic model if the source code is compilable, and how can we get a concrete value of a variable at the given point in the code. I implement a solution which is capable of extracting test data from already existing, manually written unit tests using the mentioned technologies. I define a struc-ture which can store this set of test data, and I create a process by which I can make actual suggestions for the IntelliTest to enhance and support its test generation process. Furthermore, I design and develop a basic user interface which makes the usage of the tool easier, and I present the use of my tool along with the results it produces through real-world examples.
The product of my work in this thesis is a complete, usable tool which can be installed as an internal Visual Studio tool. During my work, I learned about various testing ap-proaches, and I also became familiar with Roslyn and IntelliTest to fulfill the objectives.