Loading...
Mole: Efficient Crash Reproduction in Android Applications with Enforcing Necessary UI Events
Masoudian, M ; Sharif University of Technology | 2024
43
Viewed
- Type of Document: Article
- DOI: 10.1109/TSE.2024.3428543
- Publisher: 2024
- Abstract:
- To improve the quality of Android apps, developers use automated debugging and testing solutions to determine whether the previously found crashes are reproducible. However, existing GUI fuzzing solutions for Android apps struggle to reproduce crashes efficiently based solely on a crash stack trace. This trace provides the location in the app where the crash occurs. GUI fuzzing solutions currently in use rely on heuristics to generate UI events. Unfortunately, these events often do not align with the investigation of an app's UI event space to reach a specific location of code. Hence, they generate numerous events unrelated to the crash, leading to an event explosion. To address this issue, a precise static UI model of widgets and screens can greatly enhance the efficiency of a fuzzing tool in its search. Building such a model requires considering all possible combinations of event sequences on widgets since the execution order of events is not statically determined. However, this approach presents scalability challenges in complex apps with several widgets. In this paper, we propose a directed-based fuzzing solution to reduce an app's event domain to the necessary ones to trigger a crash. Our insight is that the dependencies between widgets in their visual presentation and attribute states provide valuable information in precisely identifying events that trigger a crash. We propose an attribute-sensitive reachability analysis (ASRA) to track dependent widgets in reachable paths to the crash point and distinguish between events in terms of their relevancy to be generated in the crash reproduction process. With instrumentation, we inject code to prune irrelevant events, reducing the event domain to search at run time. We used four famous fuzzing tools, Monkey, Ape, Stoat, and FastBot2, to assess the impact of our solution in decreasing the crash reproduction time and increasing the possibility of reproducing a crash. Our results show that the success ratio of reproducing a crash has increased for one-fourth of crashes. In addition, the average reproduction time of a crash becomes at least 2x faster. Wilcoxon Mann-Whitney test shows this enhancement is significant when our tool is used compared to baseline and insensitive reachability analysis. © 1976-2012 IEEE
- Keywords:
- Android fuzzing ; Android (operating system) ; Cell proliferation ; Codes (symbols) ; Program debugging ; Android apps ; Bug reproducing ; Code ; Computer crashes ; Crash stack trace ; Directed fuzzing ; Fuzzing ; Layout ; Widget dependency ; Graphical user interfaces
- Source: IEEE Transactions on Software Engineering ; Volume 50, Issue 8 , 2024 , Pages 2200-2218 ; 00985589 (ISSN)
- URL: https://ieeexplore.ieee.org/document/10599338
