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

Ключові слова: метрики коду, надійність, класифікація, прогнозування дефектів між проектами (CPDP)

Анотація

Здійснено оцінювання та виконано аналіз літературних джерел, в яких досліджено методи машинного навчання для прогнозування дефектів програмного забезпечення. Визначено основні характеристики дефектів програмного забезпечення, такі як показники складності, ключові слова, зміни, розмір програмного коду та структурні залежності. Охарактеризовано основні методи та засоби прогнозування дефектів програмного забезпечення на основі метрик методами машинного навчання. Описано загальну схему прогнозування дефектів програмного забезпечення, яка дає змогу проводити експерименти та визначати наявність чи відсутність дефекту в програмному модулі. Продуктивність моделі передбачення дефектів програмного забезпечення істотно залежить від вибору набору даних, що є першим кроком проведення дослідження. Встановлено, що попередні дослідження здебільшого базуються на наборах даних з відкритим кодом, а програмні показники, які використовують для створення моделей, переважно є метриками продукту. Набір даних PROMISE (обіцянки) використовується в дослідженнях найчастіше, хоча дані проектів у наборі є застарілими та датуються 2004, 2005 та 2006 роками. Під час виконання цієї роботи проаналізовано сучасні наукові дослідження у галузі. Виявлено методи класифікації, що використовують під час прогнозування дефектів програмного забезпечення. Встановлено, що логістична регресія (англ. Logistic Regression), за якою слідує наївний Баєс (англ. Naive Bayes) та випадковий ліс (англ. Random Forest), є найбільш застосовуваними методами класифікації в таких моделях. Важливим етапом для розуміння ефективності моделі є її оцінювання. Виявлено показники оцінювання ефективності моделі прогнозування дефектів програмного забезпечення, що найчастіше використовують дослідженнях. З'ясовано, що f-measure, за якою слідує recall та AUC, є найпоширенішим показником, який використовується для оцінювання ефективності моделей передбачення дефектів програмного забезпечення. Виявлено, що за останні роки зріс інтерес до використання моделей дефектів програмного забезпечення та класифікації програмних дефектів на основі метрик коду та характеристик проекту. Обґрунтовано актуальність оцінювання та прогнозування дефектів програмного забезпечення методами машинного навчання. Встановлено деякі аспекти, які потребують додаткового дослідження. Визначено напрями майбутніх досліджень, а саме: методи вибору ознак, методи вибору класифікаторів, методи попереднього оброблення даних, побудова моделей прогнозування дефектів, розроблення методів і засобів прогнозування дефектів програмного забезпечення.

Завантаження

Дані завантаження ще не доступні.

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

О. С. Хіль, Національний університет "Львівська політехніка", м. Львів

аспірант, кафедра систем штучного інтелекту

В. С. Яковина, Національний університет "Львівська політехніка", м. Львів

д-р техн. наук, професор, кафедра систем штучного інтелекту

Посилання

Abdullah, A., & Khan, M. Z. (2019). Software defect prediction using supervised machine learning and ensemble techniques: a comparative study. Journal of Software Engineering and Applications, 12(5), 85–100. https://doi.org/10.4236/jsea.2019.125007

Agrawal, A., & Malhotra, R. (2022). Cross project defect prediction for open source software. International Journal of Information Technology, 14(1), 587–601. http://dx.doi.org/10.1007/s41870-019-00299-6

Akif, H. M., Reddy, R. V., Nagella, K., & Vidya, S. (2021). Software Defect Estimation Using Machine Learning Algorithms. International Journal of Recent Technology and Engineering, 10(1), 204–8. https://doi.org/10.35940/ijrte.a5898.0510121

Bailey, C. T., & Dingee, W. L. (1981). A software study using Halstead metrics. ACM SIGMETRICS Performance Evaluation Review, 10(1), 189–197. https://doi.org/10.1145/1010627.807928

Bansiya, J., & Davis, C. G. (2002). A hierarchical model for object-oriented design quality assessment. IEEE Transactions on Software Engineering, 28(1), 4–17. https://doi.org/10.1109/32.979986

Bashir, K., Li, T., Yohannese, C. W., & Mahama, Y. (2017). Enhancing software defect prediction using supervised-learning based framework. International Conference on Intelligent Systems and Knowledge Engineering (ISKE), 12(1), 1–6. https://doi.org/10.1109/ISKE.2017.8258790

