Журнал: Том 30, № 1, 2025
Сторінки: 35 – 47
DOI: https://doi.org/10.62660/bcstu/1.2025.35
1 113 Переглядів

Автоматизація виявлення помилок у коді за допомогою машинного навчання

Олена Сокол
Отримано 20.10.2024
Доопрацьовано 01.03.2025
Прийнято 17.03.2025

Анотація

Мета роботи полягала в розробці підходів до автоматизованого виявлення помилок у коді шляхом використання алгоритмів машинного навчання (ML). У дослідженні розглянуто п’ять основних підходів: класифікація за допомогою дерев рішень, аналіз послідовностей з використанням рекурентних нейронних мереж, пошук аномалій через алгоритми кластеризації, генеративний підхід з трансформерами та глибоке навчання з використанням згорткових нейронних мереж. Для кожного підходу проведено оцінювання за п’ятибальною шкалою, яке базувалося на систематичному вивченні переваг і недоліків, з урахуванням показників виконання. Результати включають приклади реалізацій цих підходів, аналіз переваг та недоліків, а також оцінки їх ефективності. Трансформери продемонстрували високу точність у складних випадках, ефективно обробляючи великі обсяги даних і виявляючи помилки в складних структурах коду. Цей підхід отримав оцінку 5 балів завдяки своїй здатності до високої точності та ефективності в роботі з великими і складними даними. Алгоритми дерев рішень, незважаючи на свою швидкість і простоту, мали обмежену ефективність у масштабних задачах, особливо для складних програмних структур. В той же час, алгоритми кластеризації показали свою універсальність у виявленні аномалій, однак їх точність залежала від правильності вибору параметрів кластеризації. Ці алгоритми отримали оцінки 3 бали через обмежену ефективність у складних задачах та проблеми з масштабованістю. В свою чергу, підхід на основі рекурентних нейронних мереж продемонстрував хороші результати при аналізі послідовностей, але був чутливий до довгих послідовностей та ефекту зникання градієнта, що знижувало його точність. Згорткові нейронні мережі ефективно працювали з візуальними репрезентаціями коду, але мали обмежену здатність до врахування контексту послідовностей. Підходи на основі нейронних мереж отримали оцінки 4 бали, оскільки ефективні в специфічних задачах, але мають обмеження, пов’язані з ресурсами та контекстуальним аналізом. Таким чином, результати підтвердили, що для автоматизованого виявлення помилок у великих і складних програмах найбільш ефективним є використання генеративних моделей, таких як трансформери, що здатні обробляти значні обсяги даних з високою точністю

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

Використані джерела

[1] Abed Alsaedi, S., Noaman, A.Y., Ahmed, A., & Eassa, F. (2023). Nature-based prediction model of bug reports based on ensemble machine learning model. IEEE Access, 11, 63916-63931. doi: 10.1109/ACCESS.2023.3288156.

[2] Aladics, T., Jász, J., & Ferenc, R. (2021). Bug prediction using source code embedding based on Doc2Vec. In O. Gervasi, B. Murgante, S. Misra, C. Garau, I. Blečić, D. Taniar, B.O. Apduhan, A. Rocha, E. Tarantino & C.M. Torre (Eds.), Computational science and its applications – ICCSA 2021 (pp. 382-397). Cham: Springer. doi: 10.1007/9783-030-87007-2_27.

[3] Albattah, W., & Alzahrani, M. (2024). Software defect prediction based on machine learning and deep learning techniques: An empirical approach. AI, 5(4),1743-1758. doi: 10.3390/ai5040086.

[4] Batchu, P., Gali, T.R., & Inturi, S. (2024). Python source code analysis for bug detection using transformers. Engineering and Technology Journal, 9(4), 3772-3777. doi: 10.47191/etj/v9i04.15.

[5] Chakraborty, P., Alfadel, M., & Nagappan, M. (2024). RLocator: Reinforcement learning for bug localization. IEEE Transactions on Software Engineering, 50(10), 2695-2708. doi: 10.1109/TSE.2024.3452595.

[6] Chatterjee, P., & Das, A. (2023). Leveraging machine learning for predictive bug analysis. International Journal of Scientific Research and Management, 12(12), 1804-1814. doi: 10.18535/ijsrm/v12i12.ec04.

[7] Chen, J., Xiang, H., Li, L., Zhang, Y., Ding, B., & Li, Q. (2024). Utilizing precise and complete code context to guide LLM in automatic false positive mitigation. Computer Science: Software Engineering, 1(1), article number arXiv:2411.03079. doi: 10.48550/arXiv.2411.03079.

[8] Fazal, F., & Farook, C. (2024). A machine learning approach for depression detection in Sinhala-English code-mixed. International Journal on Advances in ICT for Emerging Regions, 17(3), 102-112. doi: 10.4038/icter. v17i3.7282.

[9] Grytsiuk, P.Y., Sikora, L.S., & Hrytsiuk, Y.I. (2023). Problems of detecting and correcting errors in messages encoded by Fibonacci matrices. Scientific Bulletin of UNFU, 33(4), 45-58. doi: 10.36930/40330407.

