🤖 AI Summary
This work addresses the prevalent issue of settings-related UI display (SUD) defects in Android applications, which often arise from inadequate adaptation to diverse system configurations and are frequently missed by existing detection approaches. The study systematically characterizes typical SUD defect patterns for the first time and presents SUDFinder, an automated detection tool based on pattern matching. By injecting a test Activity that visually renders the UI XML layout of each screen under varied system settings, SUDFinder significantly enhances detection coverage and accuracy. Evaluated on 29 popular F-Droid applications, the tool uncovered 98 previously unknown SUD defects with a precision of 0.76; of these, 67 were confirmed by developers and 37 have already been fixed, substantially outperforming state-of-the-art methods.
📝 Abstract
Android provides a wide range of system settings that allow users to control the runtime behaviors of apps, such as screen rotation and UI display. However, setting-related bugs occur when developers do not fully align their apps with the extensive range of system settings that users can define. These bugs can commonly affect apps' UI, causing setting-related UI display (SUD) bugs that negatively impact user experience. While existing research has explored automated detection of SUD bugs, these approaches often suffer from false negatives. This limitation stems from an incomplete understanding of how app components should adapt UI elements to diverse system settings. To address this gap, we conducted an empirical study to identify common patterns of unexpected setting adaptations that result in SUD bugs. These patterns then served as the test oracle for our proposed automated tool, SUDFinder. To ensure the test coverage, SUDFinder injects a test activity to visually render the XML configuration files of each UI page. We evaluated SUDFinder on 29 popular, open-source apps on F-Droid and found that it effectively identifies 98 previously unknown SUD bugs, achieving a precision of 0.76. So far, 67 have been confirmed and 37 have been fixed by the app developers.