`
jy503160
  • 浏览: 20140 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

转载--软件测试缺陷分析方法简介

阅读更多

ODC分析法

  ODC(正交缺陷分类)分析方法最早由IBM的waston中心推出,是将一个缺陷在生命周期的各环节的属性组织起来,从单维度、多维度来对缺陷进行分析,从不同角度得到各类缺陷的缺陷密度和缺陷比率,从而积累得到各类缺陷的基线值,用于评估测试活动,指导测试改进和整个研发流程的改进;同时根据各阶段缺陷分布得到缺陷去除过程特征模型,用于对测试活动进行评估和预测。

  无论测试人员还是开发人员在创建和处理一个缺陷时首先都要添加一些字段内容用于后面的ODC分析。

  创建缺陷人员需要填写的字段内容主要有:发现缺陷活动、功能模块、结果影响、严重程度和缺陷类型等。处理缺陷人员需要填写的字段内容主要有:开发处理决定、缺陷注入阶段等。(字段可以根据分析需要进行扩充、删减)

  基于这些字段内容便可以对累计的缺陷数据,根据不同需要单独或两两作出不同维度的数据分析。主要通过数据图表的形式来显示分析结果,常用的图表为饼图(单维度)、直方图(多维度)。通过结果评估测试活动,指导测试改进和研发流程改进。

  单维度分析主要采用饼图反映所选属性中各类缺陷数量所占比例。如对“功能模块”属性进行单维度分析,目的在于通过各个功能模块的缺陷密度,了解各个功能模块的质量状况。生成的饼图如下:

  多维度分析采用直方图的方式,结合两个或者多个属性对缺陷进行分析。如使用“功能模块”属性结合“严重程度”属性进行二维度分析。目的在于通过各个模块所产生的缺陷的严重级别了解各个模块的开发质量状况。生成的直方图如下:

  Gompertz分析法

  软件测试是为了发现软件产品中存在的缺陷,是软件质量保证的重要阶段。质量、进度和成本是软件项目关注的三大要素,它们互相依赖、互相制约。测试的总目标是充分利用有限的人力、物力,高效率、高质量的完成测试。Gompertz分析方法是在利用已有测试数据的基础上,对测试过程进行定量分析和预测,对软件产品质量进行定量评估,对是否结束测试任务给出判断依据。

 

我们在日常的软件测试过程中会发现,在测试的初始阶段,测试人员对测试环境不很熟悉,因此日均发现的软件缺陷数比较少,发现软件缺陷数的增长较为缓慢;随着测试人员逐渐进入状态并熟练掌握测试环境后,日均发现软件缺陷数增多,发现软件缺陷数的增长速度迅速加快;但随着测试的进行,软件缺陷的隐藏加深,测试难度加大,需要执行较多的测试用例才能发现一个缺陷,尽管缺陷数还在增加,但增长速度会减缓,同时软件中隐藏的缺陷是有限的,因而限制了发现缺陷数的无限增长。这种发现软件缺陷的变化趋势及增长速度是一种典型的‘S’曲线,满足Gompertz增长模型的应用条件。模型表达式为:

  Y=a*b^(c^T)

  其中Y表示随时间T发现的软件缺陷总数,a是当T→∞时的可能发现的软件缺陷总数,即软件中所含的缺陷总数。a*b是当T→0时发现的软件缺陷数,c表示发现缺陷的增长速度。我们需要依据现有测试过程中发现的软件缺陷数量来估算出三个参数a,b,c的值,从而得到拟合曲线函数。

  对于三个参数a,b,c的估算需要大量复杂的数学计算过程,下面通过一个实例来做简单说明:

  某测试项目,已经执行测试21周,测试数据如下表所示:

  通过对以上测试数据进行数学计算并采用“非线性回归最小二乘法”,最终估算出a,b,c三个参数分别为448.685,0.078和0.874。则得到的Gompertz增长模型拟合曲线函数为:

  Y=a*b^(c^T)=448.685*0.078^(0.874^T)

  生成的曲线图如下:

  从得到的拟合曲线函数可以看出,该软件产品的总缺陷数估计共有448.685个(极限缺陷数=449)。执行测试21周后,共计发现缺陷数374个,发现缺陷率为83.3%,测试是不充分的。以目前的测试能力来看,若要想将发现缺陷率达到95%,在考虑进一定标准偏差和相关系数前提下,需要发现缺陷数至少达到419.93个。则有:

  419.93= a*b^(c^T)= 448.685*0.078^(0.874^T)

  解得T=28,即要测到第28周,还需要再测7周时间可将发现缺陷率提高到95%。之后产品经理就可以根据产品的质量等级、产品成本以及产品进度决定是继续测试还是退出测试。

  需要说明的是,这个方法使用前提是产品的整个测试活动中测试能力保持相对稳定,同时对测试过程中发现的缺陷只做数量上的处理,不做等级上的划分,这是这个方法的不足之处。

DRE/DRM分析法

  DRE/DRM分析法是通过已有项目历史数据,得到软件生命周期各阶段缺陷注入和排除的模型,用于设定各阶段质量目标,评估测试活动。

  缺陷排除效果分析DRE矩阵:

  DRE主要针对历史数据,矩阵的每一列代表缺陷在何时(什么阶段)引入(产生),每一行代表发现缺陷时开展的工作。矩阵中的数值代表已经发现的缺陷数量。例如:在做代码审查工作时发现1095条缺陷,其中12条是在需求阶段就已经产生,941条是在编码阶段产生。而经过各项测试工作后,发现的缺陷中有1537条是在编码阶段引入。

  本矩阵的目标是要分别计算出各个阶段的缺陷移除率为后面所用。缺陷移除率的定义为当前阶段工作实际发现的缺陷数量占当前阶段应该发现的缺陷数量的比值。例如:做单元测试时实际发现332条缺陷,在单元测试及之前阶段应该已经发现122+859+939+1537+2=3459条缺陷,而在做单元测试工作之前已经发现730+729+1095=2554条缺陷。就是说单元测试工作本该可以发现到3459-2554=905条缺陷,实际却发现332条缺陷,缺陷移除率为332/905=36.7%。其他阶段的缺陷移除率依此算法都可得到。

  下面就可以用DRM缺陷排除模型进行项目质量策划。

  其中“前一阶段泄露的缺陷”等于上一阶段“阶段出口缺陷数”。每个阶段的“注入缺陷”一般来自于历史数据的平均值(经验值)。“缺陷排除有效率”同样来自于对历史数据的计算(前面已经提到)。“排除缺陷数”为我们最终想要的结果,它等于每个阶段还未排除的缺陷数(小计部分)与此阶段的缺陷排除有效率的乘积。从这个结果我们能估算出如果按之前的经验我们在每个阶段应该能发现的缺陷数。如果想降低最终“现场”阶段发现的缺陷,在每个阶段注入缺陷一定的情况下需要提高缺陷排除有效率来达到目的,它的提高意味着每个阶段排除缺陷数量的提高,也是质量目标的提高。

分享到:
评论

相关推荐

    GBT 9386-2008 计算机软件测试文档编制规范.pdf

    5. 测试结果的记录和分析:测试过程中的每一步操作和每项发现都要记录在案,包括测试用例的执行情况、软件的缺陷和问题等。对测试结果的分析可以帮助发现软件中的问题和不足,为后续的改进提供依据。 6. 测试报告的...

    GBT 15532-2008 计算机软件测试规范

    该标准主要涵盖了软件测试的基本概念、测试过程、测试方法、测试工具的选择以及测试文档等方面的内容。通过对这些方面的详细规定,旨在提供一套完整的软件测试框架,帮助测试人员更系统地进行测试工作。 ### 二、...

    GJBZ 141-2004 军用软件测试指南

    该标准涵盖了软件测试的基本概念、流程、方法以及文档管理等方面的内容。 ### 一、基本概念 1. **软件测试**:为了评估一个程序或系统的能力并确定它是否满足规定的用户需求而进行的任何一种活动。其目的是找出...

    GB 9386-2008-T 计算机软件测试文档编制规范

    GB 9386-2008-T 标准规定了计算机软件测试文档的基本要求和编制方法,适用于各种类型的软件测试,包括单元测试、集成测试、系统测试和验收测试等。标准主要包括以下几个方面的内容: 1. 测试文档分类:根据测试阶段...

    软件工程SW06-1-软件测试.pptx

    课程内容 测试目的和策略 测试方法 测试技术 测试工具 测试过程 2 软件工程SW06-1-软件测试全文共56页,当前为第2页。 测试目的和策略 3 软件工程SW06-1-软件测试全文共56页,当前为第3页。 什么是软件测试 狭义的...

    软件测试用例的设计-白盒测试---佣金数据流测试分析.ppt

    软件测试用例的设计-白盒测试---佣金数据流测试分析.ppt

    软件缺陷分类标准

    ### 软件缺陷分类标准详解 #### 一、引言 软件开发过程中,软件缺陷是不可避免的现象之一。为了有效地管理和追踪这些缺陷,制定一套合理的软件缺陷分类标准至...正确的态度和方法对于有效管理和解决软件缺陷至关重要。

    软件测试基础---软件测试入门基础知识

    黑盒测试关注的是软件的外部行为,通过等价类划分、边界值分析、因果图分析和错误猜测等方法寻找软件的潜在问题。例如,等价类划分是将输入数据划分为若干等价类别,只需为每个类别的代表值设计测试用例,以覆盖尽...

    软件测试缺陷报告模板

    "软件测试缺陷报告模板" 根据提供的文件信息,我们可以从标题、描述、标签和部分内容中提取以下知识点: 1. 软件测试缺陷报告模板的重要性: 在软件测试过程中,编写规范的测试用例是非常重要的。测试用例编写...

    软件测试-软件测试-软件测试概述.pptx

    在这篇文章中,我们将对软件测试的概念、模型、原则和方法进行详细的介绍,并结合实际案例来分析软件测试的重要性。 一、软件测试概述 软件测试是软件开发过程中为了确保软件质量和可靠性而进行的一系列活动。软件...

    软件测试简介-软件测试工程师培训

    **六、微软软件测试简介** 微软作为全球领先的软件公司,拥有严谨的测试文化。其测试过程通常包括: - 使用专门的测试工具,如Visual Studio Test Explorer,进行自动化测试。 - 强调持续集成和持续交付,以快速反馈...

    ODC简介-缺陷分析

    ODC是一种系统性的方法,用于收集和分析软件开发过程中出现的缺陷信息。它通过定义一系列与软件开发活动相关的属性来捕捉缺陷的特征。这些属性分为两大类:一是当缺陷被发现时记录的信息;二是当缺陷被修复或关闭时...

    软件测试-----无忧测试(2)

    【软件测试-----无忧测试(2)】是一本专注于软件测试领域的专业杂志,由51testing发布。这本杂志深入探讨了软件测试的各种方面,旨在帮助读者掌握最新的测试技术和方法,提高测试效率,确保软件产品的质量和可靠性。...

    CMMI质量管理体系-软件测试缺陷管理ppt课件.ppt

    "CMMI质量管理体系-软件测试缺陷管理ppt课件" 本资源是关于CMMI质量管理体系的软件测试缺陷管理的PPT课件,主要介绍了软件测试缺陷管理的概念、目的、过程和技术。 缺陷管理概念 软件测试缺陷管理是指在软件生命...

    测试需求分析方法-如何做测试需求分析

    在软件测试过程中,测试需求分析是一项至关重要的任务,它直接影响到测试用例设计的质量和测试覆盖率的...采用科学的分析方法,结合质量模型和测试类型,可以提高测试的系统性和准确性,从而提升软件产品的整体质量。

    软件测试教程-介绍软件测试的基本概念、测试方法、测试工具和测试流程,并提供一些案例和总结

    - 定义:基于软件的功能和需求规格说明书的测试方法。 - 技术:等价类划分、边界值分析、决策表等。 - 优势:无需了解软件内部实现细节,适用于快速验证功能。 2. **白盒测试**: - 定义:基于软件内部结构和...

Global site tag (gtag.js) - Google Analytics