Software defect prediction. (c2019)

Software systems are becoming more and more complex. With the increasing size and complexity of software systems, it is becoming more challenging to assess their quality. There are several attributes that de ne software quality. One very important attribute is fault-proneness. This is normally measu...

وصف كامل

محفوظ في:
التفاصيل البيبلوغرافية
المؤلف الرئيسي: Moussa, Rebecca (author)
التنسيق: masterThesis
منشور في: 2019
الموضوعات:
الوصول للمادة أونلاين:http://hdl.handle.net/10725/10456
https://doi.org/10.26756/th.2019.110
http://libraries.lau.edu.lb/research/laur/terms-of-use/thesis.php
الوسوم: إضافة وسم
لا توجد وسوم, كن أول من يضع وسما على هذه التسجيلة!
الوصف
الملخص:Software systems are becoming more and more complex. With the increasing size and complexity of software systems, it is becoming more challenging to assess their quality. There are several attributes that de ne software quality. One very important attribute is fault-proneness. This is normally measured at the level of a module. A module is a class in the object-oriented design or a function in the procedural design. The fault-proneness of a module is de ned as the probability of it containing defect and/or resulting in faults. It is very important to assess fault-proneness of a module as it affects other external software quality attributes such as maintainability and reliability of the software system where it resides. If a system encompasses a defective module, correcting the resulting fault can cost much more than repairing the module before integration. Hence, it is crucial to be able to assess fault-proneness before the module is actually integrated in the system and the latter deployed and faults occurring. In this context, we speak of classifying modules into fault-prone or not. Our work focuses on modules in the object-oriented design. It is divided into two main tracks. One that focuses on predicting defect in software modules using a hybrid heuristic - a combination of Particle Swarm Optimization (PSO) and Genetic Algorithms (GA). We compare our approach to 9 well known machine learning techniques and results show the advantages of our model over the other techniques. The second track explores the use of one-class classi ers on the problem of software defect prediction. We test this approach using well known one-class predictors and we compare their performance to that of their corresponding two-class techniques. Results prove that one-class predictors can in fact be used to predict software defect.