๐ค AI Summary
This work addresses the challenge of detecting data manipulation errors (DMEs) in Android applications, which are difficult for existing automated testing tools to uncover due to their dependence on specific UI interaction sequences and manifestation as logical faults. To tackle this, the authors propose LDMDroid, the first automated testing framework that integrates large language models (LLMs), state-aware UI exploration, and visual verification. LDMDroid leverages a state-aware mechanism to guide the LLM in generating high-coverage UI event sequences that effectively trigger data manipulation functionalities, while employing visual features to detect changes in data statesโenabling precise, script-free error identification. Evaluation on 24 real-world apps demonstrates that LDMDroid significantly improves functional triggering success rates and uncovers 17 previously unknown bugs, 14 of which have been confirmed by developers and 11 already fixed.
๐ Abstract
Android apps rely heavily on Data Manipulation Functionalities (DMFs) for handling app-specific data through CRUDS operations, making their correctness vital for reliability. However, detecting Data Manipulation Errors (DMEs) is challenging due to their dependence on specific UI interaction sequences and manifestation as logic bugs. Existing automated UI testing tools face two primary challenges: insufficient UI path coverage for adequate DMF triggering and reliance on manually written test scripts. To address these issues, we propose an automated approach using Large Language Models (LLMs) for DME detection. We developed LDMDroid, an automated UI testing framework for Android apps. LDMDroid enhances DMF triggering success by guiding LLMs through a state-aware process for generating UI event sequences. It also uses visual features to identify changes in data states, improving DME verification accuracy. We evaluated LDMDroid on 24 real-world Android apps, demonstrating improved DMF triggering success rates compared to baselines. LDMDroid discovered 17 unique bugs, with 14 confirmed by developers and 11 fixed. The tool is publicly available at https://github.com/runnnnnner200/LDMDroid.