Date Awarded

2024

Document Type

Dissertation

Degree Name

Doctor of Philosophy (Ph.D.)

Department

Computer Science

Advisor

Oscar Chaparro

Committee Member

Michael Lewis

Committee Member

Denys Poshyvanyk

Committee Member

Weizhen Mao

Committee Member

Kevin Moran

Abstract

Bug report management is crucial yet challenging process that affects the efficiency of software development process. It involves reporting, triaging, detecting duplicates, assigning, localizing, fixing bugs, and thorough verification. The high volume and variety of bug reports complicate these tasks, highlighting the need for innovative solutions to improve the process and boost development efficiency. This dissertation explores the potential of automating the bug management process to optimize the effectiveness of software development and maintenance. It focuses on three key stages of bug management: reporting, assignment, and localization, presenting four innovative solutions for these phases. First, it discusses the challenges faced by developers due to poor-quality bug reports on GitHub, often lacking crucial details. To address this, the dissertation leverages machine learning to automatically analyze user-written bug reports, identifying key elements of the software system. It aims to automate bug report analysis and inform reporters to provide the missing information timely, thereby enhancing the quality of bug reports and aiding developers in bug triage and resolution. Second, the dissertation proposes an interactive bug reporting system for end-users, implemented as a task-oriented chatbot named \burt. This system guides users through the bug reporting process, offering real-time feedback on each element of a bug description and interactive suggestions to bridge the knowledge gap between end-users and developers. It is designed to make bug reporting more engaging and user-friendly while ensuring the generation of high-quality, informative reports. Third, the dissertation investigates the efficacy of automated methods for recommending developers for bug reports in open-source software projects. It reveals that these methods do not perform consistently across different reports, leading to a proposal for using the most effective method for each report, assessed through machine learning. The findings suggest a gap in the understanding of real-world bug assignment processes and call for further research. Lastly, the dissertation explores different deep learning models that can automatically localize buggy UI screens and components from the bug descriptions of mobile apps. This approach is critical for understanding, diagnosing, and resolving underlying bugs in GUI-centric software applications. Together, these contributions present a comprehensive strategy for enhancing the automated bug report management process, promising significant improvements to the efficiency and effectiveness of the software development process.

DOI

https://dx.doi.org/10.21220/s2-wk2w-hn09

Rights

© The Author

Share

COinS