Page 196 - 《软件学报》2021年第7期
P. 196
2114 Journal of Software 软件学报 Vol.32, No.7, July 2021
Fig.3 Prevalence of CC in subject programs
图 3 目标程序发生偶然正确性现象的频率
Table 1 Changes of CCP-based techniques on three indicators relative to the coverage-based technique
表 1 基于 CCP 的选择技术相对于基于代码覆盖技术在评估指标上变化幅度的均值
指标变化的幅度 用例缩减(%) 精度(%) 安全性(%) PR(%)
基于 CCP 的技术 1 929 28.36 –47.49 19.72
基于 CCP 的技术 2 344 23.14 –12.11 20.19
基于 CCP 的技术 3 396 25.09 –16.89 21.14
图 4 展示了 3 种基于 CCP 的测试选择技术和基于代码覆盖的安全选择技术在测试用例缩减方面的对比数
据,其中,横坐标表示不同版本的程序,纵坐标表示经过测试选择后的回归测试集相对于原始测试集合在用例数
目上缩减的比例.假设原始测试集合的用例数目为 x,经过测试选择后集合的用例数目为 y,则用例数目缩减比例
为(x–y)/x100%.对图 4 所示数据进行统计可得,基于代码覆盖的安全选择策略和 3 种基于 CCP 的技术在用例
缩减基于代码覆盖的安全技术用例缩减比例的均值为 33%,基于 CCP 的技术 1 的用例缩减比例的均值为 74%,
基于 CCP 的技术 2 的用例缩减的平均比例为 51%,而基于 CCP 的技术 3 的用例缩减的平均比例为 54%.表 1
展示了基于 CCP 的 3 种技术相对于基于代码覆盖技术在用例缩减部分的提升幅度的平均值.假设基于 CCP 的
技术所缩减用例的比例为 x,基于代码覆盖的技术缩减的比例为 y,则基于 CCP 的技术在用例缩减方面所提升的
幅度为(x–y)/y100%.结果表明,基于 CCP 的选择技术在用例缩减上的提升幅度分别高达 929%、344%和 396%.
实验结果表明,3 种基于 CCP 的测试选择技术都较大程度地缩减了被选择的测试用例的数目,并且其缩减的程
度显著大于基于代码覆盖的测试选择技术所缩减的程度.
对照图 3 中发生偶然正确性现象的频率及图 4 中的测试用例缩减情况可得,对于偶然正确性现象发生频率
高的程序,基于 CCP 的选择技术对其测试集合缩减的提升程度也相对较高.反之.对于偶然正确性现象发生频率
低的程序,在测试集合缩减上的提升也相对低一些.例如,对于编号为 1、3、4、5、6 和 7 的程序,偶然正确性现
象发生的概率非常高,从图 3 可以发现,基于安全的选择技术在这几个程序上的用例缩减比例是非常低的(都低
于 10%),而我们的技术在这些程序上达到了较好的提升.其中,基于 CCP 的技术 1 使得这几个程序对应的测试
集合缩减比例达到 60%以上,相对于安全选择技,技术 1 在用例缩减比例上提升的差值高达 56%~61%(用图 4 中
基于 CCP 的技术 1 的测试集合缩减比例与安全技术的缩减比例的差值来计算).而对于偶然正确现象的频率相
对较低的程序,例如编号 11、12 和 17 的程序,基于安全技术已经得到了较高程度的用例缩减,而基于 CCP 的技
术对用例缩减的提升有限.偶然正确性现象的出现频率和用例缩减的对照结果表明,基于 CCP 的选择技术可以
有效地消除偶然正确性现象对测试用例集合缩减的影响.
测试用例集合较大幅度的缩减可能会影响测试选择的安全性和精度,为了进一步证明基于 CCP 的技术的
有效性,下文给出精度、安全性和综合指标 PR 上的实验结果.