МЕТОДИКИ АВТОМАТИЗАЦІЇ ГЕНЕРАЦІЇ ТЕСТІВ ДЛЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ C++
DOI:
https://doi.org/10.26906/SUNZ.2025.2.102Ключові слова:
автоматизація тестування, C++, регресійне тестування, бджолиний алгоритм, алгоритм мурашиної оптимізації, алгоритм світлячків, пошук зозулі, навчання за q-функцієюАнотація
Автоматизація тестування є критично важливою для забезпечення якості програмного забезпечення. Автоматизовані підходи значно скорочують зусилля на тестування, покращують ефективність тестування та підвищують загальну надійність програмного забезпечення. Інструмент CIDER, представлений автором, пропонує багатообіцяюче автоматизоване рішення шляхом генерації тестових сценаріїв на основі запису виконання програм і застосування евристичної пошукової оптимізації, зокрема гармонічного пошуку. Незважаючи на свої переваги, CIDER стикається з обмеженнями, включаючи неповне охоплення складної логіки розгалуження, неефективне дослідження великих просторів вхідних даних, труднощі в обробці семантично насичених або контекстуально складних вхідних даних. Ця оглядова стаття спрямована на систематичне дослідження, порівняння та оцінку різних автоматизованих методик генерації тестів, таких як символічне виконання, конколічне тестування, еволюційні алгоритми, навчання з підкріпленням і тестування на основі моделі. Мета полягає в тому, щоб класифікувати ці методи на основі їхніх характеристик, оцінити їхню ефективність у вирішенні наявних недоліків CIDER та визначити відповідні підходи, які могли б розширити можливості інструменту для автоматизованої генерації тестів з точки зору ефективності покриття коду.Завантаження
Посилання
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
Опубліковано
Номер
Розділ
Ліцензія
Авторське право (c) 2025 Mykhailo Hulevych, Oleksii Kolomiitsev

Ця робота ліцензується відповідно до Creative Commons Attribution-NonCommercial 4.0 International License.