7.2.3 实验分析
1.测试用例集
本次实验的被测程序是智能终端程序中的5个模块代码,为不同的被测程序准备了不同规模的测试用例集,可实现程序语句全覆盖,具体信息如表7-1所示。
表7-1 被测程序信息

2.实验设计及结果分析
(1)实验一:探究种群迭代次数对测试用例优先级排序算法的影响
这个实验主要是为了探究一定抗体种群数量下不同的迭代次数对基于AIA的测试用例优先级排序算法的影响。分别设定迭代次数为50、100、150和200,对收集的5个智能终端被测程序的测试用例集进行优先级排序,记录不同迭代次数下得到的最优测试用例序列及相应的APSC,在不同迭代次数下得到的APSC如图7-2所示。
(https://www.daowen.com)
图7-2 被测程序在不同迭代次数下的APSC分布
由图7-2可以看出,在抗体种群数量一定的情况下,随着基于AIA的测试用例优先级排序算法的迭代次数不断增加,智能终端被测程序的APSC逐渐趋于最优,并且在一定的迭代次数后,APSC趋于稳定,不再发生显著的变化。
(2)实验二:人工免疫算法和遗传算法的比较
这个实验是为了通过与基于传统遗传算法的测试用例优先级排序算法的对比,验证本书提出的基于AIA的测试用例优先级排序算法的有效性。本实验设定种群规模为50,迭代次数为200。实验过程复现了文献[9]中的遗传排序算法。实验过程中会分别对测试程序采用遗传算法和AIA进行测试用例优先级排序,二者得到的APSC如图7-3所示。

图7-3 被测程序在不同算法下的APSC比较
由图7-3可以看出,针对一定规模的测试程序,当测试用例优先级排序的APSC达到稳定时,基于AIA的测试用例优先级排序算法得到的APSC要明显优于基于遗传算法的测试用例优先级排序算法。在解决测试用例优先级排序问题方面,本书采用的人工免疫算法可以更好地保存迭代过程中获得的最优解,并不断全局搜索可能存在的最优解,有效地避免了陷入局部最优的情况。