1、软件质量保证与测试软件质量保证与测试1第第3章章 软件测试风险管理软件测试风险管理软件质量保证与测试软件质量保证与测试2内容提要内容提要n测试风险的基本概念测试风险的基本概念 n测试风险识别技术测试风险识别技术 n测试风险分析测试风险分析 n测试计划风险的应对措施测试计划风险的应对措施 软件质量保证与测试软件质量保证与测试33.1 测试风险的基本概念测试风险的基本概念n风险风险风险是那些风险是那些可能可能发生的事件或者条件,如果它确实发生发生的事件或者条件,如果它确实发生了,则它的发生会对项目产生了,则它的发生会对项目产生有害有害的或者负面的的或者负面的影响影响。n可能发生,也可能不发生可能发
2、生,也可能不发生n如果发生,将带来负面影响如果发生,将带来负面影响n软件风险(软件开发的风险)软件风险(软件开发的风险)使软件项目的实施受到影响和损失、甚至导致失败的、使软件项目的实施受到影响和损失、甚至导致失败的、可能会发生的事件可能会发生的事件n例如,人员的临时流失,计划过于乐观,设计的低劣例如,人员的临时流失,计划过于乐观,设计的低劣软件质量保证与测试软件质量保证与测试4对风险概念的理解对风险概念的理解n不确定的事情都属于风险吗?不确定的事情都属于风险吗?n例:内部管理层的干预不属于风险例:内部管理层的干预不属于风险n不确定的变化属于风险吗?不确定的变化属于风险吗?n例:需求变更不属于风
3、险例:需求变更不属于风险n例:测试过程中发现的重大问题不属于风险例:测试过程中发现的重大问题不属于风险n哪些是风险呢?哪些是风险呢?n例:设计过程中不考虑各种变更,不准备针对变更例:设计过程中不考虑各种变更,不准备针对变更的处理方案,这属于风险的处理方案,这属于风险n例:对严重例:对严重Bug缺乏有效解决机制,这属于风险缺乏有效解决机制,这属于风险软件质量保证与测试软件质量保证与测试5正确认识风险正确认识风险n风险是概率事件风险是概率事件可能发生也可能不会发生可能发生也可能不会发生n不能盲目乐观的忽视风险的存在不能盲目乐观的忽视风险的存在n亦不可失去明确标识风险的勇气亦不可失去明确标识风险的勇
4、气软件质量保证与测试软件质量保证与测试6风险管理风险管理n风险管理风险管理旨在旨在对可能出现的问题和障碍对可能出现的问题和障碍进行进行预测和预测和防护防护,并制定补救措施计划并制定补救措施计划,使它们对项目开发工,使它们对项目开发工作的负面影响最小。作的负面影响最小。n识别风险识别风险(会有哪些风险?会有哪些风险?)n预防和消除风险预防和消除风险(最好别让风险发生最好别让风险发生)n制定风险发生后的处理措施制定风险发生后的处理措施(万一发生该怎么办?万一发生该怎么办?)软件质量保证与测试软件质量保证与测试7风险管理的组成风险管理的组成风险管理风险管理风险评估风险评估风险控制风险控制风险识别风险
5、识别风险分析风险分析风险优先级风险优先级风险管理计划风险管理计划风险化解风险化解风险监控风险监控软件质量保证与测试软件质量保证与测试8风险管理的组成风险管理的组成n风险评估风险评估n风险风险识别识别:识别风险,形成风险列表:识别风险,形成风险列表n风险风险分析分析:判定每一个风险出现的概率、产生的影:判定每一个风险出现的概率、产生的影响及其重要性响及其重要性n风险风险优先级优先级:按照每个风险的重要性排出一个风险:按照每个风险的重要性排出一个风险优先级优先级n风险评估是风险控制的基础风险评估是风险控制的基础软件质量保证与测试软件质量保证与测试9风险管理的组成风险管理的组成n风险控制风险控制n风
6、险管理计划风险管理计划:针对各个风险制定风险管理计划,:针对各个风险制定风险管理计划,确保各个单独的风险管理计划与相关计划之间的一确保各个单独的风险管理计划与相关计划之间的一致性致性n风险化解风险化解:执行风险管理计划,以缓解或消除风险:执行风险管理计划,以缓解或消除风险n风险监控风险监控:监控风险化解的过程,可能会识别出新:监控风险化解的过程,可能会识别出新的风险的风险软件质量保证与测试软件质量保证与测试10软件测试的风险软件测试的风险n在软件测试中,即使很小的软件系统,也在软件测试中,即使很小的软件系统,也不可能对系统不可能对系统的所有方面进行测试的所有方面进行测试,这就会存在,这就会存在
7、测试风险测试风险,即,即没有安没有安排或执行测试用例,但是存在用户发现缺陷的可能性排或执行测试用例,但是存在用户发现缺陷的可能性。n测试风险发生的可能性测试风险发生的可能性n不一定发生,确定发生就不能称之为风险不一定发生,确定发生就不能称之为风险n项目目前有不可控因素影响着风险的发生项目目前有不可控因素影响着风险的发生n测试风险发生后的影响测试风险发生后的影响n只要确定了一个测试风险,其影响程度就可以通过某种方只要确定了一个测试风险,其影响程度就可以通过某种方式获悉式获悉n往往先考虑哪些情况会对测试项目产生影响,再考虑其发往往先考虑哪些情况会对测试项目产生影响,再考虑其发生的可能性生的可能性软
8、件质量保证与测试软件质量保证与测试11软件测试风险管理软件测试风险管理n软件测试的软件测试的风险管理风险管理的的目的目的就是在于就是在于测试前测试前对可能存在对可能存在的缺陷或工作中导致测试无法有效执行的的缺陷或工作中导致测试无法有效执行的可能性可能性进行分进行分析,来合理安排测试资源活动。析,来合理安排测试资源活动。n测试风险管理测试风险管理很重要:对被测系统测试了很重要:对被测系统测试了“哪些方面哪些方面”比测试了比测试了“多少内容多少内容”重要。重要。n不成功的测试导致软件交付潜藏问题,一旦在运行时爆不成功的测试导致软件交付潜藏问题,一旦在运行时爆发,会带来很大的商业风险。发,会带来很大
9、的商业风险。n不同类型不同类型的测试项目有的测试项目有不同的风险不同的风险,相同类型相同类型的项目因的项目因其所处环境、项目客户与项目团队以及所采用的技术与其所处环境、项目客户与项目团队以及所采用的技术与工具不同,其测试风险也各不相同。工具不同,其测试风险也各不相同。软件质量保证与测试软件质量保证与测试12测试风险的类别测试风险的类别n技术风险技术风险软件项目采用的开发技术与开发平台是测试项目风软件项目采用的开发技术与开发平台是测试项目风险的重要来源之一险的重要来源之一n管理风险管理风险管理风险包括测试项目执行过程的各方面管理风险包括测试项目执行过程的各方面软件质量保证与测试软件质量保证与测试
10、13技术风险技术风险n软件项目采用的软件项目采用的开发技术开发技术与与开发平台开发平台是测试项目风是测试项目风险的重要来源之一险的重要来源之一n新技术新技术或或技术创新技术创新n需求的变更需求的变更及及需求描述不清晰、需求的矛盾需求描述不清晰、需求的矛盾n使用了使用了第三方代码第三方代码也会存在技术风险也会存在技术风险n系统的复杂度系统的复杂度也是导致测试技术风险的重要原因也是导致测试技术风险的重要原因软件质量保证与测试软件质量保证与测试14管理风险管理风险n管理风险包括管理风险包括测试项目执行过程测试项目执行过程的各方面,如测试项目的各方面,如测试项目计划的时间、资源分配、测试项目的质量管理
11、、测试管计划的时间、资源分配、测试项目的质量管理、测试管理流程、规范、工具等的采用以及测试外包商的管理等理流程、规范、工具等的采用以及测试外包商的管理等n开发中开发中没有配置管理没有配置管理,软件系统和文件就有被错误覆盖,软件系统和文件就有被错误覆盖的可能性的可能性n缺乏经费和时间的测试缺乏经费和时间的测试n异地开发和测试,异地开发和测试,缺乏交流缺乏交流n测试员工之间存在矛盾测试员工之间存在矛盾软件质量保证与测试软件质量保证与测试15内容提要内容提要n测试风险的基本概念测试风险的基本概念 n测试风险识别技术测试风险识别技术 n测试风险分析测试风险分析 n测试计划风险的应对措施测试计划风险的应
12、对措施 软件质量保证与测试软件质量保证与测试163.2 测试风险识别技术测试风险识别技术n测试风险管理的测试风险管理的第一步第一步就是需要就是需要识别出识别出对测试项目会产对测试项目会产生重大影响的测试风险,即生重大影响的测试风险,即测试风险识别活动测试风险识别活动。n测试风险识别是风险管理的最重要的基础,也是最难的测试风险识别是风险管理的最重要的基础,也是最难的一部分。一部分。n测试风险产生的根源测试风险产生的根源n被测系统风险被测系统风险与系统的特征和属性的失效相关的风险与系统的特征和属性的失效相关的风险n计划风险计划风险与测试计划的失效相关的风险与测试计划的失效相关的风险软件质量保证与测
13、试软件质量保证与测试17测试风险识别技术测试风险识别技术n被测系统风险分析被测系统风险分析目的:确定测试对象测试的优先级以及测试的深度目的:确定测试对象测试的优先级以及测试的深度n测试计划风险分析测试计划风险分析目的:规避由于测试项目工作资源提供的不确定性目的:规避由于测试项目工作资源提供的不确定性而导致的问题而导致的问题n测试风险识别技术:基于测试风险识别技术:基于“发散性思维发散性思维”n头脑风暴法头脑风暴法n访谈访谈n风险检查表风险检查表 软件质量保证与测试软件质量保证与测试18头脑风暴法(头脑风暴法(Brain Storming)n快速大量寻求解决问题构想的集体思考方法。快速大量寻求解
14、决问题构想的集体思考方法。nA.F.奥斯本于奥斯本于19381939年首次提出、年首次提出、1953年正式发年正式发表。表。Brain storming原意为原意为短暂的精神错乱短暂的精神错乱,奥斯本借,奥斯本借用这个词来形容会议的用这个词来形容会议的特点特点是是让与会者敞开思想,使各让与会者敞开思想,使各种设想在相互碰撞中激起脑海的创造性种设想在相互碰撞中激起脑海的创造性“风暴风暴”。n头脑风暴法头脑风暴法:通过会议的形成,让所有参加者在自由愉:通过会议的形成,让所有参加者在自由愉快、畅所欲言的气氛中,自由提出想法或点子,并以此快、畅所欲言的气氛中,自由提出想法或点子,并以此相互启发、相互激
15、励、引起联想、产生共振和连锁反应,相互启发、相互激励、引起联想、产生共振和连锁反应,从而诱发更多的创意及灵感。从而诱发更多的创意及灵感。软件质量保证与测试软件质量保证与测试19传统讨论会议的缺点传统讨论会议的缺点n多数人意见或一致意见的压力多数人意见或一致意见的压力n领导、权威人士的影响领导、权威人士的影响n随意的评判随意的评判n部分与会者沉默或不够积极部分与会者沉默或不够积极无拘无束环境下的头脑风暴会议的创造力有束缚环境下会议的创造力软件质量保证与测试软件质量保证与测试20头脑风暴法四大原则头脑风暴法四大原则 n自由思考:充分发挥与会人员想象力自由思考:充分发挥与会人员想象力即要求与会者尽可
16、能解放思想,无拘无束地思考问即要求与会者尽可能解放思想,无拘无束地思考问题并畅所欲言,不必顾虑自己的想法或说法是否题并畅所欲言,不必顾虑自己的想法或说法是否“离经叛道离经叛道”或或“荒唐可笑荒唐可笑”;不准参加者私下交不准参加者私下交流,以免打断别人的思维活动。流,以免打断别人的思维活动。n延迟评判:会上禁止批评或争论延迟评判:会上禁止批评或争论禁止与会者在会上对他人的设想评头论足,排除评禁止与会者在会上对他人的设想评头论足,排除评论性的判断。至于对设想的评判,留在会后进行。论性的判断。至于对设想的评判,留在会后进行。软件质量保证与测试软件质量保证与测试21头脑风暴法四大原则头脑风暴法四大原则
17、n以量求质:想法越多越好以量求质:想法越多越好鼓励与会者尽可能多地提出设想,以大量的设想来鼓励与会者尽可能多地提出设想,以大量的设想来保证质量较高的设想的存在,设想多多益善。保证质量较高的设想的存在,设想多多益善。n组合改善:整理汇总完善组合改善:整理汇总完善鼓励与会者积极进行智力互补,善于利用别人的思鼓励与会者积极进行智力互补,善于利用别人的思想开拓自己的思路,在增加自己提出设想的同时,想开拓自己的思路,在增加自己提出设想的同时,注意思考如何把两个或更多的设想组合成另一个更注意思考如何把两个或更多的设想组合成另一个更完善的设想。完善的设想。软件质量保证与测试软件质量保证与测试22实施头脑风暴
18、法实施头脑风暴法特别提醒特别提醒n头脑风暴法开始前,注意明确议题;头脑风暴法开始前,注意明确议题;n议题范围应在参加者关心范围内;议题范围应在参加者关心范围内;n四大原则不可违反;四大原则不可违反;n讨论时气氛自由、轻松、但应避免太乱而无秩序;讨论时气氛自由、轻松、但应避免太乱而无秩序;n主持人应注意控制时间,一般为主持人应注意控制时间,一般为30分钟。分钟。软件质量保证与测试软件质量保证与测试23测试风险识别测试风险识别 头脑风暴法头脑风暴法n一般在一个专家小组内进行,通过专家会议,发挥一般在一个专家小组内进行,通过专家会议,发挥专家的创造性思维来获取信息。专家的创造性思维来获取信息。n不准
19、批评或争论不准批评或争论n充分发挥成员的想象力充分发挥成员的想象力n征求到的意见越多越好征求到的意见越多越好n整理、汇总意见整理、汇总意见软件质量保证与测试软件质量保证与测试24访谈访谈n向测试项目组内部和外部的向测试项目组内部和外部的资深专家资深专家进行关于风险的面进行关于风险的面谈谈有助于找出有助于找出那些在常规计划中没有被识别的风险。那些在常规计划中没有被识别的风险。n在访谈过程中,在访谈过程中,利用利用被访谈人员被访谈人员的资深背景及丰富的经的资深背景及丰富的经验验,挖掘出一些以前没被发现的测试风险。,挖掘出一些以前没被发现的测试风险。n在访谈前,负责风险识别的人员(通常是测试经理)在
20、访谈前,负责风险识别的人员(通常是测试经理)选选择合适的访谈人员择合适的访谈人员,事先向他们提供项目的有关背景知,事先向他们提供项目的有关背景知识、简要的项目情况介绍和其他一些必要的信息,如测识、简要的项目情况介绍和其他一些必要的信息,如测试项目的一些约束条件。试项目的一些约束条件。软件质量保证与测试软件质量保证与测试25风险检查表风险检查表n风险检查表风险检查表,就是一个测试项目可能会遇到的风险列表;,就是一个测试项目可能会遇到的风险列表;风险识别人员对照表的每一项进行判断,逐个进行检查;风险识别人员对照表的每一项进行判断,逐个进行检查;表的每一项都列出了可能会遇到的测试风险;风险检查表的每
21、一项都列出了可能会遇到的测试风险;风险检查表需要不断维护。表需要不断维护。n优点优点简单、快速、容易理解,结果稳定简单、快速、容易理解,结果稳定n缺点缺点无法预防可能遇到的新的风险无法预防可能遇到的新的风险软件质量保证与测试软件质量保证与测试26内容提要内容提要n测试风险的基本概念测试风险的基本概念 n测试风险识别技术测试风险识别技术 n测试风险分析测试风险分析 n测试计划风险的应对措施测试计划风险的应对措施 软件质量保证与测试软件质量保证与测试27测试风险分析测试风险分析n软件测试风险分析的目标软件测试风险分析的目标n确定测试对象确定测试对象n确定测试优先级确定测试优先级n确定测试深度确定测
22、试深度n确定不予测试的对象确定不予测试的对象软件质量保证与测试软件质量保证与测试28软件测试风险分析活动软件测试风险分析活动软件质量保证与测试软件质量保证与测试29风险的分析过程风险的分析过程 n步骤步骤1:确定测试范围的:确定测试范围的功能点和性能属性功能点和性能属性;n步骤步骤2:确定测试风险:确定测试风险发生的可能发生的可能;n步骤步骤3:确定测试风险发生后产生的:确定测试风险发生后产生的影响程度影响程度;n步骤步骤4:计算测试风险优先级;:计算测试风险优先级;n步骤步骤5:确定测试风险优先级。:确定测试风险优先级。软件质量保证与测试软件质量保证与测试30例:例:ATM应用程序的测试风险
23、分析应用程序的测试风险分析ATM功能功能/性能性能 失效可能性失效可能性功能点功能点性能属性性能属性1.确定测试范围的功能点和性能属性确定测试范围的功能点和性能属性2.确定测试风险发生的可能确定测试风险发生的可能软件质量保证与测试软件质量保证与测试31例:例:ATM应用程序的测试风险分析应用程序的测试风险分析ATM功能功能/性能属性性能属性 失效影响程度失效影响程度3.确定测试风险发生后产生的影响程度确定测试风险发生后产生的影响程度软件质量保证与测试软件质量保证与测试32例:例:ATM应用程序的测试风险分析应用程序的测试风险分析测试风险优先级测试风险优先级4.计算测试风险优先级计算测试风险优先
24、级软件质量保证与测试软件质量保证与测试33例:例:ATM应用程序的测试风险分析应用程序的测试风险分析ATM功能功能/性能属性的测试优先级性能属性的测试优先级4.计算测试风险优先级计算测试风险优先级软件质量保证与测试软件质量保证与测试34例:例:ATM应用程序的测试风险分析应用程序的测试风险分析ATM功能功能/性能属性的测试优先级性能属性的测试优先级 重组后重组后按测试风险优先级对表进行重新组织按测试风险优先级对表进行重新组织软件质量保证与测试软件质量保证与测试35例:例:ATM应用程序的测试风险分析应用程序的测试风险分析确定分割线确定分割线ATM功能功能/性能属性的测试优先级性能属性的测试优先
25、级软件质量保证与测试软件质量保证与测试36测试风险分析测试风险分析n随着时间的推移和对软件进一步的了解,可能需要随着时间的推移和对软件进一步的了解,可能需要对分割线进行上下对分割线进行上下调整调整。n测试风险分析是一个非常有效的工具,有助于在测试风险分析是一个非常有效的工具,有助于在进进度度、预算预算和和资源分配资源分配方面获得支持。方面获得支持。n随着随着需求需求、范围范围、设计设计、进度进度和和其他因素其他因素发生变化发生变化时,应对测试风险优先级列表进行时,应对测试风险优先级列表进行及时更新及时更新。n软件新版本软件新版本的测试风险优先级列表的调整:通常的测试风险优先级列表的调整:通常风
26、风险可能性险可能性的变更较大,除非功能方面做了较大改变,的变更较大,除非功能方面做了较大改变,测试风险影响程度测试风险影响程度的变更才会较大。的变更才会较大。软件质量保证与测试软件质量保证与测试37内容提要内容提要n测试风险的基本概念测试风险的基本概念 n测试风险识别技术测试风险识别技术 n测试风险分析测试风险分析 n测试计划风险的应对措施测试计划风险的应对措施 软件质量保证与测试软件质量保证与测试38测试计划风险的应对措施测试计划风险的应对措施n测试风险分析活动的目的是详细了解和比较测试风险分析活动的目的是详细了解和比较测试项目测试项目中中所遇到的风险,判断哪些风险对测试项目会产生更大的所遇
27、到的风险,判断哪些风险对测试项目会产生更大的影响。影响。n根据测试风险分析结果,制定测试计划。根据测试风险分析结果,制定测试计划。n测试计划的实现同样存在风险测试计划的实现同样存在风险。n测试计划风险分析的测试计划风险分析的目的目的是当计划风险发生时,确定最是当计划风险发生时,确定最好的应急措施。好的应急措施。n测试计划风险的应对措施就是测试计划风险的应对措施就是针对针对那些对计划好的测试那些对计划好的测试工作造成消极影响的所有因素一旦发生,可以采取什么工作造成消极影响的所有因素一旦发生,可以采取什么措施。措施。软件质量保证与测试软件质量保证与测试39常见的计划风险常见的计划风险n原有测试人员
28、不可用原有测试人员不可用n预算超支预算超支n测试环境无法获得测试环境无法获得n选用的测试工具无法使用选用的测试工具无法使用n测试材料出现问题测试材料出现问题n参与者的支持不到位参与者的支持不到位n培训需求不能满足培训需求不能满足n测试范围变更测试范围变更n测试需求不明确测试需求不明确n风险假设改变风险假设改变n软件不可测试软件不可测试软件质量保证与测试软件质量保证与测试40可能的应急措施可能的应急措施n缩小范围缩小范围n推迟实现推迟实现n增加资源增加资源n减少质量过程减少质量过程软件质量保证与测试软件质量保证与测试41计划风险和应急措施计划风险和应急措施案例案例 1软件质量保证与测试软件质量保
29、证与测试42计划风险和应急措施计划风险和应急措施案例案例 2软件质量保证与测试软件质量保证与测试43软件测试风险管理软件测试风险管理n软件风险、计划风险、待测功能点软件风险、计划风险、待测功能点/属性、不予测属性、不予测试的功能点试的功能点/属性、测试策略都围绕属性、测试策略都围绕“用风险来排用风险来排定测试工作优先级定测试工作优先级”。软件质量保证与测试软件质量保证与测试44小结小结n软件测试风险软件测试风险n测试风险的类别测试风险的类别n技术风险技术风险n管理风险管理风险n通常使用的识别技术通常使用的识别技术n风险分析的步骤风险分析的步骤n可能存在的测试计划风险的应对措施可能存在的测试计划风险的应对措施