AUTOMATED TEST GENERATION TECHNIQUES FOR C++ SOFTWARE
DOI:
https://doi.org/10.26906/SUNZ.2025.2.102Keywords:
test automation, C++, regression testing, artificial bee colony, ant colony optimization, firefly algorithm, cuckoo search, q-learningAbstract
Automation of test script generation is critically important in modern software quality assurance, particularly for complex languages such as C++, where manual testing becomes resource-intensive and error-prone. Automated approaches significantly reduce the testing effort, improve test effectiveness, and enhance overall software reliability. The CIDER tool, introduced by the author, offers a promising automated solution by generating test scenarios based on recorded program executions using harmony search for inputs optimization. Despite its benefits, tool faces next limitations: incomplete coverage of complex branching logic, inefficient exploration of large input spaces, and difficulties in handling semantically rich or contextually complex input data. The overview article aims to systematically explore, compare, and evaluate various automated test generation techniques such as symbolic execution, concolic testing, evolutionary algorithms, reinforcement learning, and model-based testing. The objectives are: to classify these methods based on specified criteria and identify suitable approaches that could enhance the tool's capability for automated test generation in terms of coverage efficiency.Downloads
References
1. Zhang, Y., Lu, Q., Liu, K., Dou, W., Zhu, J., Qian, L., Zhang, C., Lin, Z., & Wei, J. (2025). CITYWALK: Enhancing LLMBased C++ Unit Test Generation via Project-Dependency Awareness and Language-Specific Knowledge. arXiv preprint arXiv:2501.16155. https://doi.org/10.48550/arXiv.2501.16155
2. Rho, S., Martens, P., Shin, S., Kim, Y., Heo, H., & Oh, S. (2023). Coyote C++: An Industrial-Strength Fully Automated Unit Testing Tool. arXiv preprint arXiv:2310.14500. https://doi.org/10.1016/j.jss.2022.111259
3. Wang, Y., Mäntylä, M. V., Liu, Z., & Markkula, J. (2022). Test automation maturity improves product quality - Quantitative study of open source projects using continuous integration. Journal of Systems and Software, 188, 111259. https://doi.org/10.1016/j.jss.2022.111259
4. Feloney, S. (2023). State of Test Automation: Trends and Priorities for 2023. DevOps Digest. https://www.devopsdigest.com/state-of-test-automation-2023
5. Papadakis, M., Kintis, M., Zhang, J., Jia, Y., Le Traon, Y., & Harman, M. (2018). Mutation testing advances: An analysis and survey. Advances in Computers, 112, 275–378. https://doi.org/10.1016/bs.adcom.2018.03.015
6. Hulevych, M. (2024). CIDER: Assisted automation tool for C++ libraries testing. Control, Navigation and Communication Systems, 2(76), 74–77. https://doi.org/10.26906/sunz.2024.2.074
7. McCabe, T. J. (1976). A complexity measure. IEEE Transactions on Software Engineering, 2(4), 308–320. https://doi.org/10.1109/TSE.1976.233837
8. Rapps, S., & Weyuker, E. J. (1985). Selecting software test data using data flow information. IEEE Transactions on Software Engineering, 11(4), 367–375. https://doi.org/10.1109/TSE.1985.232226
9. Cadar, C., Dunbar, D., & Engler, D. (2008). KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs. Proceedings of the 8th USENIX Symposium on Operating Systems Design and Implementation (OSDI 2008), San Diego, CA, USA. https://www.usenix.org/legacy/event/osdi08/tech/full_papers/cadar/cadar.pdf
10. Fraser, G., & Arcuri, A. (2011). EvoSuite: Automatic test suite generation for object-oriented software. Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering, Szeged, Hungary, 416–419. https://doi.org/10.1145/2025113.2025179
11. Harries, L., Storan Clarke, R., Chapman, T., Nallamalli, S. V. P. L. N., Ozgur, L., Jain, S., Leung, A., Lim, S., Dietrich, A., Hernández-Lobato, J. M., Ellis, T., Zhang, C., & Ciosek, K. (2020). Drift: Deep reinforcement learning for functional software testing. arXiv preprint arXiv:2007.08220. https://doi.org/10.48550/arXiv.2007.08220
12. Veanes, M., Campbell, C., Grieskamp, W., Schulte, W., Tillmann, N., & Nachmanson, L. (2008). Model-based testing of object-oriented reactive systems with Spec Explorer. In R. M. Hierons, J. P. Bowen, & M. Harman (Eds.), Formal methods and testing (pp. 39–76). Springer. https://doi.org/10.1007/978-3-540-78917-8_2
13. Claessen, K., & Hughes, J. (2011). QuickCheck: A lightweight tool for random testing of Haskell programs. SIGPLAN Notices, 46(4), 53–64. https://doi.org/10.1145/1988042.1988046
14. Pacheco, C., Lahiri, S. K., Ernst, M. D., & Ball, T. (2007). Feedback-directed random test generation. Proc. 29th Int. Conf. on Software Engineering (ICSE '07), Minneapolis, MN, USA, 75–84. https://doi.org/10.1109/ICSE.2007.37
15. Coles, H., Laurent, T., Henard, C., Papadakis, M., & Ventresque, A. (2016). PIT: A practical mutation testing tool for Java (Demo). Proceedings of the 25th International Symposium on Software Testing and Analysis (ISSTA 2016), Saarbrücken, Germany, 449–452. https://doi.org/10.1145/2931037.2948707
16. Karaboga, D. (2010). Artificial bee colony algorithm. Scholarpedia, 5(3), 6915. https://doi.org/10.4249/scholarpedia.6915
17. Yang, X.-S. (2009). Firefly algorithms for multimodal optimization. In O. Watanabe & T. Zeugmann (Eds.), Stochastic algorithms: Foundations and applications. SAGA 2009, Sapporo, Japan, October 26–28, 2009 (pp. 169–178). Lecture Notes in Computer Science (Vol. 5792). Springer. https://doi.org/10.1007/978-3-642-04944-6_14
18. Yang, X.-S., & Deb, S. (2009). Cuckoo search via Lévy flights. In Proceedings of the World Congress on Nature & Biologically Inspired Computing (NaBIC 2009), 210–214. IEEE. https://doi.org/10.1109/NABIC.2009.5393690
19. Dorigo, M., Maniezzo, V., & Colorni, A. (1996). The Ant System: Optimization by a colony of cooperating agents. IEEE Transactions on Systems, Man, and Cybernetics, Part B (Cybernetics), 26(1), 29–41. https://doi.org/10.1109/3477.484436
20. Nayak, G., & Ray, M. (2022). Model-based test sequence generation and prioritization using ant colony optimization. Journal of Information Technology Research, 15(1), 1–17. https://doi.org/10.4018/JITR.299946
21. Palak, P., & Gulia, P. (2018). Ant Colony Optimization Based Test Case Selection for Component Based Software. International Journal of Engineering and Technology, 7(4), 2743-2745. https://doi.org/10.14419/ijet.v7i4.17565
22. Watkins, C. J. C. H., & Dayan, P. (1992). Q-learning. Machine Learning, 8(3–4), 279–292. https://doi.org/10.1007/BF00992698
Downloads
Published
Issue
Section
License
Copyright (c) 2025 Mykhailo Hulevych, Oleksii Kolomiitsev

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.