Abstract
The large demand of mobile devices creates significant concerns about the quality of mobile applications (apps). Developers need to guarantee the quality of mobile apps before it is released to the market. There have been many approaches using different strategies to test the GUI of mobile apps. However, they still need improvement due to their limited effectiveness. In this article, we propose DinoDroid, an approach based on deep Q-networks to automate testing of Android apps. DinoDroid learns a behavior model from a set of existing apps and the learned model can be used to explore and generate tests for new apps. DinoDroid is able to capture the fine-grained details of GUI events (e.g., the content of GUI widgets) and use them as features that are fed into deep neural network, which acts as the agent to guide app exploration. DinoDroid automatically adapts the learned model during the exploration without the need of any modeling strategies or pre-defined rules. We conduct experiments on 64 open-source Android apps. The results showed that DinoDroid outperforms existing Android testing tools in terms of code coverage and bug detection.
Original language | English |
---|---|
Article number | 122 |
Journal | ACM Transactions on Software Engineering and Methodology |
Volume | 33 |
Issue number | 5 |
DOIs | |
State | Published - Jun 4 2024 |
Bibliographical note
Publisher Copyright:© 2024 Copyright held by the owner/author(s). Publication rights licensed to ACM.
Funding
This research is supported in part by the NSF grant CCF-2342355, CCF-1652149, CCF-2403617, CCF-2402103, and CCF-2246186.
Funders | Funder number |
---|---|
National Science Foundation Arctic Social Science Program | CCF-1652149, CCF-2402103, CCF-2246186, CCF-2342355, CCF-2403617 |
Keywords
- deep q-networks
- Mobile testing
- reinforcement learning
ASJC Scopus subject areas
- Software