МЕТОДИКИ АВТОМАТИЗАЦІЇ ГЕНЕРАЦІЇ ТЕСТІВ ДЛЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ C++

Автор(и)

  • Mykhailo Hulevych
  • Oleksii Kolomiitsev

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

Опубліковано

2025-06-19

Номер

Розділ

Інформаційні технології

Статті цього автора (авторів), які найбільше читають