Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3597503.3639161acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Practical Non-Intrusive GUI Exploration Testing with Visual-based Robotic Arms

Published: 12 April 2024 Publication History

Abstract

Graphical User Interface (GUI) testing has been a significant topic in the software engineering community. Most existing GUI testing frameworks are intrusive and can only support some specific platforms, which are quite limited. With the development of distinct scenarios, diverse embedded systems or customized operating systems on different devices do not support existing intrusive GUI testing frameworks. Some approaches adopt robotic arms to replace the interface invoking of mobile apps under test and use computer vision technologies to identify GUI elements. However, some challenges remain unsolved with such approaches. First, existing approaches assume that GUI screens are fixed so that they cannot be adapted to diverse systems with different screen conditions. Second, existing approaches use XY-plane robotic arm system, which cannot flexibly simulate human testing operations. Third, existing approaches ignore the compatibility bugs of apps and only focus on the crash bugs. To sum up, a more practical approach is required for the non-intrusive scenario.
In order to solve the remaining challenges, we propose a practical non-intrusive GUI testing framework with visual-based robotic arms, namely RoboTest. RoboTest integrates a set of novel GUI screen and widget detection algorithm that is adaptive to detecting screens of different sizes and then to extracting GUI widgets from the detected screens. Then, a complete set of widely-used testing operations are applied with a 4-DOF robotic arm, which can more effectively and flexibly simulate human testing operations. During the app exploration, RoboTest integrates the specially designed Principle of Proximity-guided (PoP-guided) exploration strategy, which chooses close widgets of the previous operation targets to reduce the robotic arm movement overhead and improve exploration efficiency. Moreover, RoboTest can effectively detect some compatibility bugs beyond crash bugs with a GUI comparison on different devices of the same test operations. We evaluate RoboTest with 20 real-world mobile apps, together with a case study on a representative industrial embedded system. The results show that RoboTest can effectively, efficiently, and generally explore the AUT to find bugs and reduce app exploration time overhead from the robotic arm movement.

References

