实例!用软件风险分析来实施测试

  在开发新的软件系统过程中,由于存在许多不确定因素,软件开发失败的风险是客观存在的。因此,风险分析对于软件项目管理是决定性的。风险分析实际上就是贯穿在软件工程过程中的一系列风险管理步骤,其中包括:风险识别、风险估计、风险管理策略、风险解决和风险监督等。

  要理解风险分析,我们首先要理解‘风险’这个名词。用汉语的逻辑去对这个词做一个通俗性解释,可以这么展开:风险=“一个不好的事情可能会发生”。这里要注意这句话里的两个要素:一是“可能”,即这是一种可能性的预测,他不是真实已经发生的或者100%一定发生了的事;二是“不好的事”,站在软件产品质量的角度而言,就是质量的一个瑕疵、问题。

  那么总结一下,对于软件产品而言,产品的风险就是软件产品可能会有质量问题的情况(更直白一点就是,产品可能会有缺陷)。

  我们引用ISTQB对于产品风险定义:

  在软件或系统中的潜在失效部分(即将来可能发生不利事件或危险)称之为产品风险,因为它们对产品质量而言是一个风险,包括:

  故障频发的软件交付使用;

  软件/硬件对个人或公司造成潜在损害的可能性;

  劣质的软件特性(比如功能性、可靠性、易用性和性能等) ;

  低劣的数据完整性和质量(例如:数据迁移问题、数据转换问题、数据传输问题、违反数 据标准问题);

  软件没有实现既定的功能。

 

  那么为什么我们研发的软件产品会有风险存在呢?其实问这个问题就等同于问’为什么软件产品可能会有缺陷呢‘?其实这个问题的本质就在于’人都是会犯错误的‘这样一个论断的成立。基于这个论断我们又可以推论出:’因为人都会犯错误,所以人开发出来的软件也就可能带有错误‘。这些在研发过程中我们犯的错误,遗留在产品中,就是缺陷;缺陷存在的可能性,就是产品风险。

  我们还可以更具体的去讨论,哪些因素,可能导致我们研发软件时更容易在产品中遗留错误:

  ① 产品大小/代码量:工作量越大,那么我们就越有可能犯错。

  ② 技术因素:未曾使用过的新技术都存在风险。包括未使用过的新型硬件、支持软件,缺乏标准与规范的非传统的开发方法等。技术过时也是风险。技术风险一般难于改正。

  ③ 开发环境:适用的开发工具不足、不可靠、使用不方便等因素,都会降低开发效率。

  ④ 组织规模和人员经验:比如人手不足,人员经验不丰富,都有可能带来产品风险。

  ⑤ 客户因素:表现在客户需求经常矛盾,不了解客户的特殊需要,客户不了解项目中采用的新技术,且双方又难于沟通等。

 

  所以,既然软件产品的风险是客观存在的,我们就要采取必要手段对风险进行处理,于是就引出了我们今天的课题,’风险分析‘。

  首先描述一下风险分析的步骤,一般而言我们可以认为风险分析包括以下部分内容:

  风险识别  想要控制风险,我们首先要知道有哪些风险,不然谈何控制?

  风险评估  知道了有哪些风险,其次我们要判断风险有多大,有多严重

  风险缓解  知道了风险有哪些和他的严重程度,我们就要想办法去缓解和规避风险

  风险管理  最后我们要对风险进行管理,达到风控的目标

 

  理论说了这么多,下面用一个简单的实际例子来诠释风险分析的过程。

  我还是拿上一篇《实例!软件缺陷数据度量和分析》中的COTS项目为例,这个项目情况是这样的:

该项目为一个COTS产品的定制性二次开发项目

项目周期计划为4个月,实际完成时间为6个月

项目是一个总体人员不到10人的小型项目

采用持续集成,高速迭代的研发方式

 

  第一步:列出软件的所有功能和特性

  根据项目相关人员对本项目的调研,我们列出了以下的软件功能模块和特性:

  所有主功能:订单支付模块、用户管理模块、后台管理模块、浏览展示模块、用户评价子系统、活动模块、促销管理模块

  质量专项问题:功能性问题、性能问题、界面问题、易用性问题、安全性问题、计算错误、描述错误

  用表格来展示就是这样的:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydjjg.html