  Software Defect Prediction aims at predicting which software modules are the
most probable to contain defects. The idea behind this approach is to save time
during the development process by helping find bugs early. Defect Prediction
models are based on historical data. Specifically, one can use data collected
from past software distributions, or Versions, of the same target application
under analysis. Defect Prediction based on past versions is called Cross
Version Defect Prediction (CVDP). Traditionally, Static Code Metrics are used
to predict defects. In this work, we use the Class Dependency Network (CDN) as
another predictor for defects, combined with static code metrics. CDN data
contains structural information about the target application being analyzed.
Usually, CDN data is analyzed using different handcrafted network measures,
like Social Network metrics. Our approach uses network embedding techniques to
leverage CDN information without having to build the metrics manually. In order
to use the embeddings between versions, we incorporate different embedding
alignment techniques. To evaluate our approach, we performed experiments on 24
software release pairs and compared it against several benchmark methods. In
these experiments, we analyzed the performance of two different graph embedding
techniques, three anchor selection approaches, and two alignment techniques. We
also built a meta-model based on two different embeddings and achieved a
statistically significant improvement in AUC of 4.7% (p < 0.002) over the
baseline method.
