TestMig: migrating GUI test cases from iOS to Android

TestMig: migrating GUI test cases from iOS to Android
复制标题

DOI:
10.1145/3293882.3330575
复制
发表时间:
2019-07
期刊:
Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis
影响因子:
--
通讯作者:
Xue Qin;Hao Zhong;Xiaoyin Wang
Xue Qin;Hao Zhong;Xiaoyin Wang
中科院分区:
其他
文献类型:
--
作者:
Xue Qin;Hao Zhong;Xiaoyin Wang

文献摘要

被引文献

相似文献

如今,Apple iOS和Android是移动的应用程序的两个最流行的平台。为了吸引更多的用户,许多软件公司和组织正在将他们的应用程序从一个平台迁移到另一个平台,除了源文件之外,他们还需要迁移他们的GUI测试。GUI测试的迁移是繁琐的,并且难以自动化,因为两个平台有细微的差异,并且通常很少甚至没有迁移的GUI测试可供学习。为了解决这个问题,在本文中,我们提出了一种新的方法,TestMig,将GUI测试从iOS迁移到Android,没有任何迁移的代码样本。具体来说,TestMig首先执行iOS版本的GUI测试,并记录它们的GUI事件序列。在iOS GUI事件的指导下,TestMig探索应用程序的Android版本以生成相应的Android事件序列。我们对五个著名的移动的应用程序进行了评估:2048,SimpleNote,Wire,Wikipedia和WordPress。结果表明,平均而言,TestMig正确地将80.2%的记录的iOS UI事件转换为Android UI事件并成功执行,并且我们迁移的Android测试用例与原始iOS测试用例相比实现了类似的语句覆盖率(59.7% vs 60.4%)。
Nowadays, Apple iOS and Android are two most popular platforms for mobile applications. To attract more users, many software companies and organizations are migrating their applications from one platform to the other, and besides source files, they also need to migrate their GUI tests. The migration of GUI tests is tedious and difficult to be automated, since two platforms have subtle differences and there are often few or even no migrated GUI tests for learning. To address the problem, in this paper, we propose a novel approach, TestMig, that migrates GUI tests from iOS to Android, without any migrated code samples. Specifically, TestMig first executes the GUI tests of the iOS version, and records their GUI event sequences. Guided by the iOS GUI events, TestMig explores the Android version of the application to generate the corresponding Android event sequences. We conducted an evaluation on five well known mobile applications: 2048, SimpleNote, Wire, Wikipedia, and WordPress. The results show that, on average, TestMig correctly converts 80.2% of recorded iOS UI events to Android UI events and have them successfully executed, and our migrated Android test cases achieve similar statement coverage compared with the original iOS test cases (59.7% vs 60.4%).