论文部分内容阅读
软件测试自动化是软件测试发展的必然趋势。目前自动化测试技术的发展非常迅速,出现了很多成熟的自动化测试工具。然而,现有的自动测试技术大多是针对测试执行、结果捕获与分析、结果验证和报告等方面的,针对测试用例自动生成的还很少。测试用例生成作为自动测试的一个不可或缺的组成部分,其非自动化会阻碍软件测试自动化的发展,因此开展测试用例自动生成方法的研究具有一定的理论和实践意义。随着航天领域的发展,航天相机的研制越来越受到各国的普遍重视。航天相机主控软件是航天相机系统的重要组成部分,其可靠性和安全性都具有很高的要求。满足这种高质量软件要求的一个重要途径是进行软件测试。软件测试分为手工测试和自动化测试。自动化测试不仅可以提高软件测试的效率还能够减少测试过程中人为因素的干扰,提高测试的准确性。本文以航天相机主控软件为背景,研究软件测试用例自动生成技术。目前测试用例自动生成技术中所采用的方法有多种,基于人工智能的方法是其中较为突出、性能较好的一种方法。智能规划是人工智能中一个多领域交叉的研究领域。应用范围包括程序验证、生产控制、军事对抗等领域,发展前景广阔。目前,智能规划的应用已经扩展到航天领域,Ariane火箭和RAX(Remote Agent Experiment)中也都采用了规划方法。近年来,国外已经将智能规划方法用于测试用例生成的研究,并且取得了一定的进展,但也还存在一定的不足之处。本文采用智能规划方法对软件测试用例自动生成技术进行了研究。现有规划器不同程度地存在组合爆炸问题,为防止测试用例生成过程中产生组合爆炸,而造成用例生成的失败,提出事实文件分解法对规划器所需事实文件进行划分,以降低大量状态组合的概率。针对现有规划器不能处理多个事实文件,提出多事实文件处理算法。以规划器中性能较好的IPP规划器为基础,将两种算法加以应用,改进后的IPP规划器称作MF-IPP,MF-IPP规划器能够处理多个事实文件,再结合事实文件分解法,能够有效降低用例生成过程中状态组合的几率。以某航天相机为例,将MF-IPP规划器应用到其主控软件测试用例自动生成中。首先从问题形式化着手,将需求中的功能说明部分用ADL语言进行形式化,产生规划器所需的操作文件和事实文件;其次利用MF-IPP规划器生成软件功能的初始测试用例;最后提出解扩展的方法,对初始测试用例进行迭代解扩展、同效解扩展和参数解扩展,来完成最终测试用例的生成。根据所提出的航天相机主控软件测试用例生成模型设计了测试用例生成系统,并将该系统应用于实验分析。该系统可以完成的主要功能包括需求形式化、初始用例生成、最终测试用例生成。针对规划方法的特点提出两种覆盖准则:操作覆盖准则和状态覆盖准则,依据两种覆盖准则对测试用例生成系统进行了分析,结果显示,所生成的测试用例能够很好的完成操作和状态的覆盖。对MF-IPP规划器的性能进行了分析,分析结果显示,MF-IPP能够将指数级的状态增长降低为线性级的增长,并且增长趋势缓慢,因此能够很好地防止用例生成过程中组合爆炸问题的产生。