
William G.J. Halfond
· Professor of Computer ScienceVerifiedUniversity of Southern California · Thomas Lord Department of Computer Science
Active 2005–2025
About
William G.J. Halfond is an associate professor in computer science at the University of Southern California. He received his Ph.D. in 2010 from the Georgia Institute of Technology, his master's degree from the same institution, and his bachelor's degree in computer science from the University of Virginia. His research is in software engineering, focusing on program analysis and software testing. His work aims to improve quality assurance for web applications, develop developer-oriented techniques to reduce the power consumption of smartphone mobile applications, and enhance software security. Halfond's research broadly concentrates on developing techniques that help developers improve the quality of their web and mobile applications. His group's efforts have emphasized areas such as energy consumption, user interface (UI) appearance, and security—areas of increasing importance. Specifically, his work on energy consumption involves creating techniques that enable developers to understand and modify their mobile apps' energy use, providing fine-grained insights that help save significant energy. His research on UI appearance focuses on more efficiently and accurately identifying errors in an application's UI, alongside developing various analysis techniques for mobile and web apps. Throughout his career, he has received several awards, including the ACM Distinguished Paper Award at the 2009 International Symposium on Software Testing and Analysis, and has been recognized with fellowships such as the Goizueta Foundation Fellowship and the Verizon Foundation Fellowship.
Research topics
- Computer Science
- World Wide Web
- Computer Security
- Software engineering
- Human–computer interaction
- Telecommunications
- Operating system
Selected publications
Automatic Action Space Specification for Deep Reinforcement Learning in Games via Program Analysis
2025-08-19
articleSenior authorReinforcement learning has numerous applications for the testing and analysis of video game content. However, deploying it in existing games is a challenging engineering effort, requiring suitable representations of states, actions, and rewards based on the game rules. We propose using the program analysis technique of symbolic execution on the game code to automatically determine a precise action model when deploying reinforcement learning in existing games. Our technique automatically computes appropriate discrete action spaces for games, including action masks indicating the validity of actions depending on the agent's current state. We conduct a comprehensive evaluation of the technique on a varied dataset of seven Unity games with the Proximal Policy Optimization (PPO) and Deep Q Learning (DQN) deep reinforcement learning approaches. The results show that the agents using the analysis significantly out-perform those using generic action spaces covering the input device, and perform on par with those using manually specified action spaces.
Automated Recognition of Buggy Behaviors from Mobile Bug Reports
Proceedings of the ACM on software engineering. · 2025-06-19 · 1 citations
articleOpen accessSenior authorBug report reproduction is a crucial but time-consuming task to be carried out during mobile app maintenance. To accelerate this process, researchers have developed automated techniques for reproducing mobile app bug reports. However, due to the lack of an effective mechanism to recognize different buggy behaviors described in the report, existing work is limited to reproducing crash bug reports, or requires developers to manually analyze execution traces to determine if a bug was successfully reproduced. To address this limitation, we introduce a novel technique to automatically identify and extract the buggy behavior from the bug report and detect it during the automated reproduction process. To accommodate various buggy behaviors of mobile app bugs, we conducted an empirical study and created a standardized representation for expressing the bug behavior identified from our study. Given a report, our approach first transforms the documented buggy behavior into this standardized representation, then matches it against real-time device and UI information during the reproduction to recognize the bug. Our empirical evaluation demonstrated that our approach achieved over 90% precision and recall in generating the standardized representation of buggy behaviors. It correctly identified bugs in 83% of the bug reports and enhanced existing reproduction techniques, allowing them to reproduce four times more bug reports.
An Empirical Study on Leveraging Images in Automated Bug Report Reproduction
2025-04-28 · 1 citations
articleAutomated bug reproduction is a challenging task, with existing tools typically relying on textual steps-to-reproduce, videos, or crash logs in bug reports as input. However, images provided in bug reports have been overlooked. To address this gap, this paper presents an empirical study investigating the necessity of including images as part of the input in automated bug reproduction. We examined the characteristics and patterns of images in bug reports, focusing on (1) the distribution and types of images (e.g., UI screenshots), (2) documentation patterns associated with images (e.g., accompanying text, annotations), and (3) the functional roles they served, particularly their contribution to reproducing bugs. Furthermore, we analyzed the impact of images on the performance of existing tools, identifying the reasons behind their influence and the ways in which they can be leveraged to improve bug reproduction. Our findings reveal several key insights that demonstrate the importance of images in supporting automated bug reproduction. Specifically, we identified six distinct functional roles that images serve in bug reports, each exhibiting unique patterns and specific contributions to the bug reproduction process. This study offers new insights into tool advancement and suggests promising directions for future research.
Mobile Bug Report Reproduction via Global Search on the App UI Model
Proceedings of the ACM on software engineering. · 2024-07-12 · 4 citations
articleSenior authorBug report reproduction is an important, but time-consuming task carried out during mobile app maintenance. To accelerate this task, current research has proposed automated reproduction techniques that rely on a guided dynamic exploration of the app to match bug report steps with UI events in a mobile app. However, these techniques struggle to find the correct match when the bug reports have missing or inaccurately described steps. To address these limitations, we propose a new bug report reproduction technique that uses an app’s UI model to perform a global search across all possible matches between steps and UI actions and identify the most likely match while accounting for the possibility of missing or inaccurate steps. To do this, our approach redefines the bug report reproduction process as a Markov model and finds the best paths through the model using a dynamic programming based technique. We conducted an empirical evaluation on 72 real-world bug reports. Our approach achieved a 94% reproduction rate on the total bug reports and a 93% reproduction rate on bug reports with missing steps, significantly outperforming the state-of-the-art approaches. Our approach was also more effective in finding the matches from the steps to UI events than the state-of-the-art approaches.
Automatically Detecting Reflow Accessibility Issues in Responsive Web Pages
2024-04-12 · 10 citations
articleOpen accessSenior authorMany web applications today use responsive design to adjust the view of web pages to match the screen size of end users. People with disabilities often use an alternative view either due to zooming on a desktop device to enlarge text or viewing within a smaller viewport when using assistive technologies. When web pages are not implemented to correctly adjust the page's content across different screen sizes, it can lead to both a loss of content and functionalities between the different versions. Recent studies show that these reflow accessibility issues are among the most prevalent modern web accessibility issues. In this paper, we present a novel automated technique to automatically detect reflow accessibility issues in web pages for keyboard users. The evaluation of our approach on real-world web pages demonstrated its effectiveness in detecting reflow accessibility issues, outperforming state-of-the-art techniques.
Feedback-Driven Automated Whole Bug Report Reproduction for Android Apps
2024-09-11 · 15 citations
preprintOpen accessIn software development, bug report reproduction is a challenging task. This paper introduces ReBL, a novel feedback-driven approach that leverages GPT-4, a large-scale language model (LLM), to automatically reproduce Android bug reports. Unlike traditional methods, ReBL bypasses the use of Step to Reproduce (S2R) entities. Instead, it leverages the entire textual bug report and employs innovative prompts to enhance GPT’s contextual reasoning. This approach is more flexible and context-aware than the traditional step-by-step entity matching approach, resulting in improved accuracy and effectiveness. In addition to handling crash reports, ReBL has the capability of handling non-crash functional bug reports. Our evaluation of 96 Android bug reports (73 crash and 23 non-crash) demonstrates that ReBL successfully reproduced 90.63% of these reports, averaging only 74.98 seconds per bug report. Additionally, ReBL outperformed three existing tools in both success rate and speed.
Zenodo (CERN European Organization for Nuclear Research) · 2023-05-16
paratextOpen accessSenior authorThis is the artifact of the paper Automatically Reproducing Android Bug Reports Using Natural Language Processing and Reinforcement Learning accepted by ISSTA 2023.
2023-07-12 · 13 citations
articleOpen accessSenior authorAs part of the process of resolving issues submitted by users via bug reports, Android developers attempt to reproduce and observe the crashes described by the bug reports. Due to the low-quality of bug reports and the complexity of modern apps, the reproduction process is non-trivial and time-consuming. Therefore, automatic approaches that can help reproduce Android bug reports are in great need. However, current approaches to help developers automatically reproduce bug reports are only able to handle limited forms of natural language text and struggle to successfully reproduce crashes for which the initial bug report had missing or imprecise steps. In this paper, we introduce a new fully automated approach to reproduce crashes from Android bug reports that addresses these limitations. Our approach accomplishes this by leveraging natural language processing techniques to more holistically and accurately analyze the natural language in Android bug reports and designing new techniques, based on reinforcement learning, to guide the search for successful reproducing steps. We conducted an empirical evaluation of our approach on 77 real world bug reports. Our approach achieved 67% precision and 77% recall in accurately extracting reproduction steps from bug reports, reproduced 74% of the total bug reports, and reproduced 64% of the bug reports that contained missing steps, significantly outperforming state of the art techniques.
A Component-Sensitive Static Analysis Based Approach for Modeling Intents in Android Apps
2023-10-01 · 2 citations
articleSenior authorThe Android Inter Component Communication (ICC) model plays an important role in providing users with a wide range of features both within and across apps. Accurate information about ICCs is important for a range of program analysis-based security and verification techniques. These techniques use static analysis to infer links between Android components in bundles of apps and then identify potential security problems with these communications. However, existing ICC analyses have limitations in terms of their accuracy when Intents are constructed using ICC information. To address these limitations, we introduce a multi-level component-sensitive static analysis technique to efficiently and accurately compute ICC information in these scenarios. We compared our approach with state of the art ICC analysis techniques and found that our approach is more accurate and has a faster execution time.
arXiv (Cornell University) · 2023-01-18
preprintOpen accessSenior authorAs part of the process of resolving issues submitted by users via bug reports, Android developers attempt to reproduce and observe the failures described by the bug report. Due to the low-quality of bug reports and the complexity of modern apps, the reproduction process is non-trivial and time-consuming. Therefore, automatic approaches that can help reproduce Android bug reports are in great need. However, current approaches to help developers automatically reproduce bug reports are only able to handle limited forms of natural language text and struggle to successfully reproduce failures for which the initial bug report had missing or imprecise steps. In this paper, we introduce a new fully automated Android bug report reproduction approach that addresses these limitations. Our approach accomplishes this by leveraging natural language process techniques to more holistically and accurately analyze the natural language in Android bug reports and designing new techniques, based on reinforcement learning, to guide the search for successful reproducing steps. We conducted an empirical evaluation of our approach on 77 real world bug reports. Our approach achieved 67% precision and 77% recall in accurately extracting reproduction steps from bug reports, and reproduced 74% of the bug reports, significantly outperforming state of the art techniques.
Recent grants
SHF: Small: Detecting and Repairing Presentation Failures in Web Applications
NSF · $375k · 2015–2020
SHF: Small: Detecting and Repairing Accessibility Failures in Web Applications
NSF · $496k · 2020–2025
SHF: Small: Helping Developers Improve the Energy Consumption of Smartphone Applications
NSF · $500k · 2013–2018
NSF · $257k · 2016–2020
Frequent coauthors
- 15 shared
Alessandro Orso
Georgia Institute of Technology
- 14 shared
Ding Li
South China University of Technology
- 13 shared
Sonal Mahajan
Savitribai Phule Pune University
- 11 shared
Ramesh Govindan
University of Southern California
- 10 shared
Ali S. Alotaibi
University of Southern California
- 8 shared
Paul Chiou
University of Southern California
- 8 shared
Abdulmajeed Alameer
King Saud University
- 7 shared
Mian Wan
University of Southern California
Education
- 1991
Ph.D., Computer Science
University of Southern California
- 1986
M.S., Computer Science
University of Southern California
- 1984
B.S., Computer Science
University of Southern California
Awards & honors
- ACM Distinguished Paper Award (2009)
- International Conference on Software Testing Best Presentati…
- Goizueta Foundation Fellowship (2009)
- Shackelford Fellow (2005)
- Verizon Foundation Fellowship (2003)
- Resume-aware match score
- Save to shortlist
- AI-drafted outreach
See your match with William G.J. Halfond
PhdFit ranks faculty by your research interests, methods, and publications — grounded in their actual work, not templates.
- Free to start
- No credit card
- 30-second signup