缺陷预测器需达到何种性能才能指导基于搜索的软件测试?
软件工程
2021-10-07 v1
摘要
缺陷预测器、静态缺陷检测工具与人工代码审查均可在程序缺陷经测试发现之前定位其中有缺陷的部分。诸如基于搜索的软件测试(SBST)技术等自动化测试生成器可利用此信息将测试用例的搜索导向可能存在缺陷的代码,从而加速检测已有缺陷的进程。然而,这些工具或人工给出的预测常不精确,可能误导SBST技术并损害其性能。本文研究缺陷预测的不精确性对SBST缺陷检测有效性的影响。我们的研究发现,缺陷预测器的召回率(即正确识别有缺陷代码的概率)对SBST的缺陷检测有效性具有显著影响,效应量大;另一方面,作为误报度量的精确率其影响无实际意义,效应量极小。具体而言,召回率每降低5%,SBST技术平均少发现7.5个缺陷(共420个缺陷)。在结合缺陷预测与SBST的实践中,我们建议以牺牲精确率为代价提高缺陷预测器的召回率,同时将精确率维持在至少75%。为应对缺陷预测器的不精确性(尤其是低召回率值),SBST技术应被设计为在搜索测试用例时亦覆盖预测无缺陷的程序部分,同时优先覆盖被预测为有缺陷的部分。
引用
@article{arxiv.2110.02682,
title = {How good does a Defect Predictor need to be to guide Search-Based Software Testing?},
author = {Anjana Perera and Burak Turhan and Aldeida Aleti and Marcel Böhme},
journal= {arXiv preprint arXiv:2110.02682},
year = {2021}
}
备注
12 pages, 4 figures