论文标题
自动化,成本效益和更新驱动的应用程序测试
Automated, Cost-effective, and Update-driven App Testing
论文作者
论文摘要
应用程序在我们社会中的普遍作用导致了测试自动化方法的定义,以确保其可靠性。但是,最先进的方法倾向于产生大量的测试输入,并且不太可能达到50%以上的方法覆盖范围。在本文中,我们提出了一种策略,以实现受更新影响的代码的更高覆盖范围,并减轻了测试输入数量少得多,从而减轻了测试甲骨文问题。更具体地说,我们提出ATUA是一种基于模型的方法,该方法将应用程序模型与静态分析合成,集成了动态精制的状态抽象功能,并结合了互补的测试策略,包括(1)模型结构的覆盖范围,(2)应用程序代码的覆盖范围,(3)随机探索,以及(4)通过信息检索确定的依赖性覆盖范围。其基于模型的策略使ATUA能够生成一系列的输入,这些输入仅行使受更新影响的代码。反过来,这使得常见的测试甲骨文解决方案更具成本效益,因为它们往往涉及人类的努力。一项大型的经验评估,该评估由属于9个流行的Android应用的72个应用程序版本进行,它表明,在测试应用程序更新时,ATUA比最先进的方法更有效,更努力。
Apps' pervasive role in our society led to the definition of test automation approaches to ensure their dependability. However, state-of-the-art approaches tend to generate large numbers of test inputs and are unlikely to achieve more than 50% method coverage. In this paper, we propose a strategy to achieve significantly higher coverage of the code affected by updates with a much smaller number of test inputs, thus alleviating the test oracle problem. More specifically, we present ATUA, a model-based approach that synthesizes App models with static analysis, integrates a dynamically-refined state abstraction function and combines complementary testing strategies, including (1) coverage of the model structure, (2) coverage of the App code, (3) random exploration, and (4) coverage of dependencies identified through information retrieval. Its model-based strategy enables ATUA to generate a small set of inputs that exercise only the code affected by the updates. In turn, this makes common test oracle solutions more cost-effective as they tend to involve human effort. A large empirical evaluation, conducted with 72 App versions belonging to nine popular Android Apps, has shown that ATUA is more effective and less effort intensive than state-of-the-art approaches when testing App updates.