Convolutional Neural Networks over Control Flow Graphs for Software Defect Prediction

Anh Viet Phan,Minh Le Nguyen,Lam Thu Bui
DOI: https://doi.org/10.48550/arXiv.1802.04986
2018-02-14
Abstract:Existing defects in software components is unavoidable and leads to not only a waste of time and money but also many serious consequences. To build predictive models, previous studies focus on manually extracting features or using tree representations of programs, and exploiting different machine learning algorithms. However, the performance of the models is not high since the existing features and tree structures often fail to capture the semantics of programs. To explore deeply programs' semantics, this paper proposes to leverage precise graphs representing program execution flows, and deep neural networks for automatically learning defect features. Firstly, control flow graphs are constructed from the assembly instructions obtained by compiling source code; we thereafter apply multi-view multi-layer directed graph-based convolutional neural networks (DGCNNs) to learn semantic features. The experiments on four real-world datasets show that our method significantly outperforms the baselines including several other deep learning approaches.
Software Engineering,Machine Learning,Neural and Evolutionary Computing
What problem does this paper attempt to address?