Identifying Software Defects Using Neural Graph Classifiers

Public Deposited
Resource Type
Creator
Abstract
  • Static analysis tools are commonly used to assist with program verification. Most existing tools, however, identify defects using a predefined repertoire of defect specifications. These repertoires are rarely extended by users due to the effort and complexity involved in producing new specifications.I propose a supervised approach for learning defective code patterns directly from coarsely labelled examples, allowing users to produce new defect classifiers with minimal effort. This approach represents a program as a directed multi-graph modelling operations and their dependencies, and aims to identify defects caused by incorrect, or missing, dependencies between operations. Given this representation, the task of identifying these defects can be seen as identifying specific partial subgraphs.The proposed approach is evaluated against several open source projects and test suites targeting the Java virtual machine. The proposed approach performs well against an adapted subset of the Juliet test suite, and demonstrates a modest ability to transfer to unseen natural code.

Subject
Language
Publisher
Thesis Degree Level
Thesis Degree Name
Thesis Degree Discipline
Identifier
Rights Notes
  • Copyright © 2019 the author(s). Theses may be used for non-commercial research, educational, or related academic purposes only. Such uses include personal study, research, scholarship, and teaching. Theses may only be shared by linking to Carleton University Institutional Repository and no part may be used without proper attribution to the author. No part may be used for commercial purposes directly or indirectly via a for-profit platform; no adaptation or derivative works are permitted without consent from the copyright owner.

Date Created
  • 2019

Relations

In Collection:

Items