Document Type
Dissertation
Date of Award
8-31-2023
Degree Name
Doctor of Philosophy in Information Systems - (Ph.D.)
Department
Informatics
First Advisor
Michael J. Lee
Second Advisor
Iulian Neamtiu
Third Advisor
Tomer Weiss
Fourth Advisor
Hai Nhat Phan
Fifth Advisor
Tien N. Nguyen
Abstract
Software has an integral role in modern life; hence software bugs, which undermine software quality and reliability, have substantial societal and economic implications. The advent of machine learning and deep learning in software engineering has led to major advances in bug detection and fixing approaches, yet they fall short of desired precision and recall. This shortfall arises from the absence of a 'bridge,' known as learning code representations, that can transform information from source code into a suitable representation for effective processing via machine and deep learning.
This dissertation builds such a bridge. Specifically, it presents solutions for effectively learning code representations using four distinct methods?context-based, testing results-based, tree-based, and graph-based?thus improving bug detection and fixing approaches, as well as providing developers insight into the foundational reasoning. The experimental results demonstrate that using learning code representations can significantly enhance explainable bug detection and fixing, showcasing the practicability and meaningfulness of the approaches formulated in this dissertation toward improving software quality and reliability.
Recommended Citation
Li, Yi, "Learning representations for effective and explainable software bug detection and fixing" (2023). Dissertations. 1681.
https://digitalcommons.njit.edu/dissertations/1681
Included in
Artificial Intelligence and Robotics Commons, Information Security Commons, Software Engineering Commons