软件测试风险分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作为软件测试计划的一部分,软件测试风险的分析与控制是其中重要的环节。如果前期风险分析与控制比较充分,那么会使软件的测试成功性大大增加,且可将由风险异常引发的额外成本(如人力,时间等)降到最低。查阅了网上很多关于软件测试风险控制的文章,其中不乏精品之作。本文将此类知识进行了归纳,查漏补缺,并在思维导向性上给出了简单的实施步骤,以使得在实际应用中能得到更好的运用。
第一部分:软件测试项目级的风险分析
1.?
人,
•
•
•
•
•
•
•
•
•
•同化效应:经过和开发的长时间接触,往往会被开发的思维逻辑所同化,渐渐丧失从用户角度出发的测试观察点。
料,即测试相关文档(在TQM中指的是生产原材料):
•
•Spec(详细规格说明书)缺失:只有PRD(项目需求概要说明书),没有spec。笔者所在的公司,早些时候的产品更多的时候只有PRD,没有Spec。
•
•需求变更:这是最不想,但又最经常发生的事情
•
•测试用例/数据设计不充分:某些时候由于编写测试人员的个人因素或时间的限制等方面因素导致。
•
•质量标准不统一:如某些Bug的优先级方面,测试和开发的认同不一致。
法,即测试方法和实施:
•
•错误或缺失测试方法:对功能点没有采用正确的测试方法,或某些测试方法没有被忽视,如边界测试等,导致测试不充分。
•
•1
•
•
环,
•
•
•
•
•
•
•
•
时,
•
•
•
•测试时间延长:由于需求方突然宣布原进度表中的里程碑时间点延后,导致项目的进度表一下松弛了许多。笔者参加过的两个项目就遇见过这种情况,我们为世界某着名品牌电脑供应商开发并提供随机软件。在项目进展到中后期时,客户忽然通知我们暂时不安排我们的软件在他们这一版本系统中进行安装,要等到下一版本,时间延迟可能长达三个月,甚至更多。
注:以上五个方面不可能将所有软件测试中潜在的风险全部罗列,旨在给出思维方式。
2.?采用FMEA评估及分析风险项
在采用FMEA对风险进行评估和分析前,有必要先熟悉一些FMEA的知识点。
(1)FMEA(FailureModeEffectsAnalysis):潜在失效模式和结果分析。即找出产品/过程中潜在的故障模式根据相应的评价体系对找出的潜在故障模式进行风险量化评估;列出故障起因/机理,寻找预防或改进措施。
(2)FMEA关键项:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
(3)FMEA流程:
本文只给出了简单流程示意图,更详细的流程做法,请参看《FAILUREMODESANDEFFECTSANALYSIS》KennethCrow 中的FMEAProcedure章节。
下面给出一个FMEA的简单模板,可以参照下图的表格填写上面人、料、法、环、时五大因素中所提及的各个风险子项填写在Function一列,并按公司的切实情况填写后续各列。
第二部分:软件测试用例级的风险分析
1.?测试用例风险分析的目的
在进行回归测试等情况下,从所有测试用例集(含功能点和场景测试两部分)中如何选择最小测试用例集,是一个值得思考的问题,本文仅想从测试用例风险系数等级划分来对这一问题进行部分探讨。对所有测试用例进行风险系数等级划分,并按等级数进行排序。在选择回归测试用例集时,从中挑选风险系数等级级别的高的测试用例进行优先测试,最后根据项目进度条件从风险等
参考:
1、《测试有道-微软测试测试技术心得》梁博,许珊等电子工业出版社
2、《测试风险的管理》
3、《风险列表》noone_pm?
4、《软件测试管理常见问题及其回答》songfun??
二
软件测试风险是不可避免的、总是存在的,所以对测试风险的管理非常重要,必须尽力降低测试中所存在
七、有些缺陷出现频率不是百分之百,不容易被发现;如果代码质量差,软件缺陷很多,被漏检的缺陷可能性就大;
八、回归测试一般不运行全部测试用例,是有选择性的执行,必然带来风险。
前面三种风险是可以避免的,而四至七的四种风险是不能避免的,可以降到最低。最后一种回归测试风险是可以避免,但出于时间或成本的考虑,一般也是存在的。
针对上述软件测试的风险,有一些有效的测试风险控制方法,如:
·测试环境不对可以通过事先列出要检查的所有条目,在测试环境设置好后,由其他人员按已列出条目逐条检查;?
·对每个关键性技术人员培养后备人员,作好人员流动的准备,采取一些措施确保人员一旦离开公司,项目不会受到严重影响,仍能可以继续下去;
·制定文档标准,并建立一种机制,保证文档及时产生;
·对所有工作多进行互相审查,及时发现问题,包括对不同的测试人员在不同的测试模块上相互调换;
·对所有过程进行日常跟踪,及时发现风险出现的征兆,避免风险。?
要想真正回避风险,就必须彻底改变测试项目的管理方式;针对测试的各种风险,建立一种“防患于未然”或“以预防为主”的管理意识。与传统的软件测试相比,全过程测试管理方式不仅可以有效降低产品的质量风险,而且还可以提前对软件产品缺陷进行规避、缩短对缺陷的反馈周期和整个项目的测试周期。