9:41
Edit trip
TRIP NAME
Lake weekend
DATES
Save trip
Can’t save. These dates overlap another trip — the very trip being edited.
● BUG 347 · ANGLERS’ LOG
UI bugs live between
the screen and the code.
Event callbacks, view state, and logic spread across the app — and the clues are on screen.
Repair benchmarks
barely include them.
Datasets like Defects4J lack bugs from UI-centric programs — so no one knew how repair tools fare.
Build the benchmark.
DroidFixBench: 96 Android bugs, each ready for repair tools.
fault localized to the statementcompilable buggy versioncorrect patchtwo GUI testsbug description
Hand it to five tools.
From templates and neural translation to LLM prompting and a coding agent.
Judge every patch.
Run the GUI tests on an emulator, then check plausible patches by hand.
bug 347 · patch from D4C
- if (trip.overlapsTrip((Trip) object))
+ if (object instanceof Trip && trip.overlapsTrip((Trip) object))
CORRECT
PLAUSIBLE
NOT A FIX
A comprehensive empirical study
How far are we?
50 real bugs · 23 apps46 synthetic bugs5 repair tools379 failures coded
Finding 1 · bugs fixed by at least one tool
Seeded bugs fall. Real ones don’t.
Synthetic bugsmutation-seeded
0/46
Real bugsfrom issue reports
0/50
Finding 2 · share of patches that are correct, on real bugs
The best tool: 12%.
Bars on a 0–100% scale
Finding 3 · why 379 sampled patches failed
They hallucinate the UI.
≈0%
of failures trace to UI-specific code
R.id.does_not_existGUI component IDs that don’t exist · 35 bugs
noSuchMethod()calls to methods that don’t exist · 37 bugs
NoSuchActivityactivities that don’t exist · 18 bugs
Automated Program Repair for UI-centric Android Bugs: How Far are We?
Junayed Mahmud · Sparsh Pandey · Nadeeshan De Silva · Atish Kumar Dipongkor · JingJing Wu · Oscar Chaparro · Mattia Fazzini · Kevin Moran
ISSTA 2026 · ACM SIGSOFT International Symposium on Software Testing and Analysis