一种基于层次分析理论的软件测试方法

文档序号:6571568阅读:770来源:国知局
专利名称:一种基于层次分析理论的软件测试方法
技术领域
本发明涉及系统软件测试领域,具体地说是一种基于层次分析理论的软件测试方法。
背景技术
根据测试理论,软件缺陷的分布满足帕累托原则,即测试发现的所有错误中的80%很可能集中在20%的模块中,另外20%的错误很可能集中在80%的程序模块中,即对缺陷集中分布的20%的模块开展的测试工作更有意义。因此,将精力集中于关键的测试项目,尽可能暴露软件隐含的缺陷,才能实施高效的软件测试。而在实际工程中多数项目采用基于软件需求和数据流的测试策略,这种测试策略相对比较简单,用于验证软件是否满足规定的 功能、性能等质量特性。但该方法在发现软件问题方面存在局限性,忽略了软件模块间的差异性,没有综合考虑影响软件质量的各种因素而进行有针对性的测试,测试效率不高。在制定测试设计策略的过程中,必须综合考虑影响测试重要度的诸多因素,明确因素间的相互关系,进而得到最终的设计原则。而该项工作在实际测试过程中往往被忽视,测试人员习惯于凭直觉制定测试设计策略,或者认为每个测试项目的重要度、优先级都相同,缺乏设计策略的细致考虑。

