Побудова моделі дефектності програм: вибір метрик
DOI:
https://doi.org/10.15276/aait.04.2021.5Ключові слова:
надійність програмного забезпечення, машинне навчання, дефект, вибір ознак, прогнозування дефектів програмного забезпеченняАнотація
Дана стаття націлена на удосконалення статичних моделей надійності ПЗ за рахунок використання методів машинного
навчання для вибору метрик коду ПЗ, що найсильніше впливають на його надійність. У дослідженні було використано злитий
датасет з репозиторію PROMISE Software Engineering, який містив дані про тестування програмних модулів п’яти програм (КС1,
КС2, PC1, CM1, JM1) та двадцять одну метрику коду. Для підготовленої вибірки було здійснено вибір найважливіших ознак, які
впливають на якість програмного коду за допомогою наступних методів вибору ознак: Boruta, Step-wise selection, Exhaustive
Feature Selection, Random Forest Importance, LightGBM Importance, Genetic Algorithms, Principal Component Analysis, Xverse python.
На основі голосування за результатами роботи методів вибору ознак побудовано статичну (детерміністичну) модель надійності
програмного забезпечення, яка встановлює взаємозв’язок між ймовірністю появи дефекту в програмному модулі та метриками
його коду. Показано, що в цю модель входять такі метрики коду як кількість гілок програми, кількість рядків коду та
цикломатична складність за МакКейбом, загальна кількість операторів та операндів, інтелект, обсяг та кількість зусиль за
Холстедом. Здійснено порівняння ефективності роботи різних методів вибору ознак, зокрема проведено дослідження впливу
методу вибору ознак на точність класифікації із використанням наступних класифікаторів: Random Forest, Support Vector Machine,
k-Nearest Neighbor, Decision Tree classifier, AdaBoost classifier, Gradient Boosting for classification. Показано, що використання будьякого методу вибору ознак підвищує точність класифікації принаймні на десять процентів порівняно з початковим датасетом, що
підтверджує важливість цієї процедури для прогнозування дефектів програмного забезпечення на основі метричних датасетів, які
містять значну кількість сильно корелюючих метрик коду ПЗ. Встановлено, що найкращу для більшості класифікаторів точність
прогнозу вдалось отримати з використанням набору ознак, отриманого із запропонованої статичної моделі надійності ПЗ. Крім
того, показано, що можливим також є використання окремих методів, таких як Autoencoder, Exhaustive Feature Selection та Principal
Component Analysis з незначною втратою точності класифікації та прогнозування