SOFTWARE DEFECT PREDICTION: PAST PRESENT AND FUTURE (original) (raw)
Related papers
SOFTWARE DEFECT PREDICTION USING MACHINE LEARNING APPROACH : A Contemporary review
Detecting defects in software at the bleeding edge of a software development life cycle is vital. Identifying defects before the deployment of software aids in delivering high-quality products, and reduces development costs. Machine learning techniques are deployed in the earlier stages of software development to improve software performance quality and decrease software maintenance costs. This study focuses on reviewing some papers published in software defect prediction using Machine learning techniques from 2020 to the current time to determine the predominance of machine learning methodologies adoption in software defect prediction. Google Scholar was used to source research papers for this study, and data was gathered from the publications. The process involves reviewing the selected papers, writing a concise synopsis of the papers, connecting and involving them where appropriate, reviewing existing methodology, and finally summarizing the findings. The result shows recent acti...
A Review on Machine Learning Techniques for Software Defect Prediction
2018
Software defect prediction has been an interest of research era because predicting defects on early stages improves software quality with reduced cost and effective software management. Researchers from different domains are contributing their efforts to propose an approach that effectively and efficiently helps in this regard. Different machine learning techniques have been applied to remove unnecessary and fault data from defect prone modules and many approaches, frameworks, methods and models have been proposed using different datasets, metrics, and evaluation strategies. In this paper, 30 Clarivate Analytics indexed journal papers from 2009-2017 are reviewed for the upcoming practitioners of software defect prediction. Review in this paper reflects some of the work that has been done in software defect prediction so far. Detailed classification taxonomy of the machine learning techniques used for software defect prediction has been presented. Defective, non-defective datasets al...
Journal of Software Engineering, 2015
Recent studies of software defect prediction typically produce datasets, methods and frameworks which allow software engineers to focus on development activities in terms of defect-prone code, thereby improving software quality and making better use of resources. Many software defect prediction datasets, methods and frameworks are published disparate and complex, thus a comprehensive picture of the current state of defect prediction research that exists is missing. This literature review aims to identify and analyze the research trends, datasets, methods and frameworks used in software defect prediction research betweeen 2000 and 2013. Based on the defined inclusion and exclusion criteria, 71 software defect prediction studies published between January 2000 and December 2013 were remained and selected to be investigated further. This literature review has been undertaken as a systematic literature review. Systematic literature review is defined as a process of identifying, assessing, and interpreting all available research evidence with the purpose to provide answers for specific research questions. Analysis of the selected primary studies revealed that current software defect prediction research focuses on five topics and trends: estimation, association, classification, clustering and dataset analysis. The total distribution of defect prediction methods is as follows. 77.46% of the research studies are related to classification methods, 14.08% of the studies focused on estimation methods, and 1.41% of the studies concerned on clustering and association methods. In addition, 64.79% of the research studies used public datasets and 35.21% of the research studies used private datasets. Nineteen different methods have been applied to predict software defects. From the nineteen methods, seven most applied methods in software defect prediction are identified. Researchers proposed some techniques for improving the accuracy of machine learning classifier for software defect prediction by ensembling some machine learning methods, by using boosting algorithm, by adding feature selection and by using parameter optimization for some classifiers. The results of this research also identified three frameworks that are highly cited and therefore influential in the software defect prediction field. They are Menzies et al. Framework, Lessmann et al. Framework, and Song et al. Framework.
A Literature Review Study of Software Defect Prediction using Machine Learning Techniques
International Journal of Emerging Research in Management &Technology , 2017
oftware systems are any software product or applications that support business domains such as Manufacturing,Aviation, Health care, insurance and so on.Software quality is a means of measuring how software is designed and how well the software conforms to that design. Some of the variables that we are looking for software quality are Correctness, Product quality, Scalability, Completeness and Absence of bugs, However the quality standard that was used from one organization is different from other for this reason it is better to apply the software metrics to measure the quality of software. Attributes that we gathered from source code through software metrics can be an input for software defect predictor. Software defect are an error that are introduced by software developer and stakeholders. Finally, in this study we discovered the application of machine learning on software defect that we gathered from the previous research works.
Software Defect Prediction Techniques in Software Engineering: A Review
CERN European Organization for Nuclear Research - Zenodo, 2022
Defect prediction is one of the significant challenges in the software development lifecycle for improving software quality and reducing program testing time and cost. Developing a defect prediction model is a difficult task, and several techniques have been developed over time. Previous reviews focused on defect prediction in general, and none have specifically addressed defect prediction based on the semantic representation of programs from source code. This review presents a comprehensive and holistic survey of software defect research over three decades, covering motivations, datasets, state-of-the-art techniques, challenges, and future research directions. We specifically concentrate on source code semantic-based methods. We also give particular attention to the techniques based on semantic features because it presents the field's current state of the art. We focus on the process of cross-project defect prediction (CPDP), within-project defect prediction (WPDP), and the most recently used datasets. Defect datasets for 60 projects in different programming languages (C, Java, and C++) are presented and analyzed. Open issues are studied, and potential research directions in defect prediction are proposed to supply the reader with a point of reference for important topics that deserve study.
Comparative Analysis of Software Defect PredictionTechniques
2019
Accurate prediction of defects in software components plays a vital role in administrating the quality of the quality and efficiency of the system to be developed. So we have written a systematic literature review in order to evaluate the four main defect prediction techniques. Defect prediction paves way for the testers to find bugs and modify them in order to achieve input to output conformance. In this paper we have discussed the open issues in predicting software defects and have provided with a detailed analyzation of different methods including Machine Learning, Integrated Approach, Cross-Project and Deep Forest algorithm in order to prevent these flaws. However, it is almost impossible to rule which method is better than the other so every technique can be analyzed separately and the best technique according to the problem at hand can be used or can be altered to create hybrid technique suitable for the cause.
Planning software maintenance work is a key factor for a successful maintenance project and for better project scheduling, monitoring, and control. To this aim, effort estimation is a valuable asset to maintenance managers in planning maintenance activities and performing cost/benefits analysis. Software practitioners recognize the importance of realistic estimates of effort to the successful management of software projects. Having realistic estimates at an early stage in a project's life cycle allow project managers and software organizations to manage resources effectively. Prediction is a necessary part of an effective process, be it authoring, design, testing, or Web development as a whole. Maintenance projects may range from ordinary projects requiring simple activities of understanding, impact analysis and modifications, to extraordinary projects requiring complex interventions such as encapsulation, reuse, reengineering, migration, and retirement. Moreover, software costs are the result of a large number of parameters so any estimation or control technique must reflect a large number of complex and dynamic factors. This paper mainly covers the models related to Fault predictions well ahead of the execution so that it gives an insight to the managers to take appropriate decisions. Data about the defects found during software testing is recorded in software defect reports or bug reports. The data consists of defect information including defect number at various testing stages, complexity (of the defect), severity, information about the component to which the defect belongs, tester, and person fixing the defect. Reliability models mainly use data about the number of defects and its corresponding International Journal of Management (IJM) 131 time to predict the remaining number of defects. This research work proposes an empirical approach to systematically elucidate useful information from software defect reports by (1) employing a data exploration technique that analyzes relationships between software quality of different releases using appropriate statistics, and (2) constructing predictive models for forecasting time for fixing defects using existing machine learning and data mining techniques.
A general software defect-proneness prediction framework
Software Engineering, …, 2011
BACKGROUND-Predicting defect-prone software components is an economically important activity and so has received a good deal of attention. However, making sense of the many, and sometimes seemingly inconsistent, results is difficult. OBJECTIVE-We propose and evaluate a general framework for software defect prediction that supports 1) unbiased and 2) comprehensive comparison between competing prediction systems. METHOD-The framework is comprised of 1) scheme evaluation and 2) defect prediction components. The scheme evaluation analyzes the prediction performance of competing learning schemes for given historical data sets. The defect predictor builds models according to the evaluated learning scheme and predicts software defects with new data according to the constructed model. In order to demonstrate the performance of the proposed framework, we use both simulation and publicly available software defect data sets. RESULTS-The results show that we should choose different learning schemes for different data sets (i.e., no scheme dominates), that small details in conducting how evaluations are conducted can completely reverse findings, and last, that our proposed framework is more effective and less prone to bias than previous approaches. CONCLUSIONS-Failure to properly or fully evaluate a learning scheme can be misleading; however, these problems may be overcome by our proposed framework.
Survey on software defect prediction techniques
International Journal of Applied Science and Engineering, 2020
Recent advancements in technology have emerged the requirements of hardware and software applications. Along with this technical growth, software industries also have faced drastic growth in the demand of software for several applications. For any software industry, developing good quality software and maintaining its eminence for user end is considered as most important task for software industrial growth. In order to achieve this, software engineering plays an important role for software industries. Software applications are developed with the help of computer programming where codes are written for desired task. Generally, these codes contain some faulty instances which may lead to the buggy software development cause due to software defects. In the field of software engineering, software defect prediction is considered as most important task which can be used for maintaining the quality of software. Defect prediction results provide the list of defect-prone source code artefacts...
A Systematic Approach for Enhancing Software Defect Prediction Using Machine Learning
2023 International Conference on Next-Generation Computing, IoT and Machine Learning (NCIM)
In the modern world of software development, ensuring reliability and performance is of paramount importance. However, despite the best efforts from the developers, software defects can still emerge, causing frustration and wasted resources. Due to the numerous defects found during the software development process, researchers have developed numerous ways for defect prediction models. However, these models cut down the time and expense of development when problems in a concurrent software product are anticipated. Due to the increased amount of defects brought on by software complexity, manual defect detection can become an extremely time-consuming procedure. This encouraged researchers to create methods for the automatic detection of software defects. The study of this paper has shown that a combination of machine learning algorithms could be applied effectively for software defect prediction. Interestingly, the combination of Artificial Neural Network and Random Forest classifier has been performed with the mean accuracy of 91%, while the hyper-parameter optimization model classifier has been performed with the mean accuracy of 83%, 83%, 84%, 77% and 80% for Support Vector Machine, Random Forest, Logistic Regression, Naive Bayes Gaussian and Decision Tree, respectively. These findings have demonstrated the potential of Machine Learning in the area of software development.