Reinforcement learning for Android GUI testing

This paper presents a reinforcement learning approach to automated GUI testing of Android apps. We use a test generation algorithm based on Q-learning to systematically select events and explore the GUI of an application under test without requiring a preexisting abstract model. We empirically evaluate the algorithm on eight Android applications and find that the proposed approach generates test suites that achieve between 3.31% to 18.83% better block-level code coverage than random test generation.

[1]  Yang Liu,et al.  Guided, stochastic model-based GUI testing of Android apps , 2017, ESEC/SIGSOFT FSE.

[2]  Doo-Hwan Bae,et al.  Automated model-based Android GUI testing using multi-level GUI comparison criteria , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

[3]  María-del-Mar Gallardo,et al.  Using Model Checking to Generate Test Cases for Android Applications , 2015, MBT.

[4]  Hui Ye,et al.  DroidFuzzer: Fuzzing the Android Apps with Intent-Filter Tag , 2013, MoMM '13.

[5]  Porfirio Tramontana,et al.  Using GUI ripping for automated testing of Android applications , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[6]  Lionel C. Briand,et al.  A practical guide for using statistical tests to assess randomized algorithms in software engineering , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[7]  Dmitry Nurmuradov,et al.  Combinatorial-based event sequence testing of Android applications , 2018, Inf. Softw. Technol..

[8]  吉田 則裕,et al.  Android Open Source Projectを対象としたパッチレビュー活動の調査 , 2012 .

[9]  Santo Carino,et al.  Dynamically Testing Graphical User Interfaces , 2016 .

[10]  Iulian Neamtiu,et al.  Automating GUI testing for Android applications , 2011, AST '11.

[11]  Marco Wiering,et al.  Reinforcement Learning and Markov Decision Processes , 2012, Reinforcement Learning.

[12]  Tariq M. King,et al.  Randomized Event Sequence Generation Strategies for Automated Testing of Android Apps , 2018 .

[13]  David Lo,et al.  Understanding the Test Automation Culture of App Developers , 2015, 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST).

[14]  Richard S. Sutton,et al.  Reinforcement Learning: An Introduction , 1998, IEEE Trans. Neural Networks.

[15]  Mayur Naik,et al.  Dynodroid: an input generation system for Android apps , 2013, ESEC/FSE 2013.

[16]  Tanja E. J. Vos,et al.  User Interface Level Testing with TESTAR; What about More Sophisticated Action Specification and Selection? , 2014, SATToSE.

[17]  L. V. Haoyin,et al.  Automatic android application GUI testing—A random walk approach , 2017, 2017 International Conference on Wireless Communications, Signal Processing and Networking (WiSPNET).

[18]  George C. Necula,et al.  Guided GUI testing of android apps with minimal restart and approximate learning , 2013, OOPSLA.

[19]  Fabio Massacci,et al.  Towards Black Box Testing of Android Apps , 2015, 2015 10th International Conference on Availability, Reliability and Security.

[20]  Mika Katara,et al.  Experiences of System-Level Model-Based GUI Testing of an Android Application , 2011, 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation.

[21]  Gregg Rothermel,et al.  Comparing model-based and dynamic event-extraction based GUI testing techniques: An empirical study , 2014, J. Syst. Softw..

[22]  Jian Lu,et al.  AimDroid: Activity-Insulated Multi-level Automated Testing for Android Applications , 2017, 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[23]  Leonardo Mariani,et al.  Automatic testing of GUI‐based applications , 2014, Softw. Test. Verification Reliab..