Basili, V. R., & Reiter, R. W. (1979). Evaluating automatable measures of software development. Workshop on Quantitative Software Models for Reliability, Complexity and Cost, 107–116.

Chidamber, S. R., & Kemerer, C. F. (1994). A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6), 476–493. https://doi.org/10.1109/32.295895

Choudhary, G. R., Kumar, S., Kumar, K., Mishra, A., & Catal, C. (2018). Empirical analysis of change metrics for software fault prediction. Computers and Electrical Engineering, 67(1), 15–24. https://doi.org/10.1016/j.compeleceng.2018.02.043

Coman, I. D., & Sillitti, A. (2007). An empirical exporatory study on inferring developpers activities from low-level data. International Conference on Software Engineering & Knowledge Engineering (SEKE), 19(1), 15–18.

Cui, C., Liu, B., & Wang, S. (2019). Isolation forest filter to simplify training data for cross-project defect prediction. Prognostics and System Health Management Conference (PHM-Qingdao), 1–6. https://doi.org/10.1109/PHM-Qingdao46334.2019.8942919

DAmbros, M., Lanza, M., & Robbes, R. (2012). Evaluating defect prediction approaches: A benchmark and an extensive comparison. Empirical Software Engineering, 17(4), 531–577. http://dx.doi.org/10.1007/s10664-011-9173-9

Felix, E. A., & Lee, S. P. (2020). Predicting the number of defects in a new software version. PLoS ONE, 15(3). https://doi.org/10.1371/journal.pone.0229131

Fronza, I., Janes, A., Sillitti, A., Succi, G., & Trebeschi, S. (2013). Cooperation wordle using pre-attentive processing techniques. International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE), 6(1), 57–64. https://doi.org/10.1109/CHASE.2013.6614732

Henderson-Sellers, B. (1995). Object-Oriented Metrics: Measures of Complexity.

Herbold, S., Trautsch, A., & Grabowski, J. (2018). A comparative study to benchmark cross-project defect prediction approaches. IEEE Transactions on Software Engineering, 44(9), 811–833. https://doi.org/10.1109/TSE.2017.2724538

Jayanthi, R., & Florence, L. (2019). Software defect prediction techniques using metrics based on neural network classifier. Cluster Computing, 22(1), 77–88. https://doi.org/10.1007/s10586-018-1730-1

Jindal, R., Ahmad, A., & Aditya, A. (2021). Ensemble Based-Cross Project Defect Prediction. Smart Innovation, Systems and Technologies, 243(1), 611–620. https://doi.org/10.1007/978-981-16-3675-2_47

Jureczko, M., & Madeyski, L. (2011). A review of process metrics in defect prediction studies. Metody Informatyki Stosowanej, 5, 133–145.

Khatri, Y., & Singh, S. K. (2022). Cross project defect prediction: A comprehensive survey with its SWOT analysis. Innovations in Systems and Software Engineering, 18(2), 263–281. https://doi.org/10.1007/s11334-020-00380-5

Kim, S., Zhang, H., Wu, R., & Gong, L. (2011). Dealing with Noise in Defect Prediction. International Conference on Software Engineering, 33(1), 481–490. https://doi.org/10.1145/1985793.1985859

Kitchenham, B. A., Mendes, E., & Travassos, G. H. (2007). Cross versus within-company cost estimation studies: A systematic review. IEEE Transactions on Software Engineering, 33(5), 316–329. https://doi.org/10.1109/TSE.2007.1001

Layman, L., Kudrjavets, G., & Nagappan, N. (2008). Iterative identification of fault-prone binaries using in-process metrics. ACM-IEEE International symposium on Empirical software engineering and measurement, 2(1), 206–212. https://doi.org/10.1145/1414004.1414038

Lenarduzzi, V., Sillitti, A., & Taibi, D. (2017). Analyzing forty years of software maintenance models. IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C), 39(1), 146–148. https://doi.org/10.1109/ICSE-S.2017.122

Lenarduzzi, V., Sillitti, A., & Taibi, D. (2018). A survey on code analysis tools for software maintenance prediction. International Conference in Software Engineering for Defence Applications (SEDA), 6(1), 165–175. https://doi.org/10.1007/978-3-030-14687-0_15

Li, Y., Huang, Z., Wang, Y., & Fang, B. (2017). Evaluating data filter on crossproject defect prediction: Comparison and improvements. Access, 10(1), 25646–25656. https://doi.org/10.1109/ACCESS.2017.2771460

