## 3 Literature Review
### Data-Level Techniques  
Many researchers used popular data-level resampling techniques, such as ROS [16; 17; 18], RUS [19; 16], SMOTE [20; 21; 19] to handle the software defect imbalance issues. However, these techniques suffer from limitations that limit their capabilities in producing effective models to handle imbalanced defect datasets. In recent years, Deep Learning (DL) techniques have contributed to many advances in different domains. However, it was rarely used in the field of software defect prediction. [PERSON] et al. [PERSON] et al. (2020) decided to utilize the Variational Autoencoder (VAE) to resolve the imbalance issue in imbalanced software defect datasets and improve the prediction performance. Researchers used five classifiers (SVM, RF, DT, NB, and LR) to classify the modules. Results showed that using VAE improved the performance of software defect prediction in terms of precision, recall, F1 score, and accuracy.  
GANs can be considered as oversampling techniques because they can generate synthetic data similar to real data. It reduces the overfitting caused by the traditional oversampling approaches. [PERSON] et al. [PERSON] et al. (2019) applied GAN to balance the dataset and improve the performance of software defect prediction. GAN showed an improvement in terms of accuracy, precision, recall, and F1 scores. Furthermore, [PERSON] and [PERSON] [PERSON] and [PERSON] (2019) proposed an oversampling approach called GANSYN for imbalanced learning in the software aging prediction. GANSYN achieved a better performance than RUS, SMOTE, ADASYN, Voted Ensemble, and AdaBoost.  
GAN models suffer limitations such as mode-collapse and vanishing gradient. Different variants were proposed to overcome these limitations. [PERSON] et al. [PERSON] et al. (2019) evaluated the performance of GAN, CTGAN, and WGANGP in the field of software defect prediction. For classification, they employed five models (KNN, RF, DT, NB, and LR). To validate their results, they compared GAN methods with SMOTE, ADASYN, ROS, RUS, Borderline SMOTE, and Adaboost. In terms of precision, recall, F1-score, and AUC scores, they found that the performance of GAN methods outperformed traditional methods in handling the imbalance problem of software defect datasets. Moreover, it was shown that GAN methods yielded a comparable performance to AdaBoost.  
CWGANGP includes a conditional vector to force the generator to produce data with specified conditions. Hence, it can solve the class imbalance problem. [PERSON] et al. [PERSON] et al. (2019) used CWGANGP to oversample the dataset. It was compared with SMOTE, ADASYN, Bodredline-SMOTE, ROS, GAN, Conditional-GAN, and WGANGP. Results showed that CWGANGP outperformed the other approaches under all used metrics (F1-score, G-mean, and AUC). To compare the performance of VAE and vanilla GAN, [PERSON] et al. [PERSON] et al. (2020) conducted a study to evaluate the performance of VAE, vanilla GAN, and SMOTE in software defects prediction. After oversampling, they used four classifiers (RF, SVM, LR, and DT) to classify the modules on three NASA datasets. In terms of AUC, MCC, recall, and F-measure, they found that the performance of VAE is better than the performance of GAN and SMOTE. Moreover, the performance of GAN is better than SMOTE on some datasets.