Прогнозування дефектів програмного забезпечення із використанням методів машинного навчання
Loading...
Date
2022
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Національний університет ”Львівська політехніка”
Abstract
Магістерська кваліфікаційна робота виконана студентом групи КНСШ-22 Нестерчуком Олегом Ігоровичем. Тема “Прогнозування дефектів програмного забезпечення із використанням методів машинного навчання”. Робота направлена на здобуття ступеня магістр за спеціальністю 122 «Комп’ютерні науки». Метою дипломної роботи є підвищення точності прогнозування дефектів ПЗ методами машинного навчання. Об’єктом дослідження є процес прогнозування дефектів ПЗ. У ході роботи було розглянуто різні підходи щодо покращення результатів прогнозування дефектів ПЗ. Для цього було розглянуто різні алгоритми вибірки ознак з набору даних, а також балансування даних. Окрім цього було проведено оптимізацію гіперпараметрів для використаних моделей машинного навчання, що стало основою для подальшого тестування різних варіантів ансамблевих методів. Як результат, було досягнуто покращення у прогнозуванні дефектів ПЗ завдяки розробленню стекінгової моделі, базові класифікатори якої використовують різні методи балансування даних та вибірки ознак. The process of creating and maintaining software is described by the concept of the software development life cycle (SDLC). One of the stages of the SDLC, testing, is aimed at identifying system defects manifested in unexpected and incorrect behavior. Practice shows that not all software errors are found during testing. A Dutch scientist in the field of computer science, Edsger Dijkstra, shared the opinion that testing can show the presence of defects but never their absence. This means that the great effort spent on verifying the correct operation of the system will only sometimes guarantee its proper operation. According to the so-called "Rule of Ten" the later a defect is discovered during the life cycle, the more expensive the cost of its correction. For example, if the error correction during the coding stage is 100 units, it will already be 1,000 units during the testing stage, and during maintenance - 10,000 units, etc. Therefore, detecting defects at the earliest possible stages is essential in modern software development. One of the ways to detect defects, in addition to testing, is their prediction (SDP, Software defect prediction). Defect prediction is divided into two types: dynamic and static. Dynamic requires the mandatory launch of the software system, which is only sometimes possible and appropriate. In turn, static forecasting does not have such a limitation, which is why it is more popular (in the future, the concept of defect forecasting will be understood as static forecasting). This type of defect detection is carried out using machine learning methods. Given a dataset with source code modules quantitative and qualitative features, machine learning algorithms can succeed in predicting possible software bugs.
Description
Keywords
класифікація, машинне навчання, стекінг, передбачення дефектів ПЗ, репозиторій PROMISE, classification, machine learning, stacking, software defect prediction, PROMISE repository
Citation
Нестерчук О. І. Прогнозування дефектів програмного забезпечення із використанням методів машинного навчання : пояснювальна записка до магістерської кваліфікаційної роботи : 122 «Комп’ютерні науки» / Олег Ігорович Нестерчук ; Національний університет «Львівська політехніка». – Львів, 2022. – 69 с.