论文部分内容阅读
随着计算机技术的发展,以软件系统为核心的计算机应用已经渗透到各行各业,在工业、国防、以及人们的日常生活中起着越来越重要的作用。随之而来的软件质量问题和软件产品生产率低下等问题越来越受到人们的重视。在软件工程领域,尽管人们提出和采用了许多提高软件质量的技术和方法,但软件测试一直是保证软件质量的主要途径。目前,测试用例选取技术已成为软件测试的一个重要研究方向,好的测试用例集能够极大地减少测试工作量,降低测试成本,提高软件开发效率。因此,对用于指导测试用例选取的软件测试策略进行深入研究具有重要意义,尽管人们在这方面做了大量研究,但仍存在这样两个值得深入研究的问题:如何根据给定的测试目标设计一个最优测试策略以及如何将软件测试的反馈机制系统的运用起来。软件控制论正是为解决这两个问题而提出的。基于软件控制论的软件测试方法利用反馈控制思想解决软件测试问题,把被测软件作为受控对象,测试策略作为相应的控制器,二者构成一个闭环反馈系统。本文在已有的研究基础上对软件测试的控制论方法进行了深入的研究,主要包括以下几个方面:(1)研究了软件测试的Markov决策模型。针对已有Markov决策模型中存在的不足,对制约条件进行了一系列新的转换,构建了一种以需求覆盖率为测试停止标准的Markov决策模型,该模型与实际的软件测试过程更接近,具有更高的实用性。(2)研究了软件测试的反馈控制律。通过研究和分析软件测试过程中的一些反馈信息与软件测试效果的关系,设计了一种由测试用例的关注需求覆盖率、缺陷检测能力、关键度以及测试代价回报四个因素共同制约的控制器(即测试策略)。(3)研究了参数估计算法及相应的自适应测试策略。根据最优测试目标和所设计的控制器,设计了基于关注需求覆盖的测试用例选取概率估计算法和基于测试结果的代价回报估计算法,并提出了一种基于贪心算法的测试用例选取方法,测试过程中根据参数估计结果,运用贪心算法对测试策略进行在线调整,最终实现软件的自适应测试。最后,本文做了一系列仿真实验,验证了各控制器制约因子在实现测试目标过程中所做的贡献,并与随机测试策略进行了比较,实验结果表明,本文提出的自适应测试策略是有效的,能够实现尽早地检测到尽可能多的严重等级较高的软件缺陷这一目标。