Litcius/Paper detail

GUI-Guided Test Script Repair for Mobile Apps

Minxue Pan, Tongtong Xu, Yu Pei, Li Zhong, Tian Zhang, Xuandong Li

2020IEEE Transactions on Software Engineering37 citationsDOIOpen Access PDF

Abstract

Graphical User Interface (GUI) testing is widely used to test mobile apps. As mobile apps are frequently updated and need repeated testing, to reduce the test cost, their test cases are often coded as scripts to enable automated execution using test harnesses/tools. When those mobile apps evolve, many of the test scripts, however, may become broken due to changes made to the app GUIs. While it is desirable that the broken scripts get repaired, doing it manually can be preventively expensive if the number of tests need repairing is large. We propose in this paper a novel approach named <sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Meter</small> to repairing broken GUI test scripts automatically when mobile apps evolve. <sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Meter</small> leverages computer vision techniques to infer GUI changes between two versions of a mobile app and uses the inferred changes to guide the repair of GUI test scripts. Since <sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Meter</small> only relies on screenshots to repair GUI tests, it is applicable to apps targeting open or closed source mobile platforms. In experiments conducted on 22 Android apps and 6 iOS apps, repairs produced by <sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Meter</small> helped preserve 63.7 and 38.8 percent of all the test actions broken by the GUI changes, respectively.

Topics & Concepts

Scripting languageComputer scienceAndroid (operating system)Test scriptGraphical user interfaceMobile appsGraphical user interface testingTest (biology)User interfaceWorld Wide WebOperating systemTest caseUser interface designMachine learningPaleontologyRegression analysisBiologySoftware Testing and Debugging TechniquesAdvanced Malware Detection TechniquesSoftware System Performance and Reliability