Software Developer | Data Engineer | Machine Learning Enthusiast
My final year project focused on developing an optimization tool for Sikraken, a C code test case generator, originally developed by Dr Chris Meudec (see Original Sikraken GitHub: SikrakenMainRepository). I implemented a genetic algorithm to find the optimal parameter values for test case generation, significantly improving code coverage and reducing execution time.
Sikraken is a powerful tool for generating test cases for C programs, but it requires careful parameter tuning.
Two critical parameters, $restarts and $tries, control how the generator escapes loops and
how many attempts it makes. Finding optimal values for these parameters was previously a manual process.
I designed a genetic algorithm that:
The algorithm automatically identifies optimal parameter values that maximize code coverage while minimizing execution time.
The genetic algorithm successfully identified optimal parameter combinations that:
The genetic algorithm convergence for Problem03, showing coverage improvement over generations.
Random search results for the same problem, showing less consistent coverage.
The genetic algorithm convergence for Problem16, demonstrating fast optimization.
Random search results for Problem16, showing inferior performance compared to GA.
Below you can find detailed documentations for this project. Click on any document to view it in your browser.
Detailed description of project requirements, features, and success metrics.
View DocumentThis project could be extended by:
The source code for this project is available on GitHub.