中文

Humanoid:一种基于深度学习的自动化黑盒Android应用测试方法

软件工程 2021-01-01 v2

摘要

自动化输入生成器被广泛用于移动应用的规模化动态分析。此类输入生成器必须持续选择要与哪个UI元素交互以及如何交互,以在有限时间预算内实现高覆盖率。目前,大多数输入生成器采用伪随机或暴力搜索策略,可能需要极长时间才能找到能够驱动应用进入新的重要状态的正确输入组合。本文中,我们提出Humanoid,一种通过从人类交互中学习来生成GUI测试输入的基于深度学习的方法。我们的洞见是:若能基于人类生成的交互轨迹进行学习,便可根据用户所感知的重要性自动优先处理测试输入。我们设计并实现了一个深度神经网络模型,以学习终端用户将如何与应用交互(具体地,与哪些UI元素交互以及如何交互)。我们的实验表明,该交互模型能成功地为任意新UI优先排序用户偏好的输入(top-1准确率为51.2%,top-10准确率为85.2%)。我们基于所学模型实现了面向Android应用的输入生成器,并在开源应用与市场应用上进行了评估。结果表明,Humanoid比六种最先进的测试生成器实现了更高的覆盖率。然而,进一步分析显示,所学模型并非覆盖率提升的主要原因。尽管所学交互模式能以更高概率将应用驱动至某些重要GUI状态,但其对GUI状态搜索的广度与深度影响有限,而后者是长期提升测试覆盖率的关键。人类交互模式能否以及 how 用于提升覆盖率仍是一个未知且具有挑战性的问题。

关键词

引用

@article{arxiv.1901.02633,
  title  = {Humanoid: A Deep Learning-based Approach to Automated Black-box Android App Testing},
  author = {Yuanchun Li and Ziyue Yang and Yao Guo and Xiangqun Chen},
  journal= {arXiv preprint arXiv:1901.02633},
  year   = {2021}
}

备注

added discussion on coverage improvement