[1]
Kabir S Said, Liming Nie, Adekunle A Ajibode, and Xueyi Zhou. Gui testing for mobile applications: objectives, approaches and challenges. In 12th Asia-Pacific Symposium on Internetware, pages 51--60, 2020.
[2]
Pingfan Kong, Li Li, Jun Gao, Kui Liu, Tegawendé F Bissyandé, and Jacques Klein. Automated testing of android apps: A systematic literature review. IEEE Transactions on Reliability, 68(1):45--66, 2018.
[3]
Shengcheng Yu. Crowdsourced report generation via bug screenshot understanding. In 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 1277--1279. IEEE, 2019.
[4]
Appium, 2022. http://appium.io.
[5]
Ju Qian, Zhengyu Shang, Shuoyan Yan, Yan Wang, and Lin Chen. Roscript: a visual script driven truly non-intrusive robotic testing system for touch screen applications. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering, pages 297--308, 2020.
[6]
Dezhi Ran, Zongyang Li, Chenxu Liu, Wenyu Wang, Weizhi Meng, Xionglin Wu, Hui Jin, Jing Cui, Xing Tang, and Tao Xie. Automated visual testing for mobile apps in an industrial setting. 2022.
[7]
Lili Wei, Yepang Liu, and Shing-Chi Cheung. Taming android fragmentation: Characterizing and detecting compatibility issues for android apps. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, pages 226--237, 2016.
[8]
Shengcheng Yu, Chunrong Fang, Yexiao Yun, and Yang Feng. Layout and image recognition driving cross-platform automated mobile testing. In 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE), pages 1561--1571. IEEE, 2021.
[9]
Geoffrey James. Law of least astonishment, 1987. The Tao of Programming.
[10]
Peter Seebach. The cranky user: The principle of least astonishment, 2001. IBM Developer Works.
[11]
Eric Steven Raymond. Applying the rule of least surprise, 2003. The Art of Unix Programming.
[12]
Cong Li, Yanyan Jiang, and Chang Xu. Cross-device record and replay for android apps. In Proceedings of the 30th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, 2022.
[13]
Mark Weiser. The computer for the 21st century. Scientific american, 265(3):94--105, 1991.
[14]
Hong MEI, Donggang CAO, and Tao XIE. Ubiquitous operating system: Toward the blue ocean of human-cyber-physical ternary ubiquitous computing mei. Bulletin of Chinese Academy of Sciences (Chinese Version), 37(1):30--37, 2022.
[15]
Donggang Cao, Dongliang Xue, Zhiyi Ma, and Hong Mei. Xiuos: an open-source ubiquitous operating system for industrial internet of things, 2022.
[16]
Yanwei Ren, Youda Gu, Zongqing Ma, Hualiang Zhu, and Fei Yin. Cross-device difference detector for mobile application gui compatibility testing. In 2022 IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW), pages 253--260. IEEE, 2022.
[17]
Jieshan Chen, Mulong Xie, Zhenchang Xing, Chunyang Chen, Xiwei Xu, Liming Zhu, and Guoqiang Li. Object detection for graphical user interface: Old fashioned or deep learning or a combination? In proceedings of the 28th ACM joint meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, pages 1202--1214, 2020.
[18]
Zhengyou Zhang. A flexible new technique for camera calibration. IEEE Transactions on pattern analysis and machine intelligence, 22(11):1330--1334, 2000.
[19]
Shengcheng Yu, Chunrong Fang, Zhenfei Cao, Xu Wang, Tongyu Li, and Zhenyu Chen. Prioritize crowdsourced test reports via deep screenshot understanding. In 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE), pages 946--956. IEEE, 2021.
[20]
John Canny. A computational approach to edge detection. IEEE Transactions on pattern analysis and machine intelligence, (6):679--698, 1986.
[21]
Peter Seebach. The cranky user: The principle of least astonishment. IBM DeveloperWorks, 2001.
[22]
Eric Steven Raymond. Applying the rule of least surprise. The Art of Unix Programming, page 525, 2003.
[23]
Shauvik Roy Choudhary, Husayn Versee, and Alessandro Orso. Webdiff: Automated identification of cross-browser issues in web applications. In 2010 IEEE International Conference on Software Maintenance, pages 1--10. IEEE, 2010.
[24]
Mattia Fazzini and Alessandro Orso. Automated cross-platform inconsistency detection for mobile apps. In 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 308--318. IEEE, 2017.
[25]
David G Lowe. Object recognition from local scale-invariant features. In Proceedings of the seventh IEEE international conference on computer vision, volume 2, pages 1150--1157. Ieee, 1999.
[26]
Ting Su, Guozhu Meng, Yuting Chen, Ke Wu, Weiming Yang, Yao Yao, Geguang Pu, Yang Liu, and Zhendong Su. Guided, stochastic model-based gui testing of android apps. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering, pages 245--256, 2017.
[27]
Minxue Pan, An Huang, Guoxin Wang, Tian Zhang, and Xuandong Li. Reinforcement learning based curiosity-driven testing of android applications. In Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis, pages 153--164, 2020.
[28]
Monkey, 2022. https://developer.android.com/studio/test/other-testing-tools/monkey.
[29]
Ke Mao, Mark Harman, and Yue Jia. Robotic testing of mobile apps for truly black-box automation. Ieee Software, 34(2):11--16, 2017.
[30]
Debdeep Banerjee and Kevin Yu. Robotic arm-based face recognition software test automation. IEEE Access, 6:37858--37868, 2018.
[31]
Debdeep Banerjee, Kevin Yu, and Garima Aggarwal. Object tracking test automation using a robotic arm. IEEE Access, 6:56378--56394, 2018.
[32]
Debdeep Banerjee and Kevin Yu. Integrated test automation for evaluating a motion-based image capture system using a robotic arm. IEEE Access, 7:1888--1896, 2018.
[33]
Debdeep Banerjee, Kevin Yu, and Garima Aggarwal. Hand jitter reduction algorithm software test automation using robotic arm. IEEE Access, 6:23582--23590, 2018.
[34]
Debdeep Banerjee, Kevin Yu, and Garima Aggarwal. Image rectification software test automation using a robotic arm. IEEE Access, 6:34075--34085, 2018.
[35]
Lucas Maciel, Alice Oliveira, Riei Rodrigues, Williams Santiago, Andresa Silva, Gustavo Carvalho, and Breno Miranda. A systematic mapping study on robotic testing of mobile devices. In 2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), pages 475--482. IEEE, 2022.
[36]
Liu Jian-Ping, Liu Juan-Juan, and Wang Dong-Long. Application analysis of automated testing framework based on robot. In 2012 Third International Conference on Networking and Distributed Computing, pages 194--197. IEEE, 2012.
[37]
Jing Cheng and Wei Wang. Mobile application gui similarity comparison based on perceptual hash for automated robot testing. In 2021 International Conference on Intelligent Computing, Automation and Applications (ICAA), pages 245--251. IEEE, 2021.
[38]
Tao Zhang, Zhengqi Su, Jing Cheng, Feng Xue, and Shengyu Liu. Machine vision-based testing action recognition method for robotic testing of mobile application. International Journal of Distributed Sensor Networks, 18(8), 2022.
[39]
Shengcheng Yu, Chunrong Fang, Yang Feng, Wenyuan Zhao, and Zhenyu Chen. Lirat: Layout and image recognition driving automated mobile testing of cross-platform. In 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 1066--1069. IEEE, 2019.
[40]
Chunrong Fang, Shengcheng Yu, Ting Su, Jing Zhang, Yuanhan Tian, and Yang Liu. Test report generation for android app testing via heterogeneous data analysis. IEEE Transactions on Software Engineering, 49(5):3032--3051, 2023.
[41]
Emil Alégroth, Robert Feldt, and Lisa Ryrholm. Visual gui testing in practice: challenges, problemsand limitations. Empirical Software Engineering, 20:694--744, 2015.
[42]
Tatsuya Sato, Buntarou Shizuki, and Jiro Tanaka. Support for understanding gui programs by visualizing execution traces synchronized with screen transitions. In 2008 16th IEEE International Conference on Program Comprehension, pages 272--275. IEEE, 2008.
[43]
Zhe Liu. Discovering ui display issues with visual understanding. In Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering, pages 1373--1375, 2020.
[44]
Zhe Liu, Chunyang Chen, Junjie Wang, Yuekai Huang, Jun Hu, and Qing Wang. Nighthawk: Fully automated localizing ui display issues via visual understanding. IEEE Transactions on Software Engineering, 49(1):403--418, 2022.
[45]
Shengcheng Yu, Chunrong Fang, Quanjun Zhang, Zhihao Cao, Yexiao Yun, Zhenfei Cao, Kai Mei, and Zhenyu Chen. Mobile app crowdsourced test report consistency detection via deep image-and-text fusion understanding. IEEE Transactions on Software Engineering, 49(8):4115--4134, 2023.
[46]
Di Liu, Xiaofang Zhang, Yang Feng, and James A Jones. Generating descriptions for screenshots to assist crowdsourced testing. In 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER), pages 492--496. IEEE, 2018.
[47]
Mithilesh Kumar Singh, D Raghavendra, Deepak Pandian, and Anubhav Sadana. Surface automation-interacting with applications using black box approach. In 2021 6th International Conference for Convergence in Technology (I2CT), pages 1--6. IEEE, 2021.
[48]
Emil Borjesson and Robert Feldt. Automated system testing using visual gui testing tools: A comparative study in industry. In 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation, pages 350--359. IEEE, 2012.
[49]
Tanzirul Azim and Iulian Neamtiu. Targeted and depth-first exploration for systematic testing of android apps. In Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications, pages 641--660, 2013.
[50]
Ibrahim Anka Salihu and Rosziati Ibrahim. Systematic exploration of android apps' events for automated testing. In Proceedings of the 14th International Conference on Advances in Mobile Computing and Multi Media, pages 50--54, 2016.
[51]
Domenico Amalfitano, Anna Rita Fasolino, Porfirio Tramontana, Salvatore De Carmine, and Atif M Memon. Using gui ripping for automated testing of android applications. In Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering, pages 258--261, 2012.
[52]
Wei Yang, Mukul R Prasad, and Tao Xie. A grey-box approach for automated gui-model generation of mobile applications. In Fundamental Approaches to Software Engineering: 16th International Conference, FASE 2013, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2013, Rome, Italy, March 16--24, 2013. Proceedings 16, pages 250--265. Springer, 2013.
[53]
Thomas Wetzlmaier, Rudolf Ramler, and Werner Putschögl. A framework for monkey gui testing. In 2016 IEEE International Conference on Software Testing, Verification and Validation (ICST), pages 416--423. IEEE, 2016.
[54]
Jiwei Yan, Tianyong Wu, Jun Yan, and Jian Zhang. Widget-sensitive and backstack-aware gui exploration for testing android apps. In 2017 IEEE International Conference on Software Quality, Reliability and Security (QRS), pages 42--53. IEEE, 2017.
[55]
Jiwei Yan, Linjie Pan, Yaqi Li, Jun Yan, and Jian Zhang. Land: A user-friendly and customizable test generation tool for android apps. In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis, pages 360--363, 2018.
[56]
Chun Cao, Hongjun Ge, Tianxiao Gu, Jing Deng, Ping Yu, and Jian Lu. Accelerating automated android gui exploration with widgets grouping. In 2018 25th Asia-Pacific Software Engineering Conference (APSEC), pages 268--277. IEEE, 2018.
[57]
Duling Lai and Julia Rubin. Goal-driven exploration for android applications. In 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 115--127. IEEE, 2019.
[58]
Aravind Machiry, Rohan Tahiliani, and Mayur Naik. Dynodroid: An input generation system for android apps. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, pages 224--234, 2013.
[59]
Shuai Hao, Bin Liu, Suman Nath, William GJ Halfond, and Ramesh Govindan. Puma: Programmable ui-automation for large-scale dynamic analysis of mobile apps. In Proceedings of the 12th annual international conference on Mobile systems, applications, and services, pages 204--217, 2014.
[60]
Ke Mao, Mark Harman, and Yue Jia. Sapienz: Multi-objective automated testing for android applications. In Proceedings of the 25th international symposium on software testing and analysis, pages 94--105, 2016.
[61]
Tianxiao Gu, Chengnian Sun, Xiaoxing Ma, Chun Cao, Chang Xu, Yuan Yao, Qirun Zhang, Jian Lu, and Zhendong Su. Practical gui testing of android applications via model abstraction and refinement. In 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE), pages 269--280. IEEE, 2019.
[62]
Yan Zheng, Yi Liu, Xiaofei Xie, Yepang Liu, Lei Ma, Jianye Hao, and Yang Liu. Automatic web testing using curiosity-driven reinforcement learning. In 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE), pages 423--435. IEEE, 2021.
[63]
Chao Peng, Zhao Zhang, Zhengwei Lv, and Ping Yang. Mubot: Learning to test large-scale commercial android apps like a human. In 2022 IEEE International Conference on Software Maintenance and Evolution (ICSME), pages 543--552. IEEE, 2022.
[64]
Ziqian Zhang, Yulei Liu, Shengcheng Yu, Xin Li, Yexiao Yun, Chunrong Fang, and Zhenyu Chen. Unirltest: universal platform-independent testing with reinforcement learning via image understanding. In Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis, pages 805--808, 2022.
[65]
Yan Zheng, Xiaofei Xie, Ting Su, Lei Ma, Jianye Hao, Zhaopeng Meng, Yang Liu, Ruimin Shen, Yingfeng Chen, and Changjie Fan. Wuji: Automatic online combat game testing using evolutionary deep reinforcement learning. In 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 772--784. IEEE, 2019.
[66]
Andrea Romdhana, Alessio Merlo, Mariano Ceccato, and Paolo Tonella. Deep reinforcement learning for black-box testing of android apps. ACM Transactions on Software Engineering and Methodology (TOSEM), 31(4):1--29, 2022.

Cited By

View all
  • (2024)Utilizing Generative AI for VR Exploration Testing: A Case StudyProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering Workshops10.1145/3691621.3694955(228-232)Online publication date: 27-Oct-2024

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '24: Proceedings of the IEEE/ACM 46th International Conference on Software Engineering
May 2024
2942 pages
ISBN:9798400702174
DOI:10.1145/3597503
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

In-Cooperation

  • Faculty of Engineering of University of Porto

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 April 2024

Check for updates

Author Tags

  1. GUI testing
  2. non-intrusive testing
  3. GUI understanding
  4. robotic arm

Qualifiers

  • Research-article

Funding Sources

Conference

ICSE '24
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)101
  • Downloads (Last 6 weeks)16
Reflects downloads up to 14 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Utilizing Generative AI for VR Exploration Testing: A Case StudyProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering Workshops10.1145/3691621.3694955(228-232)Online publication date: 27-Oct-2024

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media