Increasing the accuracy of software fault prediction using majority ranking fuzzy clustering
Although many machine-learning and statistical techniques have been proposed widely for defining fault prone modules during software fault prediction, but this area have yet to be explored as still there is a room for stable and consistent model with high accuracy. In this paper, a new method is pro...
Saved in:
Main Authors: | , |
---|---|
Format: | Article |
Published: |
Springer Verlag
2015
|
Subjects: | |
Online Access: | http://eprints.utm.my/id/eprint/59320/ http://dx.doi.org/10.1007/978-3-319-10389-1_13 |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Institution: | Universiti Teknologi Malaysia |
Summary: | Although many machine-learning and statistical techniques have been proposed widely for defining fault prone modules during software fault prediction, but this area have yet to be explored as still there is a room for stable and consistent model with high accuracy. In this paper, a new method is proposed to increase the accuracy of fault prediction based on fuzzy clustering and majority ranking. In the proposed method, the effect of irrelevant and inconsistent modules on fault prediction is decreased by designing a new framework, in which the entire project’s modules are clustered. The obtained results showed that fuzzy clustering could decrease the negative effect of irrelevant modules on accuracy of estimations. We used eight data sets from NASA and Turkish white-goods software to evaluate our results. Performance evaluation in terms of false positive rate, false negative rate, and overall error showed the superiority of our model compared to other predicting strategies. Our proposed majority ranking fuzzy clustering approach showed between 3% to 18% and 1% to 4% improvement in false negative rate and overall error respectively compared to other available proposed models (ACF and ACN) in at least half of the testing cases. The results show that our systems can be used to guide testing effort by prioritizing the module’s faults in order to improve the quality of software development and software testing in a limited time and budget. |
---|