发明内容
本发明的目的是提供一种基于层次分析理论的软件测试方法。该方法是从测试效率的角度出发,研究了测试重要度的决策分析算法,采用层次分析理论,实现测试设计重要度的分析,为制定测试设计策略提供理论依据。本发明的目的是按以下方式实现的,定义测试模块重要度划分原则如下
1)模块重要度原则模块重要度与对应的测试重要度呈一致性对应关系,即模块重要度越高,其测试重要度也越高;
2)缺陷分布原则缺陷分布概率与对应的测试重要度呈一致性对应关系,即缺陷分布概率越高的模块,其测试重要度也越高;
因此,依据测试重要度划分的原则对所要测试的系统软件进行具体而有效地划分步骤如下
(I)建立层次结构模型;
选用参考指标,包括模块重要度指标和影响缺陷分布的软件特性指标,说明测试重要度确定的具体过程,选取指标具体包括软件关键级别、成熟度、千行代码文档页数、规模、圈复杂度、自测试情况,其中软件关键级别属于软件重要度范畴,而其他指标属于影响软件缺陷分布因素的范畴,这些指标具有以下特点
I)影响软件的缺陷分布和缺陷级别;2)比较直观,测试设计之前测试人员可通过软件或相关文档直接获得;指标确定之后,需要对指标进行综合分析,衡量指标间的相互权重关系,该过程主要依据缺陷分布预测理论,采用层次分析法能有效确定权重,层次分析法是把复杂问题分解成各个组成因素,又将这些因素按支配关系分组形成递阶层次结构,通过两两比较的方式确定各个因素相对重要性,然后综合决策者的判断,确定决策方案相对重要性的总排序,需要注意的是,确定测试重要度的目的并非仅局限于排列测试的先后顺序,其最终目的是通过不同模块测试重要度的比对,明确不同重要度的模块采用不同的测试分析和设计策略,层次模型建立如下
方案层(A)包括模块A测试、模块B测试、模块C测试;
目标层(G)包括测试重要度;
规则层(C)包括关键级别、成熟度、千行代码文档页数、规模、复杂度、自测试情况;
(2)计算权向量并做一致性检验
层次模型构建完成后,通过计算判断矩阵中的特征值和相对应的特征向量分析权重, 并根据一致性指标进行检验,确定测试数据的相对重要性,采用层次分析法的测试设计重要度分析,能够综合考虑影响测试重要度的相关因素,主观判断与客观数据相结合,获得最终的分析结果,进而为高优先级的测试项目配置更多的资源和采用更为全面的测试覆盖策略和分析策略,进而提高测试效率和质量,使得资源一定的条件下发现更多的软件缺陷,达到提升软件质量的最终目的,进行测试设计重要度分析的过程中,并非孤立地采用层次分析法,其中还涉及到缺陷预测的相关理论,只有将这些策略和方法有机地结合,才能使该项工作更加严谨,获得的结果更为真实可信。本发明的有益效果是软件测试决策分析是软件测试设计的关键环节,测试设计策略制定是否有效、充分对软件测试结果有着非常重要的影响。通常情况下,软件测试工作是在有限的资源和环境下进行,研究如何制定测试策略,实现测试效率最大化,具有至关重要的意义。
具体实施例方式实施本发明的一种基于层次分析理论的软件测试方法,
首先必须明确软件测试重要度的划分原则和影响因素指标。国内外一些学者认为软件测试的根本目的就是发现软件存在的缺陷,并以此作为衡量软件测试工作有效性的一个关键指标。另外,从软件重要度的划分可以知道,软件重要度级别越高的模块,对软件的安全性和关键任务的影响越大。基于上述分析,定义如下的测试重要度划分原则;
1)模块重要度原则模块重要度与对应的测试重要度呈一致性对应关系,即模块重要度越高,其测试重要度也越高;
2)缺陷分布原则缺陷分布概率与对应的测试重要度呈一致性对应关系,即缺陷分布概率越高的模块,其测试重要度也越高。无论如何划分,核心的思想都是根据软件对整个系统任务和安全的影响进行划分。因此,获取软件重要度的信息并不困难。确定测试重要度的难点在于软件的缺陷分布概率分析,基于缺陷分布预测理论是解决问题的一个非常有效的途径.关于这方面的技术理论已经形成并在不断完善。20世纪70年代,基于软件规模等度量元的缺陷预测技术逐渐发展,形成了一些软件缺陷预测模型并在实践中得到良好的应用。例如Akiyama分析了程序验证开始阶段之前程序中所可能有的软件缺陷数量,并提出的软件缺陷与代码行的关系式D=4.86+0. 018L(D为缺陷数,L为行数);Takahashi将代码与具体的文档数量对应起来,给出了缺陷密度的估计式
权利要求
1.一种基于层次分析理论的软件测试方法,其特征在于定义测试模块重要度划分原则如下 1)模块重要度原则模块重要度与对应的测试重要度呈一致性对应关系,即模块重要度越高,其测试重要度也越高; 2)缺陷分布原则缺陷分布概率与对应的测试重要度呈一致性对应关系,即缺陷分布概率越高的模块,其测试重要度也越高; 因此,依据测试重要度划分的原则对所要测试的系统软件进行具体而有效地划分步骤如下 (1)建立层次结构模型; 选用参考指标,包括模块重要度指标和影响缺陷分布的软件特性指标,说明测试重要度确定的具体过程,选取指标具体包括软件关键级别、成熟度、千行代码文档页数、规模、圈复杂度、自测试情况,其中软件关键级别属于软件重要度范畴,而其他指标属于影响软件缺陷分布因素的范畴,这些指标具有以下特点 I)影响软件的缺陷分布和缺陷级别;2)比较直观,测试设计之前测试人员可通过软件或相关文档直接获得;指标确定之后,需要对指标进行综合分析,衡量指标间的相互权重关系,该过程主要依据缺陷分布预测理论,采用层次分析法能有效确定权重,层次分析法是把复杂问题分解成各个组成因素,又将这些因素按支配关系分组形成递阶层次结构,通过两两比较的方式确定各个因素相对重要性,然后综合决策者的判断,确定决策方案相对重要性的总排序,需要注意的是,确定测试重要度的目的并非仅局限于排列测试的先后顺序,其最终目的是通过不同模块测试重要度的比对,明确不同重要度的模块采用不同的测试分析和设计策略,层次模型建立如下 方案层(A)包括模块A测试、模块B测试、模块C测试; 目标层(G)包括测试重要度; 规则层(C)包括关键级别、成熟度、千行代码文档页数、规模、复杂度、自测试情况; (2)计算权向量并做一致性检验 层次模型构建完成后,通过计算判断矩阵中的特征值和相对应的特征向量分析权重,并根据一致性指标进行检验,确定测试数据的相对重要性,采用层次分析法的测试设计重要度分析,能够综合考虑影响测试重要度的相关因素,主观判断与客观数据相结合,获得最终的分析结果,进而为高优先级的测试项目配置更多的资源和采用更为全面的测试覆盖策略和分析策略,进而提高测试效率和质量,使得资源一定的条件下发现更多的软件缺陷,达到提升软件质量的最终目的,进行测试设计重要度分析的过程中,并非孤立地采用层次分析法,其中还涉及到缺陷预测的相关理论,只有将这些策略和方法有机地结合,才能使该项工作更加严谨,获得的结果更为真实可信。
全文摘要
本发明提供一种基于层次分析理论的软件测试方法,软件测试决策分析是软件测试设计的关键环节,测试设计策略制定是否有效、充分对软件测试结果有着非常重要的影响。通常情况下,软件测试工作是在有限的资源和环境下进行,研究如何制定测试策略,实现测试效率最大化,具有至关重要的意义。
文档编号G06F11/36GK102799531SQ20121026025
公开日2012年11月28日 申请日期2012年7月26日 优先权日2012年7月26日
发明者曹玲玲, 张新玲, 杨振林, 马旭军 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1