关键词:
软件测试
随机测试
自适应随机测试
测试用例约减
摘要:
在当前的信息化社会环境下,软件作为信息系统的关键组成部分,已越来越广泛地参与人类活动。软件测试是软件生命周期的关键过程之一,在保障软件质量方面扮演着重要角色。在众多的软件测试方法中,随机测试(Random Testing,RT)因其简单、易部署的特点被广泛应用。但是,由于随机测试只依赖于随机算法而不利用任何已知信息,其故障检测能力难以保证。在此基础上,TY Chen等人利用失效输入连续性的特点,提出了自适应随机测试(Adaptive Random Testing,ART)。ART通过将测试用例更均匀地分布在输入域空间从而更有效地探索程序,研究表明,ART相较于RT具有更好的故障检测能力。在众多的ART算法中,固定大小候选集的自适应随机测试(Fixed-Size-Candidate-Set Adaptive Random Testing,FSCS-ART)是故障检测能力较高的方法之一。但是,FSCS-ART在选择最优候选测试用例时需要大量计算测试用例之间的相似性,这个过程带来了巨大的时间开销,一定程度上限制了其实际应用。本文重点分析FSCS-ART的最优候选测试用例选择过程,并基于过滤机制设计了两个方案分别减少候选测试用例集和已执行测试用例集中参与相似性计算的测试用例数量从而减少时间开销。最后,实现了一个测试用例生成、分析原型系统并进行了实验验证。实验结果表明本文提出的方案在保证FSCS-ART故障检测能力前提下,提高了测试效率。本文的主要工作阐述如下:1、针对随机生成的候选测试用例计算开销较大的问题,提出了基于候选测试用例集约简的固定大小候选集自适应随机测试(FSCS by Candidate Test Set Reduction,FSCS-CTSR)。FSCS-CTSR的主要思想是,保持候选集大小不变,在每次测试用例选择的迭代过程中,按一定策略过滤掉与已执行测试用例集相似性较高的候选测试用例,将剩余的候选测试用例保留,然后以随机生成的候选测试用例补充候选测试用例集至既定规模。这样,在下一轮候选测试用例选择中,与随机生成的候选测试用例相比,保留的候选测试用例都已完成与已执行测试用例的相似性计算,因此可以减少时间开销。仿真验证和真实程序测试实验结果表明,FSCS-CTSR在保证了FSCS-ART的故障检测能力的前提下,降低了近一半的时间开销。2、针对已执行测试用例集,设计了两种计算开销较小约束过滤条件:1)部分验证的距离;2)近似距离。提出了基于已执行测试用例集约简的固定大小候选集自适应随机测试(FSCS by Executed Test Set Reduction,FSCS-ETSR)。FSCS-ETSR在为候选测试用例寻找最近邻的过程中,先根据候选测试用例与已执行测试用例的已知信息计算约束条件并与当前的最小距离比较,从而过滤掉那些不可能成为候选测试用例最近邻的已执行测试用例,降低计算开销。实验结果表明,在低维输入域下,以部分验证的距离作为约束准则的FSCS-ETSR在保证FSCS-ART故障检测能力的基础上,降低了时间开销;在高维输入域下,以近似距离作为约束准则的FSCS-ETSR具有比FSCS-ART更好的故障检测能力和效率。3、设计并实现了基于过滤机制的高效自适应随机测试原型系统。该原型系统由算法设置模块、仿真测试模块、真实程序测试模块以及统计分析模块构成,达到了较高的自动化程度。本研究基于实现的原型系统在数值程序测试中验证了所提出的两个算法的有效性。