中文

在工业界使用变异测试需要什么——Facebook的一项研究

软件工程 2021-01-28 v3

摘要

传统上,变异测试会生成大量称为变异体(mutant)的程序微小偏差。在Facebook这样规模的工业系统中,这样做是不可行的。我们不应创建测试套件很可能失败或无法为开发人员提供可操作信号的变异体。为解决此问题,本文中我们从常见的Java编码错误语料库以及 specifically 在Facebook引起运行异常的变更中半自动地学习诱发错误的模式。我们将变异与测量哪些测试确切访问了被变异代码的插桩相结合。对超过15,000个生成变异体的结果表明,超过一半的生成变异体在Facebook严格的单元、集成和系统测试套件中存活。此外,在一项有26名开发人员的案例研究中,除两人外均认为自动检测到的测试漏洞信息原则上是有趣的。因此,26人中有近一半会实际根据呈现给他们的变异体采取行动,通过调整现有测试或创建新测试。其他人由于多种原因未采取行动,这些原因通常超出变异测试的范围。如何将此类外部信息纳入以提高变异体的真实可操作率,仍是一个实际挑战。

关键词

引用

@article{arxiv.2010.13464,
  title  = {What It Would Take to Use Mutation Testing in Industry--A Study at Facebook},
  author = {Moritz Beller and Chu-Pan Wong and Johannes Bader and Andrew Scott and Mateusz Machalica and Satish Chandra and Erik Meijer},
  journal= {arXiv preprint arXiv:2010.13464},
  year   = {2021}
}