Software defect prediction via LSTM

Software quality plays an important role in the software lifecycle. Traditional software defect prediction approaches mainly focused on using hand-crafted features to detect defects. However, like human languages, programming languages contain rich semantic and structural information, and the cause...

Full description

Saved in:
Bibliographic Details
Published in:IET software Vol. 14; no. 4; pp. 443 - 450
Main Authors: Deng, Jiehan, Lu, Lu, Qiu, Shaojian
Format: Journal Article
Language:English
Published: The Institution of Engineering and Technology 01.08.2020
Subjects:
ISSN:1751-8806, 1751-8814, 1751-8814
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Software quality plays an important role in the software lifecycle. Traditional software defect prediction approaches mainly focused on using hand-crafted features to detect defects. However, like human languages, programming languages contain rich semantic and structural information, and the cause of defective code is closely related to its context. Failing to catch this significant information, the performance of traditional approaches is far from satisfactory. In this study, the authors leveraged a long short-term memory (LSTM) network to automatically learn the semantic and contextual features from the source code. Specifically, they first extract the program's Abstract Syntax Trees (ASTs), which is made up of AST nodes, and then evaluate what and how much information they can preserve for several node types. They traverse the AST of each file and fed them into the LSTM network to automatically the semantic and contextual features of the program, which is then used to determine whether the file is defective. Experimental results on several opensource projects showed that the proposed LSTM method is superior to the state-of-the-art methods.
ISSN:1751-8806
1751-8814
1751-8814
DOI:10.1049/iet-sen.2019.0149