Генерація тестових даних за допомогою глибокого навчання з підкріпленням

Автор(и)

  • Володимир Левицький Київський національний університет будівництва і архітектури, Київ, Україна https://orcid.org/0000-0003-1829-488X
  • Олексій Лопуга Київський національний університет будівництва і архітектури, Київ, Україна https://orcid.org/0000-0001-6397-2710

DOI:

https://doi.org/10.32347/2412-9933.2024.59.155-164

Ключові слова:

ТПЗОП, DDQN, GunPowder, НП, Qtip

Анотація

Процес створення тестових даних для програмного забезпечення є одним із найскладніших і найтрудомісткіших етапів у циклі розроблення програмного забезпечення. Він вимагає значних ресурсів і зусиль, особливо коли йдеться про досягнення високого рівня покриття тестів. Тестування програмного забезпечення на основі пошуку (ТПЗОП) є підходом, що уможливлює автоматизувати цей процес, використовуючи метаевристичні алгоритми для генерування тестових даних. Метаевристичні алгоритми, такі як генетичні алгоритми або алгоритми імітації відпалу, працюють за принципом систематичного перебору можливих варіантів і вибору найбільш ефективних рішень на основі зворотного зв'язку від функції пристосованості. Цей процес нагадує навчання з підкріпленням, де агент отримує винагороду за правильні дії та покарання за неправильні, з метою оптимізації загальної продуктивності. Запропоновано новий підхід, який досліджує можливість застосування навчання з підкріпленням у ТПЗОП, з метою заміни традиційних, створених людиною, метаевристичних алгоритмів. Для цього розроблено платформу GunPowder, яка трансформує процес тестування програмного забезпечення (ТПЗ) в навчальне середовище. У цьому середовищі агент використовує метод Double Deep Q-Networks (DDQN), який включає в себе глибокі нейронні мережі для навчання оптимальної стратегії взаємодії з програмним забезпеченням, що тестується. Пропоноване дослідження включало серію емпіричних експериментів для оцінки ефективності запропонованого підходу. Отримані результати вказують на те, що агенти, навчені з використанням GunPowder, можуть ефективно вивчати і застосовувати метаевристичні алгоритми, досягаючи високого рівня покриття гілок у навчальних функціях. Зокрема, наші агенти досягли 100% покриття гілок у випадку навчальних функцій, що є свідченням їх здатності адаптуватися до різних тестових сценаріїв. Ці висновки підкреслюють потенціал використання глибоких нейронних мереж і навчання з підкріпленням у ТПЗОП, що може значно покращити якість і ефективність процесу тестування програмного забезпечення в майбутньому. Отже, робота відкриває нові можливості для інтеграції сучасних методів машинного навчання в автоматизоване тестування програмного забезпечення, що може привести до зменшення витрат часу і ресурсів на тестування, а також підвищення якості кінцевих продуктів.

Біографії авторів

Володимир Левицький , Київський національний університет будівництва і архітектури, Київ

Аспірант кафедри інформаційних технологій

Олексій Лопуга , Київський національний університет будівництва і архітектури, Київ

Аспірант кафедри інформаційних технологій

Посилання

Harman, M., McMinn, P., de Souza, J. T., Yoo, S. (2012). Search Based Software Engineering: Techniques, Taxonomy, Tutorial. In: Meyer, B., Nordio, M. (eds) Empirical Software Engineering and Verification. LASER LASER LASER 2010 2009 2008. Lecture Notes in Computer Science, vol 7007. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-25231-0_1.

Silver, D., Huang, A., Maddison, C. et al. (2016). Mastering the game of Go with deep neural networks and tree search. Nature 529, 484–489. https://doi.org/10.1038/nature16961.

Levytskyi V., Kruk P., Lopuha O., Sereda D., Sapaiev V., Matsiievskyi O. (2024). “Use of Deep Learning Methodologies in Combination with Reinforcement Techniques within Autonomous Mobile Cyber-physical Systems”, 2024 IEEE. (прийнято до друку).

Hado Van Hasselt, Arthur Guez, and David Silver. (2016). Deep Reinforcement Learning with Double Q-Learning.

In AAAI. 2094–2100. https://doi.org/10.1609/aaai.v30i1.10295.

McMinn P. (2007). IGUANA: Input Generation Using Automated Novel Algorithms. A Plug and Play Research Tool. Technical Report CS-07-14. Department of Computer Science, University of Sheffield. https://doi.org/10.1145/3194718.3194720.

Lattner C. and Adve V. (2004). LLVM: A compilation framework for lifelong program analysis & transformation. In Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization. IEEE Computer Society, 75. https://doi.org/10.1109/CGO.2004.1281665.

Kim, J., You, B., Kwon, M., McMinn, P., Yoo, S. (2017). Evaluating CAVM: A New Search-Based Test Data Generation Tool for C . In: Menzies, T., Petke, J. (eds) Search Based Software Engineering. SSBSE 2017. Lecture Notes in Computer Science, vol. 10452. Springer, Cham. https://doi.org/10.1007/978-3-319-66299-2_12.

Brockman G., Cheung V., Pettersson L., Schneider J., Schulman J., Tang J., and Zaremba W. (2016). OpenAI Gym. (2016). https://doi.org/10.48550/arXiv.1606.01540.

Glorot, X., Bordes, A., & Bengio, Y. (2011). Deep Sparse Rectifier Neural Networks. International Conference on Artificial Intelligence and Statistics 2011. Fort Lauderdale, United States. pp. 315–323.

Lecun Y., Bottou L., Bengio Y. and Haffner P. (1998). "Gradient-based learning applied to document recognition," in Proceedings of the IEEE, vol. 86, no. 11, pp. 2278–2324. https://doi.org/10.1109/5.726791.

Kingma D. and Ba J. (2014). Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980.

##submission.downloads##

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

2024-09-27

Як цитувати

Левицький , В. ., & Лопуга , О. . (2024). Генерація тестових даних за допомогою глибокого навчання з підкріпленням. Управління розвитком складних систем, (59), 155–164. https://doi.org/10.32347/2412-9933.2024.59.155-164

Номер

Розділ

ІНФОРМАТИЗАЦІЯ ВИЩОЇ ОСВІТИ