[10] Harzevili, N.S., Shin, J., Wang, J., Wang, S., & Nagappan, N. (2023). Automatic static bug detection for machine learning libraries: Are we there yet? Computer Science: Software Engineering, article number arXiv:2307.04080. doi: 10.48550/arXiv.2307.04080.

[11] Himashree, S., Ajitha, S., Reshma, K.J., & Girish, R. (2024). Automating adverse event detection in clinical trials through machine learning. Periodico di Mineralogia, 93(6), 340-352. doi: 10.5281/zenodo.14282801.

[12] Kodamasimham, K., Murthy, P., & Sarangi, S. (2024). Exploring the synergy between generative ai and software engineering: Automating code optimization and bug fixing. World Journal of Advanced Engineering Technology and Sciences, 13(1), 682-691. doi: 10.30574/wjaets.2024.13.1.0464.

[13] Kumar, S.A., & Prasanna, B. (2024). Software bug prediction using machine learning. International Journal of Scientific Research in Engineering and Management, 8(4). doi: 10.55041/IJSREM31425

[14] Kumari, M., Singh, R., & Singh, V.B. (2024a). Prioritization of software bugs using entropy-based measures. Journal of Software: Evolution and Process, 37(2), article number e2742. doi: 10.1002/smr.2742.

[15] Kumari, N., Ahmed, J., Raghuwanshi, K.K., & Agarwal, P. (2024b). Automating bug triage: Unleashing the power of machine learning and natural language processing. doi: 10.21203/rs.3.rs-4294244/v1.

[16] Li, Z., Zhang, H., Jin, Z., & Li, G. (2023). WELL: Applying bug detectors to bug localization via weakly supervised learning. Journal of Software: Evolution and Process. doi: 10.22541/au.168810846.65018089/v1.

[17] Nadim, M., & Roy, B. (2022). Utilizing source code syntax patterns to detect bug inducing commits using machine learning models. Software Quality Journal, 31, 775-807. doi: 10.1007/s11219-022-09611-3.

[18] Nouwou Mindom, P.S., Da Silva, L., Nikanjam, A., & Khomh, F. (2024). Continuously learning bug locations. Computer Science: Software Engineering, article number arXiv:2412.11289. doi: 10.48550/arXiv.2412.11289.

[19] Pozharytska, O., & Troitskyi, K. (2021). Digital technologies for grammatical error correction: Deep learning methods & syntactic N-grams. Issues of Translation Studies and Language Teaching Methods, 35, 237-241. doi: 10.18524/2307-4558.2021.35.237789.

[20] Rehman, L., Iqbal, M.J., Ramzan, S., Nawaz, S., Jaffar, A., Yaqoob, S., & Ul Haq, I. (2023). Long-lived bugs prediction using machine learning approaches. Journal of Jilin University, Engineering and Technology Edition, 42(1), 76-97. doi: 10.17605/OSF.IO/T2Z75.

[21] Sarawan, K., Polpinij, J., & Luaphol, B. (2023). Machine learning-based methods for identifying bug severity level from bug reports. In P. Meesad, S. Sodsee, W. Jitsakul & S. Tangwannawit (Eds.), Proceedings of the 19th international conference on computing and information technology (pp. 199-208). Cham: Springer. doi: 10.1007/978-3-031-30474-3_17.

[22] Shah, M., Sharma, A., & Kumar, R. (2023). Software bugs detection using supervised machine learning techniques. Advances in Science and Technology, 124, 594-601. doi: 10.4028/p-of2831.

[23] Solitto Da Silva, A., Garcia, R.E., & Botega, L.C. (2023). Bug localization model in source code using ontologies. IEEE Access, 11, 98542-98557. doi: 10.1109/ACCESS.2023.3313598.

[24] Symala Sai Sree, M., Sai Deekshitha, P., Jhansi, P., & Alekya, R. (2024). Nature-based prediction model of bug reports based on ensemble machine learning model. Journal of Engineering Sciences, 230-240. doi: 10.36893/ JES.2024.V15I10.028.

[25] Wang, S., Zheng, H., Wen, X., Xu, K., & Tan, H. (2024). Enhancing chip design verification through AI-powered bug detection in RTL code. Applied and Computational Engineering, 92, 27-33. doi: 10.54254/27552721/92/20241685.

[26] Yanko, А., Prokudin, А., Fil, І., & Kruk, О. (2024). Detection of LDDoS attacks using SDN networks with machine learning elements. Measuring and Computing Devices in Technological Processes, 4, 287-296. doi: 10.31891/22199365-2024-80-36.

[27] Yi, L.T. (2024). Code smell detection using machine learning classification algorithm. International Journal of Research and Innovation in Social Science, 8(5), 889-900. doi: 10.47772/IJRISS.2024.805063.

ЦИТУВАТИ

Sokol, O. (2025). Automation of error detection in code using machine learning. Bulletin of Cherkasy State Technological University, 30(1), 35-47. https://doi.org/10.62660/bcstu/1.2025.35