面向白盒测试生成的自动化隔离方法
软件工程
2020-06-12 v1
摘要
背景。白盒测试生成是一种仅利用源代码或二进制代码自动选择测试输入的技术。然而,当将其应用于复杂程序时,此类技术会遇到挑战。主要挑战之一是处理被测单元的依赖关系。目标。若不采取适当措施,生成的测试无法覆盖源代码的所有部分,或者调用依赖项可能导致意外的副作用(例如文件系统或网络访问)。这些问题应在保持白盒测试生成优势的同时加以解决。方法。在本文中,我们提出了一种自动化源代码转换方法,以解决白盒测试生成的依赖问题。该技术通过在被转换单元外围创建参数化沙箱来隔离测试执行。我们使用 Microsoft Pex 作为测试生成器在即用型工具中实现了该方法,并在来自 GitHub 的 10 个开源项目上进行了评估,这些项目总计超过 38,000 行代码。结果。评估结果表明,若缺乏隔离阻碍了白盒测试生成,则我们的方法能够提供帮助:它提高了自动生成测试所达到的代码覆盖率,同时减少了不必要的副作用。此外,我们的结果可作为 Microsoft Pex 在开源项目上测试生成性能的独特基线。结论。基于结果,我们的源代码转换可能很好地缓解白盒测试生成中的隔离问题,因为它在此类情形下提高了所达到的覆盖率,同时保持了在隔离代码上生成测试的实际可用性。
引用
@article{arxiv.1910.02513,
title = {Automated Isolation for White-box Test Generation},
author = {Dávid Honfi and Zoltán Micskei},
journal= {arXiv preprint arXiv:1910.02513},
year = {2020}
}