利用传播感染交叉击杀变异体
软件工程
2024-11-18 v1
摘要
变异测试通过反复生成软件的人为故障版本(变异体)并确定测试套件是否足以检测它们(击杀它们),来识别测试套件中的弱点。当测试不足时,每个存活变异体都提供了改进测试套件的机会。我们进行了一项研究,发现许多此类存活变异体(在研究对象中高达84%)可以通过用额外断言增强现有测试(即断言放大)来检测。此外,我们发现许多这些变异体可被多个现有测试检测到,为开发者提供了检测它们的选项。为了应对这些挑战,我们创建了一种执行内存状态分析的技术,以识别开发者可用于检测存活变异体的候选断言。此外,我们建立在识别“交叉击杀”机会的先前研究基础上——即巧合击杀多个变异体的测试。为此,我们开发了一个理论模型,描述现有测试套件中交叉击杀可能发生的不同粒度,这为击杀存活变异体提供了机会和选项。我们将该模型实用化为一种配套技术,优化现有测试的断言放大,以用更少的添加断言交叉击杀多个变异体,并可选择集中在更少的测试中。实验表明,我们可以仅使用1.1%的已识别候选断言,击杀所有可用现有测试数据检测到的存活变异体,并使放大测试击杀的变异体数量平均增加6倍,超过了不进行交叉击杀的测试。
引用
@article{arxiv.2411.09846,
title = {Leveraging Propagated Infection to Crossfire Mutants},
author = {Hang Du and Vijay Krishna Palepu and James A. Jones},
journal= {arXiv preprint arXiv:2411.09846},
year = {2024}
}
备注
Accepted at ICSE '25