DinoDroid: Testing Android Apps Using Deep Q-Networks

Yu Zhao, Brent Harrison, Tingting Yu

Research output: Contribution to journalArticlepeer-review

1 Scopus citations

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 languageEnglish
Article number122
JournalACM Transactions on Software Engineering and Methodology
Volume33
Issue number5
DOIs
StatePublished - 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.

FundersFunder number
National Science Foundation Arctic Social Science ProgramCCF-1652149, CCF-2402103, CCF-2246186, CCF-2342355, CCF-2403617

    Keywords

    • deep q-networks
    • Mobile testing
    • reinforcement learning

    ASJC Scopus subject areas

    • Software

    Fingerprint

    Dive into the research topics of 'DinoDroid: Testing Android Apps Using Deep Q-Networks'. Together they form a unique fingerprint.

    Cite this