# A Deep Ensemble Learning Method for Effort-Aware Just-In-Time Defect Prediction
## 1 Introduction  
Reducing the defects and number of failures in a software product is an important goal for software engineers. This is done in order to achieve maximum performance, build the trust of user and enhance the overall quality of the product [1]. During the life cycle of a product, a software goes through several feature changes, quality iterations and reassembling. Ideally, all these changes are perfectly merged, should cause no defect and are free of error. However, technically these changes sometimes induce the defect in an already working product, known as defect inducing changes. So, a \"defect-inducing-change\" can be described as a type of software change (single commit or multiple iterations in a specific period of time), which may cause one or numerous faults or defects in the software's source code [2]. The defects induced by changes are often hard to track, difficult to resolve and cause issues for developers also. This problem led the research community to come up with some techniques identify and predict the upcoming possible defects in software so the conflict can be resolved in a timely manner and the debugging effort can be saved. Since then, a lot of researchers introduced the techniques to predict the possible defects. These techniques are traditional (module level at module, e.g., package, file, or class) as well as current techniques called just-in-time (JIT) prediction [3]. After the introduction of effort aware JIT prediction by [PERSON] et al. [4], it became a highly studied model as it consisted of a better error prediction and detection mechanism. The authors used numerous change metrics for the calculation of the probability of a fact that \"a certain change may or may not induce the defect\", instead of going through the lines of codes. The JIT defect prediction method has major practical value when compared with conventional defect predictions at a module level [5]. The JIT was also coined by the [PERSON] et al. [6] who putforward a method of checking the error based on raw metric, which not only predicted the error from the line of code under inspection, but also highlights the latent defect, which can be detected at the check-in time, unlike other effort-aware detection methods [7]. Although these methods were game changing in the dimension of defect prediction, they lack the results in terms of accuracy and massive false prediction. In addition, these methods failed to reduce the tedious task of finding the author of the code, as many people are involved in each module and inspecting the code while the change details are still being investigated. As described earlier, there is much work available on the JIT effort aware system by using the traditional file, package or method level for the defect prediction [8; 9; 10] as well as supervised machine learning methods and unsupervised learning methods. Still, there is a huge gap in accuracy, and false prediction. Therefore, it is necessary to have state-of-the-art supervised, unsupervised or deep learning methods that can reduce the accuracy gap and can provide efficient predictions, which are precise and timely [11]. Hence, the basic objective of this work is to cope with the challenges of JIT prediction, and propose a technique, which is highly efficient in terms of results and preciseness. In this paper, we proposed a novel methodology for the prediction of defects using a state-of-the-art fusion approach of deep learning method with the Rainbow Reinforcement Strategy, which can reduce the error level in accuracy and avoid false prediction as the data grows. We have provided following contribution in the domain of effort aware JIT prediction:  
* We have provided a state-of-art fusion methodology for effort aware JIT prediction of defects, which combines the deep neural network, random forest and XGBoost classifier. * The proposed method has provided efficient results on a publicly available standard dataset.