Effectively Finding ICC-related Bugs in Android Apps via Reinforcement Learning

  • Hui Guo
  • , Ting Su*
  • , Xiaoqiang Liu*
  • , Siyi Gu
  • , Jingling Sun
  • *Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

6 Scopus citations

Abstract

Inter-component communication (ICC) is a key mechanism in Android. It utilizes intents to achieve the communications between different components in the apps. Thus, the successful execution of ICCs (named ICC calls) is fundamental to the app operations. However, existing testing tools for Android seldom explicitly consider these ICC calls, which may fail to find those ICC-related bugs. To this end, we propose a novel ICC-guided exploration strategy to effectively find the ICC-related bugs. Our idea is that, we can (1) build an ICC call graph from the app under test, and (2) use this graph to guide the exploration toward exercising the ICC calls. To achieve this idea, we design this ICC-guided exploration strategy based on Q-learning, a classic reinforcement learning algorithm. Specifically, the reward function explicitly considers the number of explored intents, the number of promising-to-explore intents and the exploration order of explored intents to improve testing effectiveness. Moreover, to build a more complete ICC call graph, we design a graph enhancement exploration strategy also based on Q-learning to complement the call graph construction via static analysis. We have implemented our idea as an automated testing tool IccDroid. The evaluation on 28 real-word Android apps shows that IccDroid can effectively find the most number of ICC-related bugs within the same testing time, compared to existing testing tools - the bugs found by IccDroid are 1.7~2.7 times more than the others. So far, IccDroid has found 13 previously unknown ICC-related bugs, all of which have been confirmed by the app developers and five have already been fixed.

Original languageEnglish
Title of host publicationProceedings - 2023 IEEE 34th International Symposium on Software Reliability Engineering, ISSRE 2023
PublisherIEEE Computer Society
Pages403-414
Number of pages12
ISBN (Electronic)9798350315943
DOIs
StatePublished - 2023
Event34th IEEE International Symposium on Software Reliability Engineering, ISSRE 2023 - Florence, Italy
Duration: 9 Oct 202312 Oct 2023

Publication series

NameProceedings - International Symposium on Software Reliability Engineering, ISSRE
ISSN (Print)1071-9458

Conference

Conference34th IEEE International Symposium on Software Reliability Engineering, ISSRE 2023
Country/TerritoryItaly
CityFlorence
Period9/10/2312/10/23

Keywords

  • Android apps testing
  • ICC related bugs
  • Reinforcement Learning

Fingerprint

Dive into the research topics of 'Effectively Finding ICC-related Bugs in Android Apps via Reinforcement Learning'. Together they form a unique fingerprint.

Cite this