Li, Z., Zhang, H., Jing, X., Xie, J., Guo, M., & Ren, J. (2022). DSSDPP: Data Selection and Sampling Based Domain Programming Predictor for Cross-Project Defect Prediction. IEEE Transactions on Software Engineering, 49(4), 1941–1963. https://doi.org/10.1109/TSE.2022.3204589

Martin, R. (1994). OO design quality metrics: An Analysis of Dependencies, 12(1), 151–170.

McCabe, T. (1976). A complexity measure. IEEE Transactions on Software Engineering, 2(4), 308–320. https://doi.org/10.1109/TSE.1976.233837

Mi, W., Li, Y., Wen, M., & Chen, Y. (2022). Using active learning selection approach for crossproject software defect prediction. Connection Science, 34(1), 1482–1499. https://doi.org/10.1080/09540091.2022.2077913

Moser, R., Pedrycz, W., & Succi, G. (2008). A comparative analysis of the efficiency of change metrics and static code attributes for defect prediction. ACM/IEEE International Conference on Software Engineering, 30(1), 181–190. https://doi.org/10.1145/1368088.1368114

Moser, R., Pedrycz, W., Sillitti, A., & Succi, G. (2008). A model to identify refactoring effort during maintenance by mining source code repositories. International Conference on Product Focused Software Process Improvement (PROFES), 9(1), 360–370. https://doi.org/10.1007/978-3-540-69566-0_29

Muthukumaran, K., Choudhary, A., & Murthy, N. L. B. (2015). Mining GitHub for novel change metrics to predict buggy files in software systems. International Conference on Computational Intelligence and Networks, 15–20. https://doi.org/10.1109/CINE.2015.13

Pal, S. (2021). Generative adversarial network-based cross-project fault prediction. arXiv:2105.07207. https://doi.org/10.48550/arXiv.2105.07207

Pal, S., & Sillitti, A. (2022). Cross-Project Defect Prediction: A Literature Review. Access, 10(1), 118697–118717. https://doi.org/10.1109/ACCESS.2022.3221184

Ramaswami, M., & Bhaskaran, R. (2009). A study on feature selection techniques in educational data mining. Journal of Computing, 1(1), 7–11. https://doi.org/10.48550/arXiv.0912.3924

Sheng, L., Lu, L., & Lin, J. (2020). An adversarial discriminative convolutional neural network for cross-project defect prediction. Access, 8(1), 55241–55253. https://doi.org/10.1109/ACCESS.2020.2981869

Sotto-Mayor, B., & Kalech, M. (2021). Cross-project smell-based defect prediction. Soft Computing, 25(1), 14171–14181. https://doi.org/10.1007/s00500-021-06254-7

Turhan, B., Menzies, T., Bener, A. B., & Di Stefano, J. (2009). On the relative value of cross-company and within-company data for defect prediction. Empirical Software Engineering, 14(5), 540–578. http://dx.doi.org/10.1007/s10664-008-9103-7

Umamaheswara Sharma, B., & Ravichandra, Sadam. (2022). Towards Developing and Analysing Metric-Based Software Defect Severity Prediction Model. https://doi.org/10.48550/arXiv.2210.04665.

Vashisht, R., & Rizvi, S. A. M. (2020). Feature extraction to heterogeneous cross project defect prediction. International Conference on Reliability, Infocom Technologies and Optimization (Trends and Future Directions) (ICRITO), 8(1), 1221–1225. https://doi.org/10.1109/ICRITO48877.2020.9197799

Wen, W., Shen, C., Lu, X., Li, Z., Wang, H., Zhang, R., & Zhu, N. (2022). Cross-Project Software Defect Prediction Based on Class Code Similarity. Access, 10(1), 105485–105495. https://doi.org/10.1109/ACCESS.2022.3211401

Xia, Y., Yan, G., Jiang, X., & Yang, Y. (2014). A new metrics selection method for software defect prediction. International Conference on Progress in Informatics and Computing, 433–436. https://doi.org/10.1109/PIC.2014.6972372

Опубліковано
2023-05-25
Як цитувати
Хіль, О. С., & Яковина, В. С. (2023). Аналіз проблеми застосування методів машинного навчання для оцінювання та прогнозування дефектів програмного забезпечення. Scientific Bulletin of UNFU, 33(3), 110-116. https://doi.org/10.36930/40330316
Розділ
Інформаційні технології

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