TY - GEN
T1 - Paladin
T2 - 20th International Workshop on Mobile Computing Systems and Applications, HotMobile 2019
AU - Ma, Yun
AU - Huang, Yangyang
AU - Hu, Ziniu
AU - Xiao, Xusheng
AU - Liu, Xuanzhe
N1 - Publisher Copyright:
© 2019 ACM.
PY - 2019/2/22
Y1 - 2019/2/22
N2 - Automated-test-generation tools generate test cases to enable dynamic analysis of Android apps, such as functional testing. These tools build a GUI model to describe the app states during the app execution, and generate a script that performs actions on UI widgets to form a test case. However, when the test cases are re-executed, the apps under analysis often do not behave consistently. The major reasons for such limited reproducibility are due to (1) backend-service dependencies that cause non-determinism in app behaviors and (2) the severe fragmentation of Android platform (i.e., the alarming number of different Android OS versions in vendor-customized devices). To address these challenges, we design and implement Paladin, a novel system that generates reproducible test cases for Android apps. The key insight of Paladin is to provide a GUI model that leverages the structure of the GUI view tree to identify equivalent app states, since the structure can tolerate the changes on the UI contents for an app behavior performed in different test executions. Based on the model, Paladin can search the view tree to locate the desired UI widgets to trigger events and drive the app exploration to reach the desired app states, making the test cases reproducible. Evaluation results on real apps show that Paladin could reach a much higher reproduction ratio than the state-of-the-art tools when the generated test cases are re-executed across different device configurations. In addition, benefiting from the reproducible capability, Paladin is able to cover more app behaviors compared with the existing tools.
AB - Automated-test-generation tools generate test cases to enable dynamic analysis of Android apps, such as functional testing. These tools build a GUI model to describe the app states during the app execution, and generate a script that performs actions on UI widgets to form a test case. However, when the test cases are re-executed, the apps under analysis often do not behave consistently. The major reasons for such limited reproducibility are due to (1) backend-service dependencies that cause non-determinism in app behaviors and (2) the severe fragmentation of Android platform (i.e., the alarming number of different Android OS versions in vendor-customized devices). To address these challenges, we design and implement Paladin, a novel system that generates reproducible test cases for Android apps. The key insight of Paladin is to provide a GUI model that leverages the structure of the GUI view tree to identify equivalent app states, since the structure can tolerate the changes on the UI contents for an app behavior performed in different test executions. Based on the model, Paladin can search the view tree to locate the desired UI widgets to trigger events and drive the app exploration to reach the desired app states, making the test cases reproducible. Evaluation results on real apps show that Paladin could reach a much higher reproduction ratio than the state-of-the-art tools when the generated test cases are re-executed across different device configurations. In addition, benefiting from the reproducible capability, Paladin is able to cover more app behaviors compared with the existing tools.
KW - Android app
KW - Automated test generation
KW - Reproducible
UR - http://www.scopus.com/inward/record.url?scp=85062882232&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85062882232&partnerID=8YFLogxK
U2 - 10.1145/3301293.3302363
DO - 10.1145/3301293.3302363
M3 - Conference contribution
AN - SCOPUS:85062882232
T3 - HotMobile 2019 - Proceedings of the 20th International Workshop on Mobile Computing Systems and Applications
SP - 99
EP - 104
BT - HotMobile 2019 - Proceedings of the 20th International Workshop on Mobile Computing Systems and Applications
PB - Association for Computing Machinery, Inc
Y2 - 27 February 2019 through 28 February 2019
ER -