# A Deep Ensemble Learning Method for Effort-Aware Just-In-Time Defect Prediction
## 2 Literature Review  
As discussed earlier, the effort-aware JIT defect prediction ranks the source code based on the probability of defects and the effort to examine such variations. Effective and efficient defect prediction and detection algorithms help to find the defects accurately and in less time with small effort. Such effort-aware models often help to allocate the software quality assurance tasks like code reviews and testing. In the domain of defect prediction, there are works available which utilize the traditional techniques of feature selections alongside the newer methodologies. In the traditional works, [PERSON] et al. [8] proposed the implementation of linear discriminant analysis in order to predict the defect in the source code of software. Meanwhile, [PERSON] et al. [9] exploited the power of decision trees to solve the problem. Similarly [PERSON] et al. [10] shifted the focus towards solving the problem by utilization of an SVM. However, the results were inaccurate with the excess amounts of false prediction and low accuracy. In the meantime, [PERSON] et al. [4] introduced the concept of JIT based prediction model for the better error prediction and detection mechanism. The JIT was also coined by the [PERSON] et al. [6] who put forward a method of checking the error based on a raw metric which not only predicts 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 lacked the results in terms of accuracy and amounts of false predictions. Similarly, [PERSON] et al. (2019) proposed a deep learning approach for the effort-aware JIT defect prediction. They used neural network-based techniques for the useful feature selection. They used ten numeric metrics of code changes and fed them to neural network to predict the presence of a bug in the code change, under review. They ranked the code changes according to the benefit cost ratio, which is calculated beforehand by diving the likelihood of each code change by its size. This technique provided the comparable result, but calculation overdose and complexity of the memory made it impossible to use in real-time environment. [PERSON] et al. (2019) stated that many unsupervised effort-aware JIT prediction models perform better than the state-of-the-art supervisor modes. They used only prediction models that have a good scalability and low application cost (i.e., metrics modelling cost and collection cost). They put forward the idea of using the unsupervised learning technique and highlighted that when building the prediction models, they did not need defected data for unsupervised model and, as a consequence, incur a low building cost and a high application range ([PERSON] et al., 2019). Therefore, it would be more fitting for users to use unsupervised models in effort-aware JIT defect prediction, especially when defect-inducing changes can be predicted well. In general, unsupervised models aggregate similar data-points and perform the modeling. Thus, the model has to develop and train effectively to automatically identify on its own to figure out information. In addition, this model primarily deals with the unlabeled data. Their assumption was quite true, as the unsupervised methodology provided good performance without extra cost but the false prediction error was not resolved. The unsupervised techniques also introduced extra classes, which can neither be considered as error nor as unharmed cases. There are many defect prediction models built with the historical metrics as well. Many studies have targeted coarse-grained (file and packages level) prediction. [PERSON] et al. (2019) stated that fine-grained prediction is challenging because it requires method level histories of existing version control systems.