大规模回归测试用例优化技术研究(3)

此种方法适用于测试用例规模较小时的回归测试,若回归测试前软件的测试用例集已经很庞大,则这种方法不仅难以达到预期的效果,反而会使测试成本增


此种方法适用于测试用例规模较小时的回归测试,若回归测试前软件的测试用例集已经很庞大,则这种方法不仅难以达到预期的效果,反而会使测试成本增加,计算速度也有待考虑。

2.1.2  结合人工智能算法的TCP技术

由于测试用例的数据量的激增,人工智能算法的特点,将人工智能算法应用于测试用例优先级排序成为必然趋势,目前,应用于测试用例排序优化技术的人工智能算法有遗传算法,神经网络,蚁群算法,粒子群算法,以及各类改进或者组合的人工智能算法等

基于遗传算法的TCP技术提出了一种按照功能模块覆盖率的测试用例优先级评价指标,将遗传算法应用于黑盒测试或功能测试,实际操作时,按照实数编码规则,以新提出的优先级评价标准为适应度函数,应用轮盘赌选择算子,任意点交叉的交叉算子,融入轮盘赌的变异算子于遗传算法,在提高软件的测试效率和当前的软件测试水平上达到了很好的测试效果

多种群遗传算法的TCP技术将实际问题的解空间N初始化为三个子种群,设定全局遗传代数和指定交流代数,各个子种群独立遗传,直到达到交流的代数,子种群间进行信息交流,直到达到全局遗传代数为止

基于BP神经网络的TCP技术通过测试用例集反复训练神经网络,学习得到测试用例和相关评价目标对应的神经网络,其中相关评价目标可以是测试用例的覆盖率,检错率,成本,风险等。随机给定初始测试用例集通过神经网络调整最佳排序

基于离散粒子群的TCP技术将PSO离散化并引入遗传算法的变异算子应用于测试用例优先级排序技术,提出一种基于功能模块覆盖的测试用例优先级排序技术,实验表明, 该算法优于随机排序测试,在解的命中率和时间上优于遗传测试,算法更加稳定

2.2  测试用例排序的度量准则

TCP技术的度量准则是评价相关算法的有效性的一把双刃剑。一个好的度量标准往往能更加贴切的反应算法的有效程度,而一个差的度量标准则不利于发现算法的改进空间。

2.2.1  常见度量准则

测试用例集的需求覆盖率作为度量准则,测试用例集的错误检测率(APFD)作为度量准则,其中,测试用例错误检测率作为度量准则时,APFD值越大,表示对应测试用例集检测错误的效率相对越高,APFD值越低则表示测试用例集检测错误的效率越低,主要由某个测试用例第一个发现缺陷的位置号为自变量,此种评价准则以知道每个测试用例对应的错误为前提,所以必须在测试用例全部执行之后才可以计算;测试用例的覆盖率(块覆盖率APBC,语句覆盖率APSC,判定覆盖率APDC;以APBC为例,APBC值越大表示能更快的发现达到更高的块覆盖率 ;还有基于功能模块覆盖的评价标准,即APTC,APTC值越大,表示对功能模块的覆盖效率越高,反之越低;另外,还可以根据算法成本,约简率等来度量

2.2.2  改进的度量准则

改进度量准则通常是加入了测试用例成本和评测目标的重要程度因素的考虑,比如考虑测试用例成本和错误重要性的测试用例集的错误检测率,简称APFD_c,考虑功能模块成本和功能模块重要程度的功能模块覆盖评价标准,简称APTC_c,对于这些度量准则,当所有功能模块的重要程度相同且所有测试用例的成本相等时, APFD_c 评价指标退化为 APFD.当所有功能模块的重要程度相同且所有测试用例的成本相等时, APTC_c 评价指标退化为 APTC。此外,还有测试平均收益率的评价指标APWC,当所有测试用例的综合收益和和综合成本相同时,APWC退化为APTC;平均变异杀死率APMK,即以在较短的时间内杀死的异常的数量为度量