Keywords

Bug Reports, Bug Localization, Program Repair

Abstract

Given the rising popularity of desktop and mobile applications and their daily use, software quality has never been more important. Graphical User Interface (GUI)-based software is one of the most common types of software used in today's world. However, building GUI or UI-based software is challenging because it requires addressing unique challenges, such as connecting functionality to display logic in the available GUI components, testing complicated UI features, and leveraging difficult-to-use programming tools. To address these challenges, programmers need to reason about an abstraction gap across three different modalities of information: natural language, code, and the GUI itself. However, due to the challenges in navigating this abstraction gap and connecting information across these three modalities, programmers often introduce bugs in UI-centric programs, which can result in software failures.

Bug reports are a widely adopted approach to documenting and describing bugs. Researchers describe observed behavior, expected behavior, and steps to reproduce as the crucial components necessary to understand, locate, and fix bugs. Unfortunately, most bug reports often miss these crucial components, leading to difficulties in bug reproduction. In addition, identifying bugs in source code is difficult because there is often a notable semantic gap between the information contained in bug reports and identifiers or natural language contained within source code files. Moreover, debugging and providing fixes for bugs is challenging because UI-related bugs in code often contain complicated event callbacks and cross-component interactions.

This research aims to (i) automatically assess the quality of bug reports, (ii) identify bugs in code, and (iii) provide fixes to bugs. Firstly, to automatically assess the quality of bug reports, we propose a new technique called AstroBR, which leverages the language understanding capabilities of LLMs to identify and extract the steps to reproduce (S2Rs) from bug reports and match them to GUI interactions in program state model gleaned from dynamic analysis. Secondly, to identify bugs in source code, we conduct a comprehensive empirical study that augments four baseline text-retrieval techniques for bug localization with GUI interaction information from a reproduction scenario to (i) filter out potentially irrelevant files, (ii) boost potentially relevant files, and (iii) reformulate text-retrieval queries. Finally, to generate fixes for bugs used in code, we investigate the effectiveness of existing APR techniques in a novel benchmark that we create called DroidFixBench to fix bugs in UI code. We conduct a comprehensive empirical study with five existing program repair techniques to generate patches that fix UI bugs.

Completion Date

2026

Semester

Spring

Committee Chair

Kevin Moran

Degree

Doctor of Philosophy (Ph.D.)

College

College of Engineering and Computer Science

Department

Computer Science

Format

PDF

Document Type

Dissertation

Identifier

DP0053136

Release Date

5-15-2027

Available for download on Saturday, May 15, 2027

Share

COinS
 

Accessibility Statement

This item was created or digitized prior to April 24, 2027, or is a reproduction of legacy media created before that date. It is preserved in its original, unmodified state specifically for research, reference, or historical recordkeeping. In accordance with the ADA Title II Final Rule, the University Libraries provides accessible versions of archival materials upon request. To request an accommodation for this item, please submit an accessibility request form.