《《测试管理》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《测试管理》PPT课件.ppt(65页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第16章章 测试管理测试管理罗罗 东东 俊俊0主要内容主要内容16.1测试管理基础测试管理基础 16.2测试执行周期的开始和结束测试执行周期的开始和结束16.3隔离测试环境和开发环境隔离测试环境和开发环境16.4测试用例的有效管理测试用例的有效管理16.5缺陷追踪管理缺陷追踪管理16.6测试的评测测试的评测116.1测试管理基础测试管理基础16.1.1 软件测试管理的内容软件测试管理的内容16.1.2 软件测试管理工具软件测试管理工具216.1.1 软件测试管理的内容软件测试管理的内容软件测试管理的目的是确保软件测试技术在软件测试管理的目的是确保软件测试技术在项目的生命周期内得到顺利实施,并
2、产生预项目的生命周期内得到顺利实施,并产生预期的效果。期的效果。按照管理的对象不同,软件测试管理大致可按照管理的对象不同,软件测试管理大致可分为:分为:软件测试团队组织管理软件测试团队组织管理软件测试计划管理软件测试计划管理软件缺陷软件缺陷(错误错误)跟踪管理跟踪管理软件测试件管理软件测试件管理3软件测试团队组织管理软件测试团队组织管理 就是指测试团队应该如何组建。就是指测试团队应该如何组建。通常,一个好的测试团队首先要有好的带头人,这个带头人通常,一个好的测试团队首先要有好的带头人,这个带头人必须具有极为丰富的开发经验,对开发过程中常见的缺陷或必须具有极为丰富的开发经验,对开发过程中常见的缺
3、陷或错误了然于胸,此外,他还应具有亲和力和人格魅力。错误了然于胸,此外,他还应具有亲和力和人格魅力。其次,测试团队还应有具备一技之长的成员,例如对某些自其次,测试团队还应有具备一技之长的成员,例如对某些自动化测试工具运用娴熟或能轻而易举地编写自动化测试脚本。动化测试工具运用娴熟或能轻而易举地编写自动化测试脚本。另外,测试团队还应有兼职成员,例如验收测试实施过程中,另外,测试团队还应有兼职成员,例如验收测试实施过程中,同行评审是最常使用的一种形式,这些同行专家就属于兼职同行评审是最常使用的一种形式,这些同行专家就属于兼职测试团队成员的范畴。测试团队成员的范畴。测试团队里往往包括几个开发经验欠缺的
4、新成员,这部分人测试团队里往往包括几个开发经验欠缺的新成员,这部分人员可以安排去从事交付验收或黑盒测试之类的工作。员可以安排去从事交付验收或黑盒测试之类的工作。4软件测试计划管理软件测试计划管理 就是指安排好测试流程就是指安排好测试流程。这部分内容具体涵盖软件测试策划、软件测试技术这部分内容具体涵盖软件测试策划、软件测试技术剪裁、测试进度管理、成本管理等几个部分。剪裁、测试进度管理、成本管理等几个部分。测试策划工作主要是指具体测试活动实施之前做好策划工测试策划工作主要是指具体测试活动实施之前做好策划工作,如起草测试大纲以及测试计划;作,如起草测试大纲以及测试计划;软件测试技术剪裁工作主要是指测
5、试团队应根据软件项目软件测试技术剪裁工作主要是指测试团队应根据软件项目的具体实际,剪裁出所要实施的测试技术;的具体实际,剪裁出所要实施的测试技术;测试进度管理工作主要是排出各项测试的时间进度及人员测试进度管理工作主要是排出各项测试的时间进度及人员安排,如有变动时应如何做相应调整;安排,如有变动时应如何做相应调整;测试成本管理工作主要指管理测试活动中会涉及到的资源测试成本管理工作主要指管理测试活动中会涉及到的资源需求。需求。5软件缺陷软件缺陷(错误错误)跟踪管理跟踪管理 就是确保发现的缺陷就是确保发现的缺陷(错误错误)已经被开发团队纠正或已经被开发团队纠正或处理过并且没有引入新的缺陷处理过并且没
6、有引入新的缺陷(错误错误)。具体来讲,当测试团队通过各种途径发现了文档或具体来讲,当测试团队通过各种途径发现了文档或代码中的缺陷或错误以后,并不是交一份测试报告代码中的缺陷或错误以后,并不是交一份测试报告就草草了事,而是在递交报告以后继续督促开发团就草草了事,而是在递交报告以后继续督促开发团队及时关闭已知缺陷或错误。当然,如有必要应对队及时关闭已知缺陷或错误。当然,如有必要应对这些缺陷、错误做严重程度排序,以便开发团队能这些缺陷、错误做严重程度排序,以便开发团队能视轻重缓急安排处理顺序。当开发团队关闭了测试视轻重缓急安排处理顺序。当开发团队关闭了测试报告中的缺陷报告中的缺陷(错误错误)以后,测
7、试团队还需验证开发以后,测试团队还需验证开发团队在关闭过程中有没有引入新的错误。通常,这团队在关闭过程中有没有引入新的错误。通常,这个过程称为回归测试。回归测试如发现问题,继续个过程称为回归测试。回归测试如发现问题,继续报告开发团队,按上述流程循环,直至回归测试最报告开发团队,按上述流程循环,直至回归测试最终通过。终通过。6软件测试件管理软件测试件管理 是指努力建设好测试团队的软件测试件库并是指努力建设好测试团队的软件测试件库并对测试团队成员进行技能培训以帮助他们能对测试团队成员进行技能培训以帮助他们能使用好这个软件测试件库。使用好这个软件测试件库。测试件测试件(Testware)是指测试工作
8、形成的产品,是指测试工作形成的产品,包括测试团队在长期实践过程中逐步积累起包括测试团队在长期实践过程中逐步积累起来的经验教训、测试技巧、测试工具、规格来的经验教训、测试技巧、测试工具、规格文档以及一些经过少量修改就能推广至通用文档以及一些经过少量修改就能推广至通用的测试脚本程序。的测试脚本程序。716.1.2 软件测试管理工具软件测试管理工具采用高水平的软件测试管理工具则能保证以一个较采用高水平的软件测试管理工具则能保证以一个较小规模的测试队伍完成复杂的大量的测试工作,以小规模的测试队伍完成复杂的大量的测试工作,以此来做到对成本和时间效率的有效管理。此来做到对成本和时间效率的有效管理。除此之外
9、,通过该软件,用户也可以及时地掌握软除此之外,通过该软件,用户也可以及时地掌握软件的测试和完成情况,并对整个过程进行监督和管件的测试和完成情况,并对整个过程进行监督和管理,这对用户控制成本和做相应的安排也是有好处理,这对用户控制成本和做相应的安排也是有好处的。的。目前,市场上主流的企业级测试管理工具主要有目前,市场上主流的企业级测试管理工具主要有Mercury TestDirector和和IBM RationalTest Manager 8TestDirector的主要功能的主要功能 用户权限管理用户权限管理TestDirector设置有六个用户组,分别为设置有六个用户组,分别为TDAdmin
10、、QATester、ProjectManager、Developer、Viewer、Customer 集中式项目信息管理集中式项目信息管理后台采用集中式的数据库后台采用集中式的数据库(Oracle、SQLServer、Access等等)分布式访问分布式访问 定义测试工作流程定义测试工作流程需求管理、规划测试、安排测试进度并运行测试、缺陷管需求管理、规划测试、安排测试进度并运行测试、缺陷管理、图示和报告理、图示和报告9开源软件测试管理工具开源软件测试管理工具 第一个工具为第一个工具为TestLink(http:/)第二个工具为第二个工具为Bugzilla Test Runner(http:/ 所
11、有的单元测试和集成测试已经成功完成。所有的单元测试和集成测试已经成功完成。软件的生成软件的生成(编译编译)过程没有任何错误。过程没有任何错误。软件版本通过了烟雾测试软件版本通过了烟雾测试(最基本的测试,关最基本的测试,关键功能的测试键功能的测试)。配套文档已经完成,文档的内容涉及软件版配套文档已经完成,文档的内容涉及软件版本的新功能和修改的内容。本的新功能和修改的内容。缺陷已经修正并且准备重新测试。缺陷已经修正并且准备重新测试。源代码已经存储在版本控制系统中源代码已经存储在版本控制系统中 12测试出口标准测试出口标准 已经执行了用来确定系统满足指定的功能性和非功已经执行了用来确定系统满足指定的
12、功能性和非功能性需求的测试过程。能性需求的测试过程。在测试结果中记录的所有在测试结果中记录的所有1级、级、2级和级和3级的软件问题级的软件问题都已经解决。都已经解决。在测试结果中记录的所有在测试结果中记录的所有1级、级、2级的软件问题都已级的软件问题都已经解决。经解决。在测试结果中记录的所有在测试结果中记录的所有1级、级、2级的软件问题都已级的软件问题都已经解决,同时经解决,同时90的的3级问题已经解决。级问题已经解决。软件发布时可能存在已知的低优先级的缺陷软件发布时可能存在已知的低优先级的缺陷(当然有当然有若干未知缺陷若干未知缺陷)。一些度量也可以作为出口标准的一部分一些度量也可以作为出口标
13、准的一部分缺陷修改的质量缺陷修改的质量、缺陷趋势分析、缺陷趋势分析 1316.3隔离测试环境和开发环境隔离测试环境和开发环境当测试组执行测试、实施测试策略时,测试当测试组执行测试、实施测试策略时,测试环境必须和开发环境分离开。环境必须和开发环境分离开。如果没有独立的测试环境,那么测试工作就如果没有独立的测试环境,那么测试工作就会遇到下面的一些问题:会遇到下面的一些问题:环境的变化环境的变化 版本管理版本管理 操作环境的变化操作环境的变化 1416.4测试用例的有效管理测试用例的有效管理15测试用例分析例子测试用例分析例子 1616.5缺陷追踪管理缺陷追踪管理软件缺陷的生命周期和处理流程软件缺陷
14、的生命周期和处理流程软件缺陷的严重性和优先级软件缺陷的严重性和优先级软件缺陷的报告、分离和再现软件缺陷的报告、分离和再现软件缺陷的度量软件缺陷的度量缺陷管理系统缺陷管理系统 17软件缺陷的生命周期和处理流程软件缺陷的生命周期和处理流程简单的软件缺陷生命周期简单的软件缺陷生命周期 18复杂的软件缺陷生命周期例子复杂的软件缺陷生命周期例子 19通用的软件缺陷生命周期通用的软件缺陷生命周期 20缺陷状态缺陷状态 21软件缺陷分类软件缺陷分类 22普通的缺陷处理流程普通的缺陷处理流程缺陷报告最初生成的状态为缺陷报告最初生成的状态为“新新”;赋予各个小组打开不同问题的能力(错误请求、变更请求、赋予各个小
15、组打开不同问题的能力(错误请求、变更请求、增强请求)增强请求)选择缺陷优先级选择缺陷优先级评估缺陷,为缺陷分配状态评估缺陷,为缺陷分配状态若状态为若状态为“打开打开”,则把缺陷分配给负责的人,变为,则把缺陷分配给负责的人,变为“开发开发”状态状态开始改正缺陷了,变为开始改正缺陷了,变为“正在开发正在开发”状态状态缺陷改正完了,改为缺陷改正完了,改为“修改完毕修改完毕”状态;或者状态;或者“工作正常工作正常”、“缺陷不能重现缺陷不能重现”若创建了新版本,所有改正的缺陷改为若创建了新版本,所有改正的缺陷改为“返测返测”状态状态测试工程师返测这些改动,设置状态为测试工程师返测这些改动,设置状态为“关
16、闭关闭-改正改正”、“返返测失败测失败”23普通的缺陷处理流程普通的缺陷处理流程24软件缺陷的严重性和优先级软件缺陷的严重性和优先级 严重性严重性(Severity)顾名思义就是软件缺陷对顾名思义就是软件缺陷对软件质量的破坏程度,即此软件缺陷的存在软件质量的破坏程度,即此软件缺陷的存在将对软件的功能和性能产生怎样的影响。将对软件的功能和性能产生怎样的影响。优先级优先级(Priority)是表示处理和修正软件缺是表示处理和修正软件缺陷的先后顺序的指标,即哪些缺陷需要优先陷的先后顺序的指标,即哪些缺陷需要优先修正,哪些缺陷可以稍后修正。修正,哪些缺陷可以稍后修正。处理严重性和优先级,既是一种经验技
17、术,处理严重性和优先级,既是一种经验技术,也是保证软件质量的重要环节也是保证软件质量的重要环节 25严重性严重性 vs.优先级优先级一般来说,严重性程度高的软件缺陷具有较一般来说,严重性程度高的软件缺陷具有较高的优先级。严重性高说明缺陷对软件造成高的优先级。严重性高说明缺陷对软件造成的质量危害性大,需要优先处理,而严重性的质量危害性大,需要优先处理,而严重性低的缺陷可能只是软件不太尽善尽美,可以低的缺陷可能只是软件不太尽善尽美,可以稍后处理。稍后处理。但是,严重性和优先级并不总是一一对应。但是,严重性和优先级并不总是一一对应。因为修正软件缺陷不是一件纯技术问题,有因为修正软件缺陷不是一件纯技术
18、问题,有时需要综合考虑市场发布和质量风险等问题。时需要综合考虑市场发布和质量风险等问题。26例如例如如果某个严重的软件缺陷只在非常极端的条件下产如果某个严重的软件缺陷只在非常极端的条件下产生,则没有必要马上解决。生,则没有必要马上解决。另外,如果修正一个软件缺陷,需要重新修改软件另外,如果修正一个软件缺陷,需要重新修改软件的整体架构,可能会产生更多潜在的缺陷,而且软的整体架构,可能会产生更多潜在的缺陷,而且软件由于市场的压力必须尽快发布,此时即使缺陷的件由于市场的压力必须尽快发布,此时即使缺陷的严重性很高,是否需要修正,需要全盘考虑。严重性很高,是否需要修正,需要全盘考虑。另一方面,如果软件缺
19、陷的严重性很低,例如,界另一方面,如果软件缺陷的严重性很低,例如,界面单词拼写错误,但是如果是软件名称或公司名称面单词拼写错误,但是如果是软件名称或公司名称的拼写错误,则必须尽快修正,因为这关系到软件的拼写错误,则必须尽快修正,因为这关系到软件和公司的市场形象。和公司的市场形象。27严重性的常用划分方法严重性的常用划分方法 28优先级的常用划分方法优先级的常用划分方法 29例如例如极少发生的数据毁坏缺陷应该划分为严重性极少发生的数据毁坏缺陷应该划分为严重性1,优先,优先级级3;导致用户电话求助的安装指示错别字应该划分为严导致用户电话求助的安装指示错别字应该划分为严重性重性3,优先级,优先级2;
20、只要一启动就崩溃的测试软件版本属于严重性只要一启动就崩溃的测试软件版本属于严重性1,优,优先级先级1;如果认为某按钮向页面下方再移动一点,则属于严如果认为某按钮向页面下方再移动一点,则属于严重性重性4,优先级,优先级4。软件缺陷的优先级在项目期间也可能会发生变化。软件缺陷的优先级在项目期间也可能会发生变化。原本标记为优先级原本标记为优先级2的软件缺陷随着时间即将用尽,以及的软件缺陷随着时间即将用尽,以及软件发布日期临近,可能变为优先级软件发布日期临近,可能变为优先级4。30软件缺陷的报告、分离和再现软件缺陷的报告、分离和再现报告软件缺陷要以明显、通用和再现的形式进行描报告软件缺陷要以明显、通用
21、和再现的形式进行描述。述。有效的软件缺陷描述要求有效的软件缺陷描述要求:简单与短小:只解释事实和演示、描述软件缺陷必需的细简单与短小:只解释事实和演示、描述软件缺陷必需的细节。节。单一:每一个报告只针对一个软件缺陷单一:每一个报告只针对一个软件缺陷 明显和通用:用使用者容易看懂的、展示通用性的简单易明显和通用:用使用者容易看懂的、展示通用性的简单易行步骤描述的软件缺陷行步骤描述的软件缺陷 再现:软件缺陷报告必须报告记录按照预定步骤可以使软再现:软件缺陷报告必须报告记录按照预定步骤可以使软件达到缺陷再次出现的相同状况件达到缺陷再次出现的相同状况 使用使用IT业界惯用的表达术语和表达方法业界惯用的
22、表达术语和表达方法 补充完善软件缺陷报告补充完善软件缺陷报告 31缺陷报告基本组成缺陷报告基本组成优秀的错误描述主要由三个基本部分组成:摘要、优秀的错误描述主要由三个基本部分组成:摘要、重建步骤和隔离。重建步骤和隔离。“摘要摘要”又叫主题或标题,是关于错误的一两句话的又叫主题或标题,是关于错误的一两句话的描述,强调它对顾客或系统用户的影响。描述,强调它对顾客或系统用户的影响。“重建步骤重建步骤”提供了如何重复这个失败的精确描述。提供了如何重复这个失败的精确描述。“隔离隔离”是指测试人员收集的结果和信息,以确认错是指测试人员收集的结果和信息,以确认错误确实是一个问题,并标识那些影响到错误表现的要
23、误确实是一个问题,并标识那些影响到错误表现的要素。素。32一份优秀的缺陷报告一份优秀的缺陷报告 错误错误 ID:B1.1.1程序名:文本编辑工具程序名:文本编辑工具Note版本标识:版本标识:V1.0严重性:一般严重性:一般错误概要:错误概要:Windows98下下Note在新建文件中选择设置在新建文件中选择设置Arial字体时出现乱码。字体时出现乱码。错误描述:错误描述:重建步骤:重建步骤:1)打开)打开Note创建一个新文件;创建一个新文件;2)随意输入两行或多行文本;)随意输入两行或多行文本;3)选中一段文本,在右键弹出菜单中选中格式选项,选择)选中一段文本,在右键弹出菜单中选中格式选项
24、,选择Arial;4)文本被改变成无意义的乱写的符号;)文本被改变成无意义的乱写的符号;5)尝试了三次该步骤,同样的问题出现了三次。)尝试了三次该步骤,同样的问题出现了三次。隔离:隔离:1)保存新建文件,关闭)保存新建文件,关闭Note,重新打开该文件,问题仍然存在;,重新打开该文件,问题仍然存在;2)如果在把文本改成)如果在把文本改成Arial字体前保存文件,该错误不会出现;字体前保存文件,该错误不会出现;3)该错误只存在于新建文件时,不出现在已存在的文件;)该错误只存在于新建文件时,不出现在已存在的文件;4)该现象只在)该现象只在Windows98下出现;下出现;5)该错误不会出现在其他字
25、体改变中。)该错误不会出现在其他字体改变中。报告人:报告人:xxxx报告日期:报告日期:2005-01-18承办人:承办人:xxxx处理日期:处理日期:2005-01-20优先级:优先级:3状态:开放状态:开放注释:注释:33软件缺陷的度量软件缺陷的度量对缺陷数据进行分析和度量,使我们在改正对缺陷数据进行分析和度量,使我们在改正缺陷的同时,将缺陷管理过程推向更高的阶缺陷的同时,将缺陷管理过程推向更高的阶段段量化管理阶段量化管理阶段软件开发只有引入了度量机制和定量化的管软件开发只有引入了度量机制和定量化的管理,才能称为真正意义上的理,才能称为真正意义上的“工程工程”,这一,这一准则清楚地体现在准
26、则清楚地体现在CMM中:中:CMM 4级(已管理级)引入了级(已管理级)引入了“定量软件过程定量软件过程”CMM 5级(优化级)则完全建立在定量管理的基级(优化级)则完全建立在定量管理的基础之上,并明确提出了础之上,并明确提出了“缺陷预防缺陷预防”。34软件缺陷度量的过程软件缺陷度量的过程软件缺陷度量的过程可以分为四大部分:软件缺陷度量的过程可以分为四大部分:计划度量计划度量执行度量执行度量分析度量结果分析度量结果评价度量评价度量35计划度量计划度量 严格地指定要度量什么,如何对数据进行合严格地指定要度量什么,如何对数据进行合并产生满足信息需要的结果。并产生满足信息需要的结果。如:如:在回归测
27、试中,从以前运转正常的功能中发现缺在回归测试中,从以前运转正常的功能中发现缺陷的比例(修正工作破坏以前运转正常功能的频陷的比例(修正工作破坏以前运转正常功能的频率)率)缺陷修正失败的频率缺陷修正失败的频率新缺陷的发现率走势新缺陷的发现率走势36获取度量数据获取度量数据 缺陷文档中可能包括的属性有:缺陷缺陷文档中可能包括的属性有:缺陷ID、缺、缺陷状态、测试人员陷状态、测试人员ID、提交时间、缺陷所属、提交时间、缺陷所属项目项目ID、缺陷所属模块、缺陷所属模块ID、开发人员、开发人员ID、缺、缺陷类型、严重级别、优先级、修改人陷类型、严重级别、优先级、修改人ID、解、解决方案、修改时间、修改次数
28、、确认结果等。决方案、修改时间、修改次数、确认结果等。37几个核心度量几个核心度量缺陷持续时间缺陷持续时间缺陷纠正到返测的时间缺陷纠正到返测的时间缺陷趋势分析缺陷趋势分析缺陷修改的质量缺陷修改的质量缺陷密度缺陷密度测试人员工作效率测试人员工作效率 38缺陷持续时间缺陷持续时间 缺陷持续时间是指从发现缺陷到改正缺陷的缺陷持续时间是指从发现缺陷到改正缺陷的时间跨度,同时必须考虑缺陷修正工作的复时间跨度,同时必须考虑缺陷修正工作的复杂度。杂度。该度量用于验证缺陷是否被及时地解决,利该度量用于验证缺陷是否被及时地解决,利用缺陷持续时间的数据,测试组可以分析开用缺陷持续时间的数据,测试组可以分析开发组对
29、改错工作的反应是否影响了测试工作发组对改错工作的反应是否影响了测试工作的进度的进度 一个缺陷的持续时间越长,纠正缺陷的难度一个缺陷的持续时间越长,纠正缺陷的难度可能就越大,因为可能在错误代码的基础上可能就越大,因为可能在错误代码的基础上又加入了新的代码又加入了新的代码39缺陷纠正到返测的时间缺陷纠正到返测的时间 缺陷纠正到返测时间是指缺陷被修正并且在缺陷纠正到返测时间是指缺陷被修正并且在新版本中发布的时间到缺陷被返测的时间跨新版本中发布的时间到缺陷被返测的时间跨度。度。该度量提供了一种衡量测试组的返测缺陷速该度量提供了一种衡量测试组的返测缺陷速度的方法。度的方法。40缺陷趋势分析缺陷趋势分析
30、缺陷趋势分析是指在测试生命周期内,随着缺陷趋势分析是指在测试生命周期内,随着测试工作的进行,发现缺陷的数量的变化趋测试工作的进行,发现缺陷的数量的变化趋势。势。缺陷趋势分析有助于确定所发现的缺陷的变缺陷趋势分析有助于确定所发现的缺陷的变化趋势,对于软件产品发布而言,缺陷趋势化趋势,对于软件产品发布而言,缺陷趋势分析图是辅助决策的重要依据。分析图是辅助决策的重要依据。41缺陷发生率缺陷发生率 42缺陷趋势图缺陷趋势图 43缺陷修改的质量缺陷修改的质量 缺陷修改的质量是指修改后剩余的缺陷数量,缺陷修改的质量是指修改后剩余的缺陷数量,即重现率。即重现率。该度量测量的是缺陷修正工作给以前工作正该度量测
31、量的是缺陷修正工作给以前工作正常的功能带来的新缺陷,或者破坏以前工作常的功能带来的新缺陷,或者破坏以前工作正常的功能的百分比。正常的功能的百分比。例如,修复了例如,修复了100个缺陷,后来发现其中个缺陷,后来发现其中20个个修复引入了新的缺陷,则缺陷纠正率为修复引入了新的缺陷,则缺陷纠正率为D=(100-20)/100100=80。44缺陷密度缺陷密度 缺陷密度缺陷密度(Defect Density)是指一段时间里发是指一段时间里发现的缺陷数与软件大小的比例。现的缺陷数与软件大小的比例。软件的大小可以采用功能点度量,也可以用软件的大小可以采用功能点度量,也可以用源代码行数衡量。用数学公式表示为
32、:源代码行数衡量。用数学公式表示为:DD=defects/KLOC或或DD=defects/KFPKLOC表示每千行源代码,表示每千行源代码,KFP表示每千个功能表示每千个功能点。点。产品的缺陷密度直接影响着客户的满意程度。产品的缺陷密度直接影响着客户的满意程度。45各模块中每千行代码的缺陷密度各模块中每千行代码的缺陷密度 46缺陷密度度量的缺点缺陷密度度量的缺点缺陷密度这种度量方法是极不完善的,度量缺陷密度这种度量方法是极不完善的,度量本身是不充分的。本身是不充分的。这里边存在的主要问题是:所有的缺陷并不这里边存在的主要问题是:所有的缺陷并不都是均等构造的。都是均等构造的。各个软件缺陷的恶劣
33、程度,及其对产品和用户的各个软件缺陷的恶劣程度,及其对产品和用户的影响的严重程度,以及修复缺陷的重要程度有很影响的严重程度,以及修复缺陷的重要程度有很大差别,大差别,因此,有必要对缺陷进行因此,有必要对缺陷进行“分级、加权分级、加权”处处理,给出软件缺陷在各严重性级别或优先级理,给出软件缺陷在各严重性级别或优先级上的分布作为补充度量,上的分布作为补充度量,47缺陷在各优先级上的分布缺陷在各优先级上的分布 48缺陷严重程度分布缺陷严重程度分布 49缺陷产生原因分布图缺陷产生原因分布图 它是缺陷分析中最为重要的一张图表,因为它可以它是缺陷分析中最为重要的一张图表,因为它可以直接反映出各软件工程活动
34、的质量,为软件过程的直接反映出各软件工程活动的质量,为软件过程的改进提供直接的参考数据。改进提供直接的参考数据。一般来说,缺陷产生的根本原因划分的越细致,分一般来说,缺陷产生的根本原因划分的越细致,分析的结果就越精确。析的结果就越精确。例如,当发现需求中出现的缺陷比较多的时候,在未来的例如,当发现需求中出现的缺陷比较多的时候,在未来的项目中我们可以通过需求评审、需求变更控制来减少该种项目中我们可以通过需求评审、需求变更控制来减少该种缺陷的数量,以达到软件质量保证的目的。缺陷的数量,以达到软件质量保证的目的。同样如果我们发现软件设计过程中产生的问题比较多,那同样如果我们发现软件设计过程中产生的问
35、题比较多,那么就可以通过加强软件设计阶段中的审查活动来保证设计么就可以通过加强软件设计阶段中的审查活动来保证设计的质量。的质量。50几个综合指标几个综合指标测试人员工作效率测试人员工作效率 缺陷探测效率缺陷探测效率发布前的缺陷消除率发布前的缺陷消除率51测试人员工作效率测试人员工作效率测试人员工作效率:是指测试人员在一定时测试人员工作效率:是指测试人员在一定时期内测试出不同类型缺陷的能力,它等于测期内测试出不同类型缺陷的能力,它等于测试人员测试出的不同缺陷类型数量与对应权试人员测试出的不同缺陷类型数量与对应权值的乘积之和,再除以本次测试的周期,从值的乘积之和,再除以本次测试的周期,从而衡量测试
36、人员的熟练程度。而衡量测试人员的熟练程度。52缺陷探测效率缺陷探测效率缺陷探测效率缺陷探测效率(Defect Detection Efficien,DDE):是指软件生命周期的各个阶段由测试人员发现缺陷是指软件生命周期的各个阶段由测试人员发现缺陷的效率。它可以这样计算:在各个生命周期阶段发的效率。它可以这样计算:在各个生命周期阶段发现某个阶段产生的缺陷数与在该阶段中产生的缺陷现某个阶段产生的缺陷数与在该阶段中产生的缺陷总个数的比例。总个数的比例。如果如果DDE为为100,则表明该阶段发现了所有在这个阶段,则表明该阶段发现了所有在这个阶段中产生的缺陷,没有缺陷传播到下一个阶段。中产生的缺陷,没有
37、缺陷传播到下一个阶段。如果如果DDE为为30,则表明该阶段发现了,则表明该阶段发现了30在这个阶段在这个阶段中产生的缺陷,将有中产生的缺陷,将有70在这个阶段中产生的缺陷传播到在这个阶段中产生的缺陷传播到下一个阶段。下一个阶段。DDE说明了过程的效率。说明了过程的效率。53发布前的缺陷消除率发布前的缺陷消除率发布前的缺陷消除率发布前的缺陷消除率(Pre Delivery Defect Removal Efficiency):是指软件发布前的各:是指软件发布前的各个阶段发现的缺陷总数占软件缺陷总数的比个阶段发现的缺陷总数占软件缺陷总数的比例。例。如,发布前发现了如,发布前发现了300个缺陷,发布
38、后使用半个缺陷,发布后使用半年又发现了年又发现了100个缺陷,则发布前的缺陷消除个缺陷,则发布前的缺陷消除率率PDRE=300/(300+100)100=75。54缺陷管理系统缺陷管理系统 国内外已出现了一批质量较好的缺陷管理工具,其中比较有国内外已出现了一批质量较好的缺陷管理工具,其中比较有代表性的有:代表性的有:开源软件开源软件Bugzilla、jiraCompuware公司的公司的TrackRecord、Rational公司的公司的ClearQuest、北京航空航天大学的北京航空航天大学的QAMonitor、上海微创软件有限公司的上海微创软件有限公司的BMS等。等。这些工具各有特色,在功
39、能的全面性上也各不相同,但都是这些工具各有特色,在功能的全面性上也各不相同,但都是基于基于“找出缺陷、修改缺陷、进行回归测试找出缺陷、修改缺陷、进行回归测试”这种面向流程这种面向流程处理的传统模式,实现了缺陷管理的基本流程,并在此基础处理的传统模式,实现了缺陷管理的基本流程,并在此基础上提供了一些查询和统计功能;上提供了一些查询和统计功能;其共同的缺点是没有充分利用软件开发过程中产生的缺陷数其共同的缺点是没有充分利用软件开发过程中产生的缺陷数据,不能以一种主动的、精确量化的方式对软件缺陷进行预据,不能以一种主动的、精确量化的方式对软件缺陷进行预防并提供软件项目管理者所需的有关产品和过程的度量信
40、息。防并提供软件项目管理者所需的有关产品和过程的度量信息。5516.6测试的评测测试的评测覆盖评测覆盖评测质量评测质量评测56覆盖评测覆盖评测覆盖评测指标是用来度量软件测试的完全程覆盖评测指标是用来度量软件测试的完全程度的度的 最常用的覆盖评测是最常用的覆盖评测是:基于需求的测试覆盖基于需求的测试覆盖基于代码的测试覆盖基于代码的测试覆盖57基于需求的测试覆盖基于需求的测试覆盖 计划的测试覆盖率计划的测试覆盖率=Tp/RfT100其中,其中,Tp是用测试过程或测试用例表示的计划测是用测试过程或测试用例表示的计划测试需求数;试需求数;RfT是测试需求的总数。是测试需求的总数。已执行的测试覆盖率已执
41、行的测试覆盖率=Ti/RfTl00其中,其中,Ti是用测试过程或测试用例表示的已执行是用测试过程或测试用例表示的已执行的测试需求数;的测试需求数;RfT是测试需求的总数。是测试需求的总数。成功的测试覆盖率成功的测试覆盖率=Ts/RfT100其中,其中,Ts是用完全成功、没有缺陷的测试过程或是用完全成功、没有缺陷的测试过程或测试用例表示的已执行测试需求数;测试用例表示的已执行测试需求数;RfT是测试是测试需求的总数。需求的总数。58基于代码的测试覆盖基于代码的测试覆盖 基于代码的测试覆盖率基于代码的测试覆盖率=Ie/TIicl00其中,其中,Ie是用代码语句、代码分支、代码路径、是用代码语句、代
42、码分支、代码路径、数据状态判定点或数据元素名表示的已执行代码数据状态判定点或数据元素名表示的已执行代码数;数;TIic是代码的总数。是代码的总数。59质量评测质量评测缺陷评测缺陷评测性能评测性能评测60缺陷评测缺陷评测3类形式的度量:类形式的度量:缺陷发现率、缺陷潜伏期和缺陷密度缺陷发现率、缺陷潜伏期和缺陷密度 4个主要缺陷参数个主要缺陷参数:状态、优先级、严重性、起源状态、优先级、严重性、起源 61性能评测性能评测主要的性能评测方式:主要的性能评测方式:动态监测动态监测响应时间和吞吐量响应时间和吞吐量比较报告比较报告追踪和配置文件报告追踪和配置文件报告62本章总结本章总结讨论了:讨论了:16
43、.1测试管理基础测试管理基础 16.2测试执行周期的开始和结束测试执行周期的开始和结束16.3隔离测试环境和开发环境隔离测试环境和开发环境16.4测试用例的有效管理测试用例的有效管理16.5缺陷追踪管理缺陷追踪管理16.6测试的评测测试的评测63习题习题1.测试管理的主要内容是什么测试管理的主要内容是什么?请举例说明三个请举例说明三个测试管理工具。测试管理工具。2.测试执行周期的开始标准和结束标准包含什测试执行周期的开始标准和结束标准包含什么内容么内容?3.软件缺陷的生命周期通常是怎样的软件缺陷的生命周期通常是怎样的?4.使用哪些方法可以较好地再现软件缺陷使用哪些方法可以较好地再现软件缺陷?软件软件缺陷的度量指标都有哪些缺陷的度量指标都有哪些?5.测试评测的基本内容是什么测试评测的基本内容是什么?64