1、第第 6 章章 软件测试项目管理软件测试项目管理 6.1 测试项目管理概述测试项目管理概述测试项目一般具有如下一些基本特性。测试项目一般具有如下一些基本特性。2测试项目管理测试项目管理测试项目管理有以下基本特征。测试项目管理有以下基本特征。(1)系统工程的思想贯穿测试项目管理的)系统工程的思想贯穿测试项目管理的全过程。全过程。(2)测试项目管理的组织有一定的特殊性。)测试项目管理的组织有一定的特殊性。 (3)测试项目管理的要点是创造和保)测试项目管理的要点是创造和保持一个使测试工作顺利进行的环境,使置持一个使测试工作顺利进行的环境,使置身于这个环境中的人员能在集体中协调工身于这个环境中的人员能
2、在集体中协调工作以完成预定的目标。作以完成预定的目标。 (4)测试项目管理的方法、工具和技)测试项目管理的方法、工具和技术手段具有先进性。术手段具有先进性。6.1.2 项目目标确定后,下一步过程就是确定项目目标确定后,下一步过程就是确定需要执行哪些工作,或者活动来完成项目需要执行哪些工作,或者活动来完成项目的目标,这就是要确定一个包含项目所有的目标,这就是要确定一个包含项目所有活动在内的一览表。准备这样的一览表通活动在内的一览表。准备这样的一览表通常有两种方法:一种是让测试小组利用常有两种方法:一种是让测试小组利用“头脑风暴法头脑风暴法”根据经验,集思广益来形根据经验,集思广益来形成。这种方法
3、比较适合小型测试项目。成。这种方法比较适合小型测试项目。 另一种是对更大更复杂的项目建立一个另一种是对更大更复杂的项目建立一个工作分解结构工作分解结构WBS和任务的一览表。工作和任务的一览表。工作分解结构是将一个软件测试项目分解成易分解结构是将一个软件测试项目分解成易于管理的更多部分或细目,所有这些细目于管理的更多部分或细目,所有这些细目构成了整个软件测试项目的工作范围。工构成了整个软件测试项目的工作范围。工作分解结构是进行范围规划时所使用的重作分解结构是进行范围规划时所使用的重要工具和技术之一,它是测试项目团队在要工具和技术之一,它是测试项目团队在项目期间要完成或生产出的最终细目的等项目期间
4、要完成或生产出的最终细目的等级树,它组织并定义了整个测试项目的范级树,它组织并定义了整个测试项目的范围,未列入工作分解结构的工作将排除在围,未列入工作分解结构的工作将排除在项目范围之外。项目范围之外。 进行工作分解是非常重要的工作,它在进行工作分解是非常重要的工作,它在很大程度上决定项目能否成功。对于细分很大程度上决定项目能否成功。对于细分的所有项目要素需要统一编码,并按规范的所有项目要素需要统一编码,并按规范化进行要求。这样,化进行要求。这样,WBS的应用将给所有的应用将给所有的项目管理人员提供一个一致的基准,即的项目管理人员提供一个一致的基准,即使项目人员变动时,也有一个互相可以理使项目人
5、员变动时,也有一个互相可以理解和交流沟通的平台。解和交流沟通的平台。6.2 测测 试试 文文 档档 测试文档是对要执行的软件测试及测测试文档是对要执行的软件测试及测试的结果进行描述、定义、规定和报告的试的结果进行描述、定义、规定和报告的任何书面或图示信息。由于软件测试是一任何书面或图示信息。由于软件测试是一个很复杂的过程,同时也涉及到软件开发个很复杂的过程,同时也涉及到软件开发中其他一些阶段的工作,因此,必须把对中其他一些阶段的工作,因此,必须把对软件测试的要求、规划、测试过程等有关软件测试的要求、规划、测试过程等有关信息和测试的结果,以及对测试结果的分信息和测试的结果,以及对测试结果的分析、
6、评价,以正式的文档形式给出。析、评价,以正式的文档形式给出。 测试文档对于测试阶段工作的指导与评测试文档对于测试阶段工作的指导与评价作用更是非常明显的。需要特别指出的价作用更是非常明显的。需要特别指出的是,在已开发的软件投入运行的维护阶段,是,在已开发的软件投入运行的维护阶段,常常还要进行再测试或回归测试,这时还常常还要进行再测试或回归测试,这时还会用到测试文档。测试文档的编写是测试会用到测试文档。测试文档的编写是测试管理的一个重要组成部分。管理的一个重要组成部分。6.2.1 3决定测试的有效性决定测试的有效性4检验测试资源检验测试资源5明确任务的风险明确任务的风险6评价测试结果评价测试结果7
7、方便再测试方便再测试8验证需求的正确性验证需求的正确性6.2.2 IEEE8291998 软件测试文档编制标准 软件测试文档模板 目录 测试计划 测试设计规格说明 测试用例说明 测试规程规格说明 测试日志 测试缺陷报告 测试总结报告 2软件测试计划软件测试计划IEEE8291998 软件测试文档编制标准 软件测试计划文档模板 目录 1测试计划标识符 2介绍 3测试项 4需要测试的功能 5方法(策略) 6不需要测试的功能 7测试项通过/失败的标准 8测试中断和恢复的规定 9测试完成所提交的材料 10测试任务 11环境需求 12职责 13人员安排与培训需求 14进度表 15潜在的问题和风险 16审
8、批 3测试设计规格说明测试设计规格说明IEEE8291998 软件测试文档编制标准 软件测试设计规格说明文档模板 目录 测试设计规格说明标识符 待测试特征 方法细化 测试标识 通过/失败准则 4软件测试用例规格说明文档软件测试用例规格说明文档IEEE8291998 软件测试文档编制标准 软件测试用例规格说明文档模板 目录 测试用例规格说明标识符 测试项 输入规格说明 输出规格说明 环境要求 特殊规程需求 用例之间的相关性 5测试规程测试规程7软件缺陷报告软件缺陷报告6.3 软件测试计划软件测试计划 测试计划就是描述所有要完成的测试测试计划就是描述所有要完成的测试工作,包括被测试项目的背景、目标
9、、范工作,包括被测试项目的背景、目标、范围、方式、资源、进度安排、测试组织,围、方式、资源、进度安排、测试组织,以及与测试有关的风险等方面。以及与测试有关的风险等方面。 6.3.1 6.3.2 6.3.3 4管理部门缺乏对测试工作的理管理部门缺乏对测试工作的理解和支持解和支持5缺乏用户的参与缺乏用户的参与6测试时间不足测试时间不足7过分依赖测试人员过分依赖测试人员8测试人员处于进退两难的状态测试人员处于进退两难的状态9不得不说不得不说“不不”IEEE8291998 软件测试文档编制标准 软件测试计划文档模板 目录 1测试计划标识符 2介绍 3测试项 4需要测试的功能 5方法(策略) 6不需要测
10、试的功能 7测试项通过/失败的标准 8测试中断和恢复的规定 9测试完成所提交的材料 10测试任务 11环境需求 12测试人员的工作职责 13人员安排与培训需求 14进度表 15潜在的问题和风险 16审批 根据根据IEEE8291998软件测试文档编制软件测试文档编制标准的建议,测试计划包含了标准的建议,测试计划包含了16个大纲要个大纲要项,简要说明如下。项,简要说明如下。2介绍介绍3测试项测试项IEEE标准中指出,可以参考下面标准中指出,可以参考下面的文档来完成测试项:的文档来完成测试项: 需求规格说明需求规格说明 用户指南用户指南 操作指南操作指南 安装指南安装指南 与测试项相关的事件报告与
11、测试项相关的事件报告4需要测试的功能需要测试的功能 测试策略描述测试小组用于测试整体和测试策略描述测试小组用于测试整体和每个阶段的方法。要描述如何公正、客观每个阶段的方法。要描述如何公正、客观地开展测试,要考虑模块、功能、整体、地开展测试,要考虑模块、功能、整体、系统、版本、压力、性能、配置和安装等系统、版本、压力、性能、配置和安装等各个因素的影响,要尽可能地考虑到细节,各个因素的影响,要尽可能地考虑到细节,越详细越好,并制作测试记录文档的模板,越详细越好,并制作测试记录文档的模板,为即将开始的测试做准备。测试记录具体为即将开始的测试做准备。测试记录具体说明如下。说明如下。 公正性声明公正性声
12、明 测试用例测试用例 特殊考虑特殊考虑 经验判断经验判断 设想设想 6不需要测试的功能不需要测试的功能下面是通过下面是通过/失败的标准的一些例子:失败的标准的一些例子: 通过测试用例所占的百分比;通过测试用例所占的百分比; 缺陷的数量、严重程度和分布情况;缺陷的数量、严重程度和分布情况; 测试用例覆盖;测试用例覆盖; 用户测试的成功结论;用户测试的成功结论; 文档的完整性;文档的完整性; 性能标准。性能标准。8测试中断和恢复的规定测试中断和恢复的规定9测试完成所提交的材料测试完成所提交的材料10测试任务测试任务11环境需求环境需求 办公室和实验室空间办公室和实验室空间在哪里?空间在哪里?空间有
13、多大?怎样排列?有多大?怎样排列? 软件软件字处理程序、数据库程序和自字处理程序、数据库程序和自定义工具等。定义工具等。 其他资源其他资源软盘、电话、参考书、培软盘、电话、参考书、培训资料等。训资料等。12测试人员的工作职责测试人员的工作职责13人员安排与培训需求人员安排与培训需求 培训需求通常包括学习如何使用某个工培训需求通常包括学习如何使用某个工具、测试方法、缺陷跟踪系统、配置管理,具、测试方法、缺陷跟踪系统、配置管理,或者与被测试系统相关的业务基础知识。或者与被测试系统相关的业务基础知识。培训需求各个测试项目会各不相同,它取培训需求各个测试项目会各不相同,它取决于具体项目的情况。决于具体
14、项目的情况。14进度表进度表表表6-4给出了一个例子。给出了一个例子。 表 6-4 相对日期的测试进度 测 试 任 务 开 始 日 期 期 限 测试计划完成 说明书完成之后 7 天 4 周 测试案例完成 测试计划完成 12 周 第 1 阶段测试通过 代码完成 6 周 第 2 阶段测试通过 Beta 构造 6 周 第 3 阶段测试通过 发布构造 4 周 进度安排会使测试过程容易管理。通常,进度安排会使测试过程容易管理。通常,项目管理员或者测试管理员最终负责进度安排,项目管理员或者测试管理员最终负责进度安排,而测试人员参与安排自己的具体任务。而测试人员参与安排自己的具体任务。15潜在的问题和风险潜
15、在的问题和风险 一般而言,大多数测试小组都会发现自一般而言,大多数测试小组都会发现自己的资源有限,不可能穷尽测试软件所有己的资源有限,不可能穷尽测试软件所有方面。如果能勾画出风险的轮廓,将有助方面。如果能勾画出风险的轮廓,将有助于测试人员排定待测试项的优先顺序,并于测试人员排定待测试项的优先顺序,并且有助于集中精力去关注那些极有可能发且有助于集中精力去关注那些极有可能发生失效的领域。下面是一些潜在的问题和生失效的领域。下面是一些潜在的问题和风险的例子:风险的例子: 不现实的交付日期不现实的交付日期 与其他系统的接口与其他系统的接口 处理巨额现金的特征处理巨额现金的特征 极其复杂的软件极其复杂的
16、软件 有过缺陷历史的模块有过缺陷历史的模块 发生过许多或者复杂变更的模块发生过许多或者复杂变更的模块 安全性、性能和可靠性问题安全性、性能和可靠性问题 难于变更或测试的特征难于变更或测试的特征 风险分析是一项十分艰巨的工作,尤其风险分析是一项十分艰巨的工作,尤其是第一次尝试进行时更是如此,但是以后是第一次尝试进行时更是如此,但是以后会好起来,而且也值得这样做。会好起来,而且也值得这样做。16审批审批6.4 测试的组织与人员管理测试的组织与人员管理测试的组织与人员管理就是对测试项目相关测试的组织与人员管理就是对测试项目相关人员在组织形式、人员组成与职责方面所做人员在组织形式、人员组成与职责方面所
17、做的规划和安排。的规划和安排。测试的组织与人员管理的任务是:测试的组织与人员管理的任务是:(1)为测试项目选择合适的组织结构模式;)为测试项目选择合适的组织结构模式;(2)确定项目组内部的组织形式;)确定项目组内部的组织形式;(3)合理配备人员,明确分工和责任;)合理配备人员,明确分工和责任;(4)对项目成员的思想、心理和行为进行)对项目成员的思想、心理和行为进行有效地管理,充分发挥他们的主观能动性,有效地管理,充分发挥他们的主观能动性,密切配合实现项目的目标。密切配合实现项目的目标。测试的组织与人员管理应注意的原则是:测试的组织与人员管理应注意的原则是:(2)减少接口)减少接口6.4.2 选
18、择合理高效的测试组织结构方案的准选择合理高效的测试组织结构方案的准则是:则是: (1)提供软件测试的快速决策能力;)提供软件测试的快速决策能力; (2)利于合作,尤其是产品开发与测试)利于合作,尤其是产品开发与测试开发之间的合作;开发之间的合作; (3)能够独立、规范、不带偏见地运作)能够独立、规范、不带偏见地运作并具有精干的人员配置;并具有精干的人员配置;(4)有利于满足软件测试与质量管理的关)有利于满足软件测试与质量管理的关系;系;(5)有利于满足软件测试过程管理要求;)有利于满足软件测试过程管理要求;(6)有利于为测试技术提供专有技术;)有利于为测试技术提供专有技术;(7)充分利用现有测
19、试资源,特别是人;)充分利用现有测试资源,特别是人;(8)对测试者的职业道德和事业产生积极)对测试者的职业道德和事业产生积极的影响。的影响。 进行软件测试的测试组织结构形式很进行软件测试的测试组织结构形式很多,多, 目前常见的测试组织结构有独立的测目前常见的测试组织结构有独立的测试小组和集成的测试小组两种形式。试小组和集成的测试小组两种形式。1独立测试小组独立测试小组2集成测试小组集成测试小组6.4.3 (3)测试规划能力:包括风险分析及)测试规划能力:包括风险分析及防范、软件放行防范、软件放行/接收准则制定、测试目标接收准则制定、测试目标及计划、测试计划和设计的评审方法等;及计划、测试计划和
20、设计的评审方法等; (4)测试执行能力:包括测试数据)测试执行能力:包括测试数据/脚脚本本/用例、测试比较及分析、缺陷记录及处用例、测试比较及分析、缺陷记录及处理、自动化工具;理、自动化工具; (5)测试分析、报告和改进能力:包)测试分析、报告和改进能力:包括测试度量、统计技术、测试报告、过程括测试度量、统计技术、测试报告、过程监测及持续改进。监测及持续改进。 测试组织管理者的工作能力在很大程度测试组织管理者的工作能力在很大程度上决定测试工作的成功与否,测试管理是上决定测试工作的成功与否,测试管理是很困难的,测试组织的管理者必须具备:很困难的,测试组织的管理者必须具备: (1)了解与评价软件测
21、试政策、标准、)了解与评价软件测试政策、标准、过程、工具、培训和度量的能力;过程、工具、培训和度量的能力; (2)领导一个测试组织的能力,该组织)领导一个测试组织的能力,该组织必须坚强有力、独立自主、办事规范且没必须坚强有力、独立自主、办事规范且没有偏见;有偏见;(3)吸引并留住杰出测试专业人才的能力;)吸引并留住杰出测试专业人才的能力;(4)领导、沟通、支持和控制的能力;)领导、沟通、支持和控制的能力;(5)有提出解决问题方案的能力;)有提出解决问题方案的能力;(6)测试时间、质量和成本控制的能力。)测试时间、质量和成本控制的能力。6.4.4 (4)电子通信,如)电子通信,如E-mail(电
22、子邮件)、(电子邮件)、BBS(电子公告板系统)等;(电子公告板系统)等; (5)成员网络,如成员与小组之外或公)成员网络,如成员与小组之外或公司之外有经验的相关人员进行交流;司之外有经验的相关人员进行交流; 在实践中发现,(在实践中发现,(5)的通信效率最高,)的通信效率最高,其次是(其次是(1)。)。6.4.5 管理者习惯用对自己有效的因素激励测管理者习惯用对自己有效的因素激励测试人员,很可能发现无效;试人员,很可能发现无效; 过多行使权力、资金或处罚手段很可能过多行使权力、资金或处罚手段很可能导致项目失败;导致项目失败; 注意采取卓有成效的非货币形式的激励注意采取卓有成效的非货币形式的激
23、励措施;措施; 在项目进行过程中,而不仅是在项目结在项目进行过程中,而不仅是在项目结果时实施激励措施;果时实施激励措施; 奖励应该在工作获得认同后尽快兑现;奖励应该在工作获得认同后尽快兑现; 对项目成员的工作表现出真诚的兴趣,对项目成员的工作表现出真诚的兴趣,是对他们最好的奖励;是对他们最好的奖励; 已经满足的需要很可能不再成为激励因已经满足的需要很可能不再成为激励因素。素。激励因素是影响个人行为的东西,是因人激励因素是影响个人行为的东西,是因人而异、因时而异的。因此,管理者必须明而异、因时而异的。因此,管理者必须明确各种激励的方式,并合理使用。确各种激励的方式,并合理使用。作为测试人员,测试
24、工件的作为测试人员,测试工件的7条效率原则是:条效率原则是: 主动思考,积极行动;主动思考,积极行动; 一开始就牢记目标,不迷失方向;一开始就牢记目标,不迷失方向; 重要的事情放在首位(但常常把紧急的事重要的事情放在首位(但常常把紧急的事情放在首位);情放在首位); 先理解人,后被人理解;先理解人,后被人理解; 寻求双赢;寻求双赢; 互相合作,追求互相合作,追求1+12; 终生学习,自我更新,不断进步。终生学习,自我更新,不断进步。6.4.6 1软件测试培训内容软件测试培训内容2制定测试人员培训计划制定测试人员培训计划6.4.7 其实,每个公司在人事管理中都可能遇到其实,每个公司在人事管理中都
25、可能遇到风险,如招聘失败、新政策引起员工不满、风险,如招聘失败、新政策引起员工不满、技术骨干突然离职等等,这些事件会影响技术骨干突然离职等等,这些事件会影响公司的正常运转,甚至会对公司造成致命公司的正常运转,甚至会对公司造成致命的打击。如何防范这些风险的发生,是我的打击。如何防范这些风险的发生,是我们应该研究的问题。特别是高新技术企业,们应该研究的问题。特别是高新技术企业,由于对人的依赖更大,所以更需要重视测由于对人的依赖更大,所以更需要重视测试的组织与人员管理中的风险管理。试的组织与人员管理中的风险管理。6.5 软件测试过程管理软件测试过程管理6.5.1 基于基于“V”模型,在开发周期中的每
26、个模型,在开发周期中的每个阶段都阶段都 有相关的测试阶段相对应,测试可有相关的测试阶段相对应,测试可以在需求分析阶段就及早开始,创建测试以在需求分析阶段就及早开始,创建测试的准则。每个阶段都存在质量控制点,对的准则。每个阶段都存在质量控制点,对每个阶段的任务、输入和输出都有明确的每个阶段的任务、输入和输出都有明确的规定,以便对整个测试过程进行质量控制规定,以便对整个测试过程进行质量控制和配置管理。和配置管理。 根据质量管理中根据质量管理中PDCA质量环的思想,质量环的思想,需要对软件测试过程进行跟踪、检查,并需要对软件测试过程进行跟踪、检查,并与测试计划进行对比。测试计划中描述了与测试计划进行
27、对比。测试计划中描述了如何实施和管理软件的测试过程,测试计如何实施和管理软件的测试过程,测试计划经批准生效后,将被用来作为对测试过划经批准生效后,将被用来作为对测试过程跟踪与监控的依据。程跟踪与监控的依据。 测试项目的跟踪与监控的基础是软件测试项目的跟踪与监控的基础是软件测试计划。测试计划。 在具体的测试项目的跟踪与监控过程中,在具体的测试项目的跟踪与监控过程中,可以采用周报、日报、例会,以及里程碑可以采用周报、日报、例会,以及里程碑评审会等方式来了解测试项目的进展情况,评审会等方式来了解测试项目的进展情况,建立、收集和分析项目的实际状态数据,建立、收集和分析项目的实际状态数据,对项目进行跟踪
28、与监控,达到项目管理的对项目进行跟踪与监控,达到项目管理的目的。基于可靠的信息,明智的和有意义目的。基于可靠的信息,明智的和有意义的决策可以很好地管理测试过程,在测试的决策可以很好地管理测试过程,在测试过程的每个阶段,测试项目管理人员应特过程的每个阶段,测试项目管理人员应特别注意需要弄清楚以下问题:别注意需要弄清楚以下问题: 系统现在是否做好测试准备?系统现在是否做好测试准备? 如果系统开始测试会有什么样的风险?如果系统开始测试会有什么样的风险? 当前测试所达到的覆盖率是怎样的?当前测试所达到的覆盖率是怎样的? 到目前为止取得了哪些成功?到目前为止取得了哪些成功? 还要哪些测试要做?还要哪些测
29、试要做? 怎么证明系统已经经过了有效的测试?怎么证明系统已经经过了有效的测试? 有哪些变更,哪些必须重新测试?有哪些变更,哪些必须重新测试? 6.5.2 1配置标识配置标识 配置标识主要是标识测试样品、测试标配置标识主要是标识测试样品、测试标准、测试工具、测试文档(包括测试用准、测试工具、测试文档(包括测试用例)、测试报告等配置项的名称和类型。例)、测试报告等配置项的名称和类型。所有配置项都应按照相关规定统一编号,所有配置项都应按照相关规定统一编号,按照相应的模板生成,并在文档中的规定按照相应的模板生成,并在文档中的规定部分记录对象的标识信息,标识各配置项部分记录对象的标识信息,标识各配置项的
30、所有者及储存位置,指出何时基准化配的所有者及储存位置,指出何时基准化配置项(置于基线控制之下),这样使得测置项(置于基线控制之下),这样使得测试相关人员能方便地知道每个配置项的内试相关人员能方便地知道每个配置项的内容和状态。容和状态。2变更控制变更控制 变更控制主要包括以下内容。变更控制主要包括以下内容。 (1)规定测试基线,对每个基线必须)规定测试基线,对每个基线必须描述下列内容:描述下列内容: 每个基线的项(包括文档、样品和每个基线的项(包括文档、样品和工具等);工具等); 与每个基线有关的评审、批准事项与每个基线有关的评审、批准事项以及验收标准。以及验收标准。 (2)规定何时何人创立新的
31、基线,)规定何时何人创立新的基线,如何创立;如何创立; (3)确定变更请求的处理程序和终)确定变更请求的处理程序和终止条件;止条件; (4)确定变更请求的处理过程中各)确定变更请求的处理过程中各测试人员执行变更的职能;测试人员执行变更的职能; (5)确定变更请求和所产生结果的)确定变更请求和所产生结果的对应机制;对应机制; (6)确定配置项提取和存入的控制)确定配置项提取和存入的控制机制与方式。机制与方式。3配置状态报告配置状态报告4配置审计配置审计6.5.3 软件风险分析的目的是确定测试对象、软件风险分析的目的是确定测试对象、测试优先级,以及测试的深度。有时还包测试优先级,以及测试的深度。有
32、时还包括确定可以忽略的测试对象。通过风险分括确定可以忽略的测试对象。通过风险分析,测试人员识别软件中高风险的部分,析,测试人员识别软件中高风险的部分,并进行严格彻底地测试;确定潜在的隐患并进行严格彻底地测试;确定潜在的隐患软件构件,对其进行重点测试。在制定测软件构件,对其进行重点测试。在制定测试计划的过程中,可以将风险分析的结果试计划的过程中,可以将风险分析的结果用来确定软件测试的优先级与测试深度。用来确定软件测试的优先级与测试深度。2软件测试与商业风险软件测试与商业风险3软件风险分析软件风险分析 通常风险分析采用两种方法:表格分析通常风险分析采用两种方法:表格分析法和矩阵分析法。通用的风险分
33、析表包括法和矩阵分析法。通用的风险分析表包括以下几项内容。以下几项内容。 (1)风险标识:表示风险事件的惟一)风险标识:表示风险事件的惟一标识;标识; (2)风险问题:风险问题发生现象的)风险问题:风险问题发生现象的简单描述;简单描述; (3)发生可能性:风险发生可能性的)发生可能性:风险发生可能性的级别(级别(110);); (4)影响的严重性:风险影响的严重)影响的严重性:风险影响的严重性的级别(性的级别(110);); (5)风险预测值:风险发生可能性与)风险预测值:风险发生可能性与风险影响的严重性的乘积;风险影响的严重性的乘积; (6)风险优先级:风险预测值从高向)风险优先级:风险预测
34、值从高向低的排序。低的排序。 综上所述,软件风险分析的目的是:确综上所述,软件风险分析的目的是:确定测试对象、确定优先级,以及测试深度。定测试对象、确定优先级,以及测试深度。在测试计划阶段,可以用风险分析的结果在测试计划阶段,可以用风险分析的结果来确定软件测试的优先级。对每个测试项来确定软件测试的优先级。对每个测试项和测试用例赋予优先代码,将测试分为高、和测试用例赋予优先代码,将测试分为高、中和低的优先级类型,这样可以在有限的中和低的优先级类型,这样可以在有限的资源和时间条件下,合理安排测试的覆盖资源和时间条件下,合理安排测试的覆盖度与深度。度与深度。4软件测试风险软件测试风险 主要是对测试计
35、划执行的风险分析与制主要是对测试计划执行的风险分析与制定要采取的应急措施,降低软件测试产生定要采取的应急措施,降低软件测试产生的风险造成的危害。的风险造成的危害。 测试计划的风险一般指测试进度滞后测试计划的风险一般指测试进度滞后或出现非计划事件,就是针对计划好的测或出现非计划事件,就是针对计划好的测试工作造成消极影响的所有因素,对于计试工作造成消极影响的所有因素,对于计划风险分析的工作是制定计划风险发生时划风险分析的工作是制定计划风险发生时应采取的应急措施。应采取的应急措施。 其中,交付日期的风险是主要风险之其中,交付日期的风险是主要风险之一。测试未按计划完成,发布日期推迟,一。测试未按计划完
36、成,发布日期推迟,影响对客户提交产品的承诺,管理的可信影响对客户提交产品的承诺,管理的可信度和公司的信誉都要受到考验,同时也受度和公司的信誉都要受到考验,同时也受到竞争对手的威胁。交付日期的滞后,也到竞争对手的威胁。交付日期的滞后,也可能是已经耗尽了所有的资源。计划风险可能是已经耗尽了所有的资源。计划风险分析所做的工作重点不在于分析风险产生分析所做的工作重点不在于分析风险产生的原因,重点应放在提前制定应急措施来的原因,重点应放在提前制定应急措施来应对风险发生。当测试计划风险发生时,应对风险发生。当测试计划风险发生时,可能采用的应急措施有:缩小范围、增加可能采用的应急措施有:缩小范围、增加资源、
37、减少过程等措施。资源、减少过程等措施。 将采用的应急措施如下。将采用的应急措施如下。 应急措施应急措施1:增加资源。请求用户团队:增加资源。请求用户团队为测试工作提供更多的用户支持。为测试工作提供更多的用户支持。 应急措施应急措施2:缩小范围。决定在后续的:缩小范围。决定在后续的发布中,实现较低优先级的特性。发布中,实现较低优先级的特性。 应急措施应急措施3:减少质量过程。在风险分:减少质量过程。在风险分析过程中,确定某些风险级别低的特征测析过程中,确定某些风险级别低的特征测试,或少测试。试,或少测试。上述列举的应急措施要涉及到有关方面的上述列举的应急措施要涉及到有关方面的妥协,如果没有测试计
38、划风险分析和应急妥协,如果没有测试计划风险分析和应急措施处理风险,开发者和测试人员采取的措施处理风险,开发者和测试人员采取的措施就比较匆忙,将不利于将风险的损失措施就比较匆忙,将不利于将风险的损失控制到最小。因此,软件风险分析和测试控制到最小。因此,软件风险分析和测试计划风险分析与应急措施是相辅相成的。计划风险分析与应急措施是相辅相成的。 由上面分析可以看出,计划风险、软件由上面分析可以看出,计划风险、软件风险、重点测试、不测试,甚至整个软件风险、重点测试、不测试,甚至整个软件的测试与应急措施都是围绕的测试与应急措施都是围绕“用风险来确用风险来确定测试工作优先级定测试工作优先级”这样的原则来构
39、造的。这样的原则来构造的。软件测试存在着风险,如果提前重视风险,软件测试存在着风险,如果提前重视风险,并且有所防范,就可以最大限度减少风险并且有所防范,就可以最大限度减少风险的发生。在项目过程中,风险管理的成功的发生。在项目过程中,风险管理的成功取决于如何计划、执行与检验每一个步骤。取决于如何计划、执行与检验每一个步骤。遗漏任何一点,风险管理都不会成功。遗漏任何一点,风险管理都不会成功。6.5.4 当一个测试项目开始后,就会发生一些当一个测试项目开始后,就会发生一些不确定的事件。测试项目的管理者一般都在不确定的事件。测试项目的管理者一般都在一种不能够完全确定的环境下管理项目,项一种不能够完全确
40、定的环境下管理项目,项目的成本费用可能出现难以预料的情况,因目的成本费用可能出现难以预料的情况,因此,必须有一些可行的措施和办法,来帮助此,必须有一些可行的措施和办法,来帮助测试项目的管理者进行项目成本管理,即依测试项目的管理者进行项目成本管理,即依据实际预算制定项目计划,实施整个项目生据实际预算制定项目计划,实施整个项目生命周期内的成本度量和控制。命周期内的成本度量和控制。1测试费用有效性测试费用有效性 “太少的测试是犯罪,而太多的测试是浪太少的测试是犯罪,而太多的测试是浪费。费。”对风险测试得过少,会造成软件的缺对风险测试得过少,会造成软件的缺陷和系统的瘫痪;而对风险测试得过多,就陷和系统
41、的瘫痪;而对风险测试得过多,就会使本来没有缺陷的系统进行没有必要的测会使本来没有缺陷的系统进行没有必要的测试,或者是对轻微缺陷的系统所花费的测试试,或者是对轻微缺陷的系统所花费的测试费用远远大于它们给系统造成的损失。费用远远大于它们给系统造成的损失。 测试费用的有效性,可以用测试费用的测试费用的有效性,可以用测试费用的质量曲线来表示,如图质量曲线来表示,如图6-1所示。随着测试所示。随着测试费用的增加,发现的缺陷也会越多,两线费用的增加,发现的缺陷也会越多,两线相交的地方是过多测试开始的地方,这时,相交的地方是过多测试开始的地方,这时,排除缺陷的测试费用超过了缺陷给系统造排除缺陷的测试费用超过
42、了缺陷给系统造成的损失费用。成的损失费用。图6-1 测试费用的质量曲线 2测试成本控制测试成本控制 测试工作的主要目标是使测试产能最大测试工作的主要目标是使测试产能最大化,也就是,要使通过测试找出错误的能化,也就是,要使通过测试找出错误的能力最大化,而检测次数最小化。测试的成力最大化,而检测次数最小化。测试的成本控制目标是使测试开发成本、测试实施本控制目标是使测试开发成本、测试实施成本和测试维护成本最小化。成本和测试维护成本最小化。 在软件产品测试过程中,测试实施成本在软件产品测试过程中,测试实施成本主要包括:测试准备成本、测试执行成本主要包括:测试准备成本、测试执行成本和测试结束成本。和测试
43、结束成本。(1)测试准备成本控制)测试准备成本控制(2)测试执行成本控制)测试执行成本控制 对部分重新测试进行合理的选择,将风对部分重新测试进行合理的选择,将风险降至最低,而成本同样会很高,必须将其险降至最低,而成本同样会很高,必须将其与测试执行成本进行比较,权衡利弊。利用与测试执行成本进行比较,权衡利弊。利用测试自动化,进行重新测试,其成本效益是测试自动化,进行重新测试,其成本效益是较好的。部分重新测试选择方法有两种:较好的。部分重新测试选择方法有两种: 对由于程序变化而受到影响的每一部对由于程序变化而受到影响的每一部分进行重新测试;分进行重新测试; 对与变化有密切和直接关系的部分进对与变化
44、有密切和直接关系的部分进行重新测试。行重新测试。(3)测试结束成本控制)测试结束成本控制(4)降低测试实施成本)降低测试实施成本(5)降低测试维护成本)降低测试维护成本 对于测试中出现的偏差要增加测试;对于测试中出现的偏差要增加测试; 采用渐进式测试,以适应新变化的测试;采用渐进式测试,以适应新变化的测试; 定期检查维护所有测试用例,以获得测试定期检查维护所有测试用例,以获得测试效果的连续性。效果的连续性。 保持测试用例效果的连续性是重要的措保持测试用例效果的连续性是重要的措施,有以下几个方面:施,有以下几个方面: 每一个测试用例都是可执行的,即被每一个测试用例都是可执行的,即被测产品功能上不
45、应有任何变化;测产品功能上不应有任何变化; 基于需求和功能的测试都应是适合的,基于需求和功能的测试都应是适合的,若产品需求和功能发生小的变化,不应使若产品需求和功能发生小的变化,不应使测试用例无效;测试用例无效; 每一个测试用例不断增加使用价值,每一个测试用例不断增加使用价值,即每一个测试用例不应是完全冗余的,连即每一个测试用例不应是完全冗余的,连续使用,应是成本效益高的。续使用,应是成本效益高的。3质量成本质量成本(1)质量成本要素)质量成本要素 非一致性成本是由出现的软件错误和测非一致性成本是由出现的软件错误和测试过程故障(如延期、劣质的发布)引起试过程故障(如延期、劣质的发布)引起的。这
46、些问题会导致返工、补测、延迟。的。这些问题会导致返工、补测、延迟。追加测试时间和资金就是一种由于内部故追加测试时间和资金就是一种由于内部故障引起的非一致性成本。非一致性成本还障引起的非一致性成本。非一致性成本还包括外部故障(软件遗留错误影响客户)包括外部故障(软件遗留错误影响客户)引起部分。一般情况下,外部故障非一致引起部分。一般情况下,外部故障非一致性成本要大于一致性成本与内部故障非一性成本要大于一致性成本与内部故障非一致性成本之和。致性成本之和。(2)质量成本计算)质量成本计算4缺陷探测率缺陷探测率测试投资回报率可按下式计算:测试投资回报率可按下式计算:投资回报率投资回报率 = (节约的成本节约的成本 利润利润) / 测试投资测试投资100%