一句话:通过人工分析 Monkey 在 64 个 Android 应用上的表现,归纳其覆盖受限的七个常见原因并评估改进潜力。
移动应用测试耗时且依赖人工,现有测试输入生成技术虽能自动化,但常因工具开发者主要改进探索策略、忽视其他性能因素而覆盖有限。本文以广泛使用的 Android 自动化测试工具 Monkey 为对象,人工分析其在 64 个应用基准上的表现,归纳导致覆盖不足的常见局限,并评估若消除这些局限可获得的覆盖提升。作者进一步讨论其他测试输入生成工具是否也存在类似问题,并给出可能的改进方向。该经验研究强调,除探索策略外,工具设计中的其他因素同样制约移动应用测试效果。
Experience paper: Testing of mobile apps is time-consuming and requires a great deal of manual effort. For this reason, industry and academic researchers have proposed a number of test input generation techniques for automating app testing. Although useful, these techniques have weaknesses and limitations that often prevent them from achieving high coverage. We believe that one of the reasons for these limitations is that tool developers tend to focus mainly on improving the strategy the techniques employ to explore app behavior, whereas limited effort has been put into investigating other ways to improve the performance of these techniques. To address this problem, and get a better understanding of the limitations of input-generation techniques for mobile apps, we conducted an in-depth study of the limitations of Monkey-arguably the most widely used tool for automated testing of Android apps. Specifically, in our study, we manually analyzed Monkey's performance on a benchmark of 64 apps to identify the common limitations that prevent the tool from achieving better coverage results. We then assessed the coverage improvement that Monkey could achieve if these limitations were eliminated. In our analysis of the results, we also discuss whether other existing test input generation tools suffer from these common limitations and provide insights on how they could address them.