软件测试过程中应注意的风险

在编写测试计划的时候要考虑可能发生的风险,并提出应对措施。那么到底都有哪些风险要注意呢?如何解决呢?以下列出了一些方案:

  设计方面:

  风险:(1)没有详细设计说明书;

  解决方案:测试人员要在开发阶段对相关设计及需求文档进行分析,对大体模块功能进行分类,分析业务逻辑,在不清楚的地方及时与开发人员沟通。

  风险:(2)没有统一的界面设计规范。

  解决方案:与项目负责人确认测试标准。

  开发方面:

  风险:(1)所有模块开发没有统一设计,开发人员有自己的设计方式;

  解决方案:与项目负责人确认标准方式,与标准方式不一致的地方全部以BUG形式提交。

  风险:(2)需求变更开发。

  解决方案:建议将需求变更形成文档,对没有文档的需求变更,在测试过程中发现及时与开发负责人确认,并存档相关变更文档。

  测试本身:

  风险:(1)人力资源;

  解决方案:保证稳定的人员安排。

  风险:(2)硬件资源;

  解决方案:事先分析测试所需硬件资源,及时申请,保证测试工作顺利进行。

  风险:(3)版本控制;

  解决方案:严格控制版本,BUG以版本为单位进行提交。在测试过程中及BUG确认阶段禁止任何代码更新。

  风险:(4)测试时间不足。

  解决方案:动员测试人员完成测试任务,必要时,应给予相应物质奖励。

  测试风险是不可避免的、总是存在的,所以对测试风险的管理非常重要,必须尽力降低测试中所存在的风险,最大程度地保证质量和满足客户的需求。在测试工作中,主要的风险有:

  一、质量需求或产品的特性理解不准确,造成测试范围分析的误差,结果某些地方始终测试不到或验证的标准不对;

  二、测试用例没有得到百分之百的执行,如有些测试用例被有意或无意的遗漏;

  三、需求的临时/突然变化,导致设计的修改和代码的重写,测试时间不够;

  四、质量标准不都是很清晰的,如适用性的测试,仁者见仁、智者见智;

  五、测试用例设计不到位,忽视了一些边界条件、深层次的逻辑、用户场景等;

  六、测试环境,一般不可能和实际运行环境完全一致,造成测试结果的误差;

  七、有些缺陷出现频率不是百分之百,不容易被发现;如果代码质量差,软件缺陷很多,被漏检的缺陷可能性就大;

  八、回归测试一般不运行全部测试用例,是有选择性的执行,必然带来风险。

  前面三种风险是可以避免的,而四至七的四种风险是不能避免的,可以降到最低。最后一种回归测试风险是可以避免,但出于时间或成本的考虑,一般也是存在的。

  针对上述软件测试的风险,有一些有效的测试风险控制方法,如:

  测试环境不对可以通过事先列出要检查的所有条目,在测试环境设置好后,由其他人员按已列出条目逐条检查;

   有些测试风险可能带来的后果非常严重,能否将它转化为其他一些不会引起严重后果的低风险。如产品发布前夕,在某个不是很重要的新功能上发现一个严重的缺陷,如果修正这个缺陷,很有可能引起某个原有功能上的缺陷。这时处理这个缺陷所带来的风险就很大,对策是去掉那个新功能,转移这种风险;

  有些风险不可避免,就设法降低风险,如“程序中未发现的缺陷”这种风险总是存在,我们就要通过提高测试用例的覆盖率(如达到99.9%)来降低这种风险;

  为了避免、转移或降低风险,事先要做好风险管理计划和控制风险的策略,并对风险的处理还要制定一些应急的、有效的处理方案,如:

  在做资源、时间、成本等估算时,要留有余地,不要用到100%;

  在项目开始前,把一些环节或边界上的可能会有变化、难以控制的因素列入风险管理计划中;

  对每个关键性技术人员培养后备人员,作好人员流动的准备,采取一些措施确保人员一旦离开公司,项目不会受到严重影响,仍能可以继续下去;

  制定文档标准,并建立一种机制,保证文档及时产生;

  对所有工作多进行互相审查,及时发现问题,包括对不同的测试人员在不同的测试模块上相互调换;

  对所有过程进行日常跟踪,及时发现风险出现的征兆,避免风险。

   要想真正回避风险,就必须彻底改变测试项目的管理方式;针对测试的各种风险,建立一种“防患于未然”或“以预防为主”的管理意识。与传统的软件测试相比,全过程测试管理方式不仅可以有效降低产品的质量风险,而且还可以提前对软件产品缺陷进行规避、缩短对缺陷的反馈周期和整个项目的测试周期。

时间: 2024-10-05 05:03:34

软件测试过程中应注意的风险的相关文章

源代码加密软件在软件开发过程中应注意哪些问题?

互联网时代,随着全球信息化的深入发展,对信息技术应用不断探索,使信息技术推动了个人,企业,国家的长足进步,让更多的行业,更多的人了解到了信息技术的优点,以及对人民生活生产过程中的重要性,同时,它的高速扩张也加大了互联网信息产业与创新型软件开发公司的企业成长空间.与此同时,企业信息化带来的便捷性也让企业核心产品安全面临更多的威胁,国外调查结果显示,全球80%的泄密事件与内部人员有关,故如何保护企业内部机密数据安全,保护不因内部人员的行为让企业受到损失,成为安全系统的首要任务. 以源代码软件开发为主

