People interact with software in nearly every point of their lives. Just think about smartphones, recent washing machines in households, but business applications (e.g. banking) and even cars today fall under a heavily software-based category too.
Today, fortunately a lot of people realise how important it is to test, validate and verify the written code, especially in case of safety critical systems. An opportunity to check code is to test it, namely to check it while it's running. These kind of tests can be executed in a plethora of different ways, but one of these techniques are the ones that are based on specification. One of them is when we try to separate the written program into execution ways that are similar to each other. One codomain, from which the input parameters get their values from, and the written program behaves the same way, is called an equivalence partition. It can be really complex to determine these partitions. Eventually it might happen that the test design isn't sufficient enough, and the program won't be tested thoroughly.
In my thesis, I present you some of the techniques that can be used to test, validate and verify the software, in particular the technique based on determining the equivalence partitions. I examine multiple opportunities how determining the equivalence partitions can be determined based on the source code. I design and implement a prototype that allows determining these equivalence partitions based only on the source code.
I also made a few artificial tests to try out my application, I write about these results at the end of the document. Based on these tests, the application handles properly source codes with simple C types and control structures. In addition I summarize the completed task, and I give some opportunities for future work.