Since the increasing quality and robustness requirements of today's software, testing is getting more and more important in common software development processes, which enables to reach these requirements at a specific level. My thesis wraps around a part of this topic with introducing the opportunities and challenges of structure based testing in a complex software system, the PetriDotNet 2.
In my thesis, I introduce the different types of testing at first. This makes it is easier to place unit testing and the whole topic of my work. After this, the importance of Pex as a unit test generation tool could be emphasized, since it enables to generate test cases based only on the software's structure. That is why I highlight the challenges and the reachable results of testing a complex software with Pex. Further significance of this case study is that it could create a test case suite for PetriDotNet 2, which could be a base of this software's exhaustive testing. Furthermore I try to introduce the possible isolation solutions too, which is a significant part of unit testing and meant to be a problem in generating the premised test suite.
The most notable results of my work are the following: detailed comparison of currently avaible isolation frameworks for .NET and the analysis results of their collaboration capabilities with Pex, challenges and their solutions during robustness testing of complex software with Pex, discovering the difficulties of functional testing with Pex, and a basic test suite for PetriDotNet 2, which could be expanded in the future to test the software.