软件测试过程中Fault,Error,Failure的区别

Fault是程序设计上的错误.比如检索数列中最后一个指定元素的位置,应该倒序搜索.如果正序搜索即为一个fault. Error是程序运行过程中状态的错误.例如遍历数列时for(int i = 1;i < array.length;i++)这样写第一次循环便从i=1开始.实际应该从i=0开始.这就是一个error. Failure是程序运行结束后所获得的结果与预期不相同.即为Failure. 下面是练习题: 以下为练习题的答案:

软件开发过程中要主要的问题

结合软件开发生命周期,软件开发过程中应注意的问题如下(个人愚见) 1)明确项目概况,即将项目定位,要结合需求和技术实现,对项目进行准确定位,制定合理的项目开发计划. 2)面对需求变化,需求变化是软件开发过程经常碰到的问题也是致命的问题,排除客户的问题,需求分析要做的足够好,需求分析做好后,最好要客户确认签字. 3)模块划分,把软件系统按照任务需求或者数据模型进行模块划分,提高系统开发进度. 4)编码规范,项目编写代码过程中要有详细的编码规范,如合理的程序文件结构(每个程序文件应由标题.内容.附加

浅谈软件性能测试中关键指标的监控与分析

浅谈软件性能测试中关键指标的监控与分析 一.软件性能测试需要监控哪些关键指标? 软件性能测试的目的主要有以下三点: Ø  评价系统当前性能,判断系统是否满足预期的性能需求. Ø  寻找软件系统可能存在的性能问题,定位性能瓶颈并解决问题. Ø  判定软件系统的性能表现,预见系统负载压力承受力,在应用部署之前,评估系统性能. 而对于用户来说,则最关注的是当前系统: Ø  是否满足上线性能要求? Ø  系统极限承载如何? Ø  系统稳定性如何? 因此,针对以上性能测试的目的以及用户的关注点,要达到以上

软件开发过程中的审查 (Review)

http://blog.csdn.net/horkychen/article/details/5035769 软件开发过程中的审查 (Review) 希望别人做些什么->定义出流程 希望别人做出正确的结果->定义出审查制度 软件开发项目中包括很多的审查动作,贯穿于整个开发过程.个人认为审查主要有以下目的: 1.尽早排查出潜在的问题(Potential Risk/Issue) 经过其他人的参与,以不同的视角提出不同的看法,会有类似头脑风暴的效果,集思广议来查找工程师未能注意的问题. 2.保持良好

第三部分:软件测试过程

软件测试贯穿于整个软件开发生命周期,在各个阶段有不同测试活动和过程. 软件测试可以分为4步进行: 单元测试.也称为模块测试,在模块编写完就开始进行,确保本模块内数据传输正确,功能完全,符合需求.测试一个模块时需要为其编写一个驱动模块来调用本单元进行测试,还需要编写若干个桩模块以模拟该单元调用其他子单元(为其正常运行提供数据). 集成测试.就是把模块按系统设计说明书的要求组合起来进行测试.虽然所有模块都通过了单元测试,但集成之后可能会出现一些问题:穿过模块的数据丢失,一个模块功能被其他模块影响,各

软件项目中的成本构成及估算方法【转】

随着知识经济.信息时代的来临,计算机软件业迅猛发展.商品化.资本化.资产化的计算机软件的价值 评估的社会需求也日益增多,而且有越来越多的趋势.由于系统软件通常是一些规模大.复杂程度高的人一 机系统,因此,系统软件的开发.使用.维护.管理的过程,是一个非常复杂的系统工程,需要有巨大的人 力.物力.财力资源,需要各种计算机软.硬件的支持.这一特点是在系统软件评估中应予充分考虑的,也 是从成本途径评估系统软件价值时应予着重关注的.据统计,软件成本在软.硬件总成本中的份额,已从50 年代的百分之十几,上

对于软件开发中开发人员与测试人员关系的理解

在软件开发中都会有开发人员(以下简称开发)和测试人员(以下简称测试),在一些小型公司可能并没有测试,仅仅是开发兼任测试.在这里我仅针对于有专业的测试和专业的开发的项目. 每个公司应该都有考核机制,对于开发和测试的考核实际上很难量化,通常来讲大的方向就是开发所负责模块的bug数,对于测试来讲就是测出来的bug数,但这真的有效吗?这也许对开发有约束力,理论上开发是能够自己控制bug数的,如果从产生的bug数来评判开发的绩效还算有效,这样开发自然就会把代码写得更加认真.但如果根据测试测出来的bug数来

软件开发中的白盒测试

今天,我们来谈谈软件开发过程中的白盒测试. 一.白盒测试的概念 白盒测试(White Box Testing),按照程序内部的结构.逻辑驱动测试程序,通过测试来检测产品内部动作是否按照设计说明书的规定正常进行,检验程序中的每条路径是否都能按预定要求正确工作.白盒测试的对象主要是源程序.是指用代码内部的分支.路径.条件,使程序设计的控制结构导出测试用例.白盒测试是一个与黑盒测试相对的概念,是指测试者针对可见代码进行的一种测试.白盒测试通常再划分为单元测试.集成测试两大类,但依据不同的流程,对白盒测