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

Loading...
Thumbnail Image

Date

2022

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 с.

Endorsement

Review

Supplemented By

Referenced By