论文部分内容阅读
随着计算机技术的日益成熟,各种结构复杂、功能强大的计算机系统被广泛应用到航空航天、交通运输、医疗卫生和核电能源等安全关键领域。一旦这些系统失效,将造成人类生命财产的重大损失或者环境的严重破坏,软件质量日益成为被关注的焦点。针对如何确保软件开发质量问题,虽然已经提出了许多技术和方法,但迄今为止,软件质量主要还是要靠软件测试来保证。软件测试是软件开发过程中一个十分重要并且成本昂贵的过程,因此,降低软件测试成本,提高测试效率具有十分重要的意义。
组合测试作为一种科学有效的软件测试方法,可以使用较少的测试用例有效地检测软件系统中各个因素以及它们之间的相互作用对系统产生的影响。而测试同样也可以看作是一个抽样过程,一种有效的抽样或选择策略则可以在保证测试用例集质量的同时,尽可能减小测试用例集的规模,从而降低软件测试的成本。另外测试用例集的约简、排序等优化技术,力求在提高软件测试效率的同时,也将降低软件测试成本。
本文从组合测试用例集的生成、测试用例集的优化以及测试策略优化等方面,进行了系统而深入地研究:(1)针对二维组合测试及t维组合测试(t>2),提出了多种相应的测试用例集生成算法;(2)从测试策略优化的角度,给出基于蚁群算法的测试优化策略;(3)从测试资源约束的角度,给出双目标测试用例集的优化技术。取得了以下的一些成果:
在研究已有组合测试用例集生成技术的基础上,针对二维组合测试,提出了基于交叉熵和粒子群算法的两种测试用例集生成方法,通过实验表明,这两种生成方法与其它现有的生成方法相比具有一定的优势和特点;针对t维组合测试(t>2),提出一种基于差阵的代数递归构建新方法,该方法在已有的覆盖阵基础上可大规模地扩展参数个数,实现任意t个参数组合的有效覆盖,是一种实用的生成高维组合测试的代数递归新方法;另外还给出基于完美哈希阵生成t维组合覆盖阵方法及理论推导。
研究了基于测试策略的测试用例集优化,提出了基于蚁群算法的软件测试优化方法,该方法是以最小化软件测试的平均费用为目标,运用蚁群算法搜索最优测试剖面,进而得到优化的测试用例集,可以有效地降低软件测试费用,提高软件测试效率。通过实验结果表明,该方法要明显优于随机测试方法,同时与其它测试方法相比具有一定的特点和优势。
提出了资源约束的双目标测试用例集优化技术,并给出了基于交叉熵求解的资源约束下双目标测试用例集优化方法。通过实验表明,该方法可以尽可能多覆盖测试需求,并尽快地执行覆盖高优先级的测试需求,优化效果明显优于其它多种优化方法。