关键词:
软件测试
适应性随机测试
测试用例
信息熵
失效检测能力
摘要:
随着社会信息化程度的日益提高,计算机软件已经被广泛应用于技术产业和国民生活的各个方面,其规模和复杂程度也日益增长。作为保障软件质量、提高软件可靠性的重要手段,软件测试在软件开发活动中发挥着至关重要的作用。在软件测试中,测试用例的选择一直是自动化测试的基础与关键环节,对测试效果的好坏起决定性作用。因此,如何使产生的测试用例具有较强的代表性和较高的揭错概率,一直是软件测试领域的一个热点问题。在现有的众多测试用例生成方法中,适应性随机测试(Adaptive Random Testing,ART)能够保证测试用例尽可能“均匀”地分布于输入域中,进而显著地提升软件失效的检测效果。作为适应性随机测试中的经典算法,FSCS-ART(Fixed-Sized-Candidate-Set ART)因具备较好的揭错能力,自提出后便被深入研究和广泛应用。然而随着输入域维度的升高,FSCS-ART的失效检测效果会明显降低。此外,该算法还存在着较为严重的计算开销问题。针对上述两类问题,本文首先从改善检测效果的角度出发,提出了FSCS-Entropy算法(FSCS-ART based on Entropy),该算法综合考虑了候选用例的最短距离指标和信.息熵指标,以此来获得更为“均匀”的测试用例分布。随后从提升计算效率的角度出发,提出了针对低维情形下的加速算法DF-FSCS-Entropy,以及高维情形的加速算法RF-FSCS-Entropy与:CR-FSCS-Entropy。上述改进算法分别通过距离感知的遗忘策略和基本的遗忘策略来降低FSCS-Entropy算法的计算开销。最后,为了验证FSCS-Entropy及其改进算法的有效性,本文开展了较为详尽的模拟实验和实证分析。实验结果表明,相比原版的FSCS-ART算法,在低维输入域中FSCS-Entropy算法具有与其相当的失效检测效果,而在高维输入域中FSCS-Entropy则表现出了更强的失效检测能力。各个加速算法均大幅提升FSCS-Entropy算法的计算效率,并且检测效果仅有略微的下降。测试用例的自动化生成技术有助于软件开发和测试人员在更短时间内开发出更高质量的产品,通过代替繁复的手工测试来节省大量的时间和开销。本文通过改进适应性随机测试的用例生成策略,提出了FSCS-Entropy算法及其加速版本,将对随机测试的学术研究和工业应用提供一定的参考。