作者:1076263105_69ae53 | 来源:互联网 | 2023-05-17 14:04
使用风险分析,确定测试的重点。由于很少有机会对一个应用软件进行所有可能的测试(包括所有可能的事件组合、所有的相关性、或者一切可能出错的东西),对大多数软件开发项目来说,利用
使用风险分析,确定测试的重点。
由于很少有机会对一个应用软件进行所有可能的测试 ( 包括所有可能的事件组合、所有的相关性、或者一切可能出错的东西 ) ,对大多数软件开发项目来说,利用风险分析是适当的。这需要判断技能、常识、感觉和经验。如果有正当理由,也可采用正式的方法。需要考虑下列因素:
1 对于该项目的用途而言,哪种功能最重要?
2 哪种功能对用户最明显?
3 哪种功能对安全影响最大?
4 哪种功能对用户最有用?
5 对客户来说,该应用软件的哪个部分最重要?
6 在开发过程中,该应用软件的哪个部分可以最先测试?
7 哪一部分代码最复杂,容易导致出现错误?
8 哪一部分的应用程序是在急迫或在惊恐的情况下开发出来的?
9 哪一部分程序与过去项目中引起问题的部分相类似/有关?
10 哪一部分程序与过去项目中需要大量维护的部分相类似/有关?
11 需求和设计的那些部分不清楚或不容易读?
12 开发人员认为在应用软件中哪些部分是高风险的?
13 哪些问题能造成最差的发行?
14 哪些问题最能引起用户抱怨?
15 哪些测试可以容易地覆盖多种功能?
16 哪些测试在覆盖高风险部分的测试时使用时间最少?
返回《软件测试中面临的问题及解决办法》
======================================================
我的经历:如果测试时间不够,肯定不能全功能覆盖,我们是否应该只测客户比较关心的,比较常用的功能?
测试目前主要是产品测试和项目测试。做自己公司的产品测试,如果碰到不能按原计划完成,本着为质量负责,一般都可以申请延期。
如果是做项目,迫于合同和客户验收的压力,碰到不能按原计划完成的情况,就是项目风险了。而处理的方式基本都是“先测客户比较关心的,比较常用的功能”,保证通过客户验收,拿到项目款。分析客户验收所关心的功能点(比如客户最近几天提过什么需求,肯定要测试,因为时间短,他肯定记得),分析系统最脆弱的地方,走通所有业务流程等。而客户验收时候,不关心和不可能想到得地方可以不测试(比如系统中很多同步功能)。
我讲个自己的经历,做的是国内最大保险公司的一个平台,由几个系统共同构成。由于前期公司为了节约成本,一直投入比较少的资源,到了后期,明显感觉到项目不可能如期完成,更要命的是,测试前期没有跟进,对于这个项目的质量没有任何把握。
公司处理措施:
1.增加研发人手,由前期三人,增到5人;
2.由我带3名测试人员介入,一名性能测试工程师,开始测试。
3.研发部门经理每天跟进进度。
4。提出延期请求。
客户态度:
1.对前期项目成果极度不满意,狠批改项目的负责人。
2.为了项目进度,非常配合提供测试环境和资源。
3.一顿脸色后,给出15天的延期许可。
公司接下来的工作:
1.完成未完成的功能和客户新提出的功能。
2.在提供的环境上进行测试。
3.集中处理长期积累的缺陷。
4.集成几个系统。
发现问题:
1.没有良好的需求管理,平时客户开会或邮件发来的需求忘记或者没有完全理解。
2.发现测试进展缓慢,人手不够,不了解需求,缺少测试环境,经常发现严重问题而停止测试,发布新的测试版本。
3.几个系统集成后,发现更多的新问题
4.性能测试结果表明,性能无法达到客户的要求。
项目进入风险处理期,公司的处理:
1.更换项目经理
2.编造谎话应付客户,说一定能如期交付。
3.指示测试人员(具体说是说),只测试客户关心的功能和主要业务流程。
4.指示测试人员(我),修改测试报告,不合格的功能删除,只写测试通过的功能。
5.指示我修改性能测试数据,说明性能指标基本达到。
测试人员的处理(我):
1.请示了测试部经理后,按项目经理的要求做了。
项目的结果:
1.交付了一个客户根本无法正常使用的平台,客户暴怒。
2.客户中止了所有与公司的合同,包括结束了持续两年的合作友谊。
3.客户拒付剩余的项目款。
4.公司开除所有参与项目的开发人员,包括项目经理(虽没有影响到测试,但我感觉公司管理混乱,也主动请辞了)。
5.公司失去了一个大客户。
这是血的教训,对于公司损失的是钱和信誉,对于客户损失的是钱和无限拖延的项目以及产品延期造成的竞争力影响。
对于开发,除了疯狂加班的劳累,还有开除的冤屈;对于测试,没有坚持自己的职业道德。
我讲述的这个经历,可能大部分的项目都不会发展到这种地步,到我们必须充分意识到风险的存在。所以我觉得作为测试,碰到时间紧张,测试资源欠缺,所唯一能做的是上报公司,让他们协调人工和资源,做延期处理。这样做公司可能因不能如期交付而受到一些经济上的损失,但交付一个合格的产品给客户,绝对不会有信誉上的损失,从长久看,会有更多的收益。作为测试,你没有任何权利自己做风险处理---测“客户关心的,测主要功能”,都是错误的做法。作为测试,坚守住自己的职业道德,只做自己职责范围的工作和力所能及的事;作为测试,不但要为支付给你工资的老板负责,也请为你手中的软件负责,为客户支付的金钱负责。