Software testing has become a major part of the whole software developing process, especially in case of safety-critical softwares, where the lack of faults is essential. Even today testing is done manually by a lot of companies due to the extra cost and possible complexity of automation, like exploring new technologies, introducing new tools, providing trainings for manual testers, etc. Automation is not an ultimate solution, but in most cases on the long run these investments would pay off and the further developing costs could be decreased significantly.
Automation can be done in several ways, even a test environment which makes possible a simple regression testing of an evolving software would make a significant difference. In this thesis however I consider a more advanced way of automation: when the test data is generated automatically based on source code. At first existing methods and their usability are explored.
Afterwards the thesis offers an implemented solution for generating test data for safety-critical softwares written in Ada95 language. Two methods are considered: random test data generation and symbolic execution. Besides the test data generation the tool presented here features a test environment in order to evaluate the generated test data.
The tool is tested with several test codes, both short code snippets created for testing with only one language feature at a time and also complex codes with real functionality. Results show that both methods have its weaknesses, but symbolic execution in most cases works faster and generates more useful – in terms of reached coverage – inputs. Important to note however that the implementation of symbolic execution is a more complex task.
The tool proposed by this thesis fully satisfies the initial goals and with further improvements it can represent great business value.