中文

测试套件视角下的软件自动多样化

软件工程 2018-12-27 v3

摘要

少数工作探讨了软件多样化自动化的挑战,它们共享一个核心理念:使用自动化测试套件来驱动多样化。然而,对于在此过程中测试套件、程序和变换如何相互作用,目前尚缺乏深入的理解。我们在一种名为“sosiefication”的特定多样化技术的背景下,探索了这种复杂的相互作用。Sosiefication 生成 sosie 程序,即在程序中某些语句被删除、添加或替换后仍能通过原始程序测试套件的程序变体。我们对测试套件对 sosiefication 影响的研究利用了以下观察:测试套件以极不均衡的方式覆盖程序的不同区域。因此,我们假设 sosie 合成在被一百个测试用例覆盖的语句上与被单个测试用例覆盖的语句上具有不同的表现。我们在6个流行的开源 Java 程序上合成了24583个 sosie。我们的结果表明多样化存在两个维度。第一个维度在于规约:测试用例覆盖某语句越多,合成 sosie 就越困难。然而,令人惊讶的是,我们也能够在高度测试的语句上(多达600个测试用例)合成 sosie,这表明我们所研究的程序具有一种内在属性。第二个维度在于代码:我们手动探索了数十个 sosie,并刻画了容易发生多样化的新型宽容代码区域。

关键词

引用

@article{arxiv.1509.00144,
  title  = {Automatic Software Diversity in the Light of Test Suites},
  author = {Benoit Baudry and Simon Allier and Marcelino Rodriguez-Cancio and Martin Monperrus},
  journal= {arXiv preprint arXiv:1509.00144},
  year   = {2018}
}

备注

11 pages, 4 figures, 7 listings, 26 references