论文部分内容阅读
回归测试是软件开发过程中昂贵的却又需要频繁执行的软件维护活动,软件测试的任何阶段均涉及到回归测试问题。测试用例最小化是一种重要的回归测试缩减技术,目的是在满足测试需求的前提下,最大限度地降低回归测试规模,提高回归测试效率。本文围绕着缩减回归测试代价这一目标,基于面向对象软件测试度量和自动化测试环境的开发等工作,在测试用例最小化模型和算法等方面进行了较为深入的研究,主要包括以下几个方面:1.基于中间数据库的测试引擎的设计与实现。本文提出的测试该引擎由三个部分构成:程序分析器、插装工具以及中间数据库。引擎的设计充分考虑了软件组件的复用,使得以该引擎为核心的测试环境具有良好的可扩展性;中间数据库中存储的程序结构信息和测试历史信息,在提供各种静态测试报告和动态测试报告的基础上,是进行回归测试及回归测试选择的基础。2.测试用例最小化问题的数学模型。基于块的测试覆盖度量和测试历史信息,本文提出了具有良好通用性的测试用例最小化问题的数学模型,并将其转化为整数规划模型。该模型能够方便地进行修改以适应不同的测试选择要求和测试覆盖度量标准,是实现测试用例选择自动化的基础。3.新的测试用例最小化贪心算法。测试用例最小化的目的是得到一个能够满足测试需求的最小回归测试用例集。为了得到最小代价的回归测试用例集,本文在研究现有测试用例最小化贪心算法的基础上,提出了新贪心算法。不同于一般算法,该算法综合考虑了测试用例在以往测试中的测试覆盖度和运行代价。实验结果表明:新测试用例最小化贪心算法能更有效地缩减回归测试用例集的测试运行代价,测试运行代价因素的考虑,能提高算法的用例优化效果。4.测试用例最小化遗传算法。为了进一步提高最小化效果,本文研究将遗传算法应用于测试最小化:基于测试历史信息,进行编码和种群初始化,设计适应度函数、三个遗传算子,实现了测试用例最小化遗传算法。实验结果表明:测试用例最小化遗传算法能够显著降低测试用例集的规模和测试代价,并且具有比新测试用例最小化贪心算法更好的最小化能力和更高的最小化效率,显示了其全局优化算法的优越性;并且考虑代价因素能提高优化效果。5.对测试用例最小化技术的评价。最后本文提出了对测试用例最小化算法的综合评价,包括充分性、精确性、效益和通用性等四个方面,并根据这些指标,对以上两个算法进行模拟实例研究和评价。