Software Module Fault Prediction using Convolutional Neural Network with Feature Selection
International Journal of Software Engineering and Its Applications
Software plays a significant role in technological and economic development due to its utmost importance in day to day activities. A sequence of rigorous activities under certain constraints is followed to come up with reliable software. Various measures are taken during the process of software development to ensure high quality software. One such method is software module fault prediction for quality assurance to discover defects in the software prior to testing. It aids in predicting the
... are module faults earlier in the development of the software which predicts fault prone modules so that these can be given special attention to avoid any future risk which eventually curbs the testing along with maintenance cost and effort. The literature survey uncovers many findings that had never been focused like dimensionality reduction and feature selection based on individual feature importance which leads to increase in time complexity and chances of false information. This paper addresses these issues and proposes a supervised machine learning based software module fault prediction technique by implementing Convolutional Neural Network (CNN) as classifier model. Feature selection methods used are InfoGain and Correlation. The results obtained are compared with the existing method HySOM (SOM Clustering with Artificial Neural Network Classification) by considering three different feature sets (Fifteen features, Eighteen features and Twenty one features) of PC1 dataset from NASA. The comparative analysis is performed on the basis of accuracy, precision, recall and F1-measure. The results clearly show better performance of the proposed CNN based technique than HySOM. This paper will contribute towards improvement of quality assurance models utilized for software fault prediction by automating this process using machine learning which enhances True Positive Rate and reduces the detection error. This in turn will help project managers, testers and developers to locate and keep track of fault prone modules so that final software is more accurate, consistent and reliable without consuming much of the testing and maintenance resources.