在CAD软件的例子中,若以前有一个相似的图形处理软件,在验收测试的时候发现了12个缺陷,本项目估算的工作量是66人/月,实际的工作量是82人/月,则CAD软件项目在验收测试时可能出现的缺陷是:
验收测试缺陷的估计=12×66/82=10
(2)使用过程能力基线中的数据,那么可以使用几种方法来计算这个值:
a、估算每功能单元的缺陷数,那么功能点规模按前面讨论的方式进行估计,预期的缺陷数是质量数据和估计规模的乘积。
b、估算过程缺陷清除率。在这种情形下,在验收测试阶段预期存在的缺陷数可以由缺陷注入率、过程中的清除率目标以及估计的规模一起来决定。
4、针对维护活动设计的度量
IEEE Std.982.1-1988[IEE94]建议了一个软件成熟度指标(SMI),它提供了对软件产品的稳定性的指示(基于为每一个产品的发布而做的变动),以下信息可以确定:
MT=当前发布中的模块数;
Fc=当前发布中已经变动的模块数;
Fa=当前发布中已经增加的模块数;
Fd=当前发布中已删除的前一发布中的模块数;
那么,软件成熟度指标可以用下面的公式来计算:
SMI=[MT-(Fa+Fc+Fd)]/MT
当SMI接近1.0的时候,产品开始稳定。SMI也可以用作计划软件维护活动的度量。产生一个软件产品的发布的平均时间可以和SMI关联起来,并且也可以开发一个维护工作量的经验模型。
在CAD软件的例子中,若目前的软件是2.0版,当前发布的模块数是32个,当前发布中已经变动的模块数是8个,当前发布中已经增加的模块数是2个,当前发布中已删除的前一发布中的模块数是1个,则:
SMI=(32-8-2-1)/32=0.656,
从结果可以看出,目前的情况离产品稳定还有相当的距离。
5、软件可用性的计算
软件可用性是指在某个给定时间点上程序能够按照需求执行的概率。其定义为:
可用性=MTTF/(MTTF+MTTR)×100%
其中,MTTF是“平均失败时间”,MTTR是“平均修复时间”。
在CAD软件的例子中,若软件在6个月内失败一次,每次恢复平均需要20分钟(恢复时间为排除故障或系统重新启动所用的时间),那么,它的可用性是:
6个月/(6个月+20分钟)X100=99.92%
通常,提高系统的可用性基本上有两种方法:即增加MTTF或减少MTTR。而增加MTTF还要求增加系统的可靠性。
6、利用植入故障法估算程序中原有故障总数ET
通常可以采用捕获-再捕获抽样法来估算程序中原有故障总数。
设Ns是在测试前人为地向程序中植入的故障数(称播种故障),ns 是经过一段时间测试后发现的播种故障的数目,n是在测试中又发现的程序原有故障数。
假设测试用例发现植入故障和原有故障的能力相同,则程序中原有故障总数 N(=ET) 估算值为:
例如,在CAD软件的测试过程中,人为播入的故障数是5个,经过一段时间的测试后发现的播种故障数是4个,在测试中又发现原有的故障数是2个,则程序中原有的故障数是:
N=(5/4)× 2=15个
软件开发风险的定量监理
很多应用软件项目之所以陷入混乱状态而使项目组人员经常感到疲于奔命,就是因为对风险管理的不重视。在监理过程中也常常如此,很多情况下都是问题发生时才意识到问题的存在。而资源和项目周期的压力,使得项目的相关方不得不在没有很充分准备的情况下仓促应战,而在这种情况下产生的结果往往是不理想的。
软件风险监理就是在风险成为影响软件项目成功的威胁之前,识别、着手处理并消除风险的源头。
风险关注未来将要发生的事情。那么,什么样的风险会导致软件项目彻底失败呢?改变也是我们所关心的—用户需求、开发技术、目标计算机以及所有其他与项目相关的因素的改变,将会对按时交付和总体成功产生什么影响呢?最后,我们必须抓住选择机会—我们应该采用什么方法和工具?需要多少人员来参与工作?对质量的要求要达到什么程度才是“足够的”?……诸如此类的问题还有很多,这些问题是风险监理最关键的部分。
对风险进行定量监理的第一步,就是要识别那些可能将风险带到项目计划中的因素,也就是对风险进行分类。
1、项目风险威胁到项目计划。也就是说,如果项目风险变成现实,有可能会拖延项目的进度,且增加项目的成本。
项目风险是指潜在的预算、进度、人力(工作人员及组织)、资源、客户、及需求等方面的问题以及它们对软件项目的影响。项目复杂性、规模以及结构不确定性也被定义为项目风险因素。
2、技术风险威胁到要开发软件的质量及交付时间。如果技术风险变成现实,则开发工作可能变得很困难或根本不可能。
技术风险是指潜在的设计、实现、接口、验证、和维护等方面的问题。此外,规约的二义性、技术的不确定性、陈旧的技术及“先进的”技术也是风险因素。
3、组织风险。常见的组织风险是组织内部对目标未达成一致、高层对项目不重视、资金不足或与其他项目有资源冲突等都是潜在的组织风险。
4、外部风险。比如法律法规变化、项目相关接口方的情况发生变化,这些事件往往是不可控制的。但要注意的是,一般将不可控制的“不可抗力”不作为风险,而是将它们当作灾难进行防御。
风险预测,又称为风险估算,试图从两个方面评估每一个风险—风险发生的可能性或概率,以及如果风险发生后所产生的后果。
项目计划者以及其他管理人员和技术人员需要一起执行四个风险预测活动:(1)建立一个尺度,以反映风险发生的可能性;(2)描述风险的后果;(3)估算风险对项目及产品的影响;(4)标注风险预测的整体精确度,以免产生误解。
风险表可以给项目管理者、监督者提供一种简单的风险预测技术。风险表的样本如表3所示。
在这里,PS指产品/项目规模风险,BU指商业风险,CU是指客户特性风险,TE是指建造技术风险,DE是指开发环境风险,ST是指人员经验与经验风险,……像这样风险可以有许多,在这里就不一一举例了。
项目组一开始要在表中的第一列列出所有风险(不管多么细微)。每一个风险在第二列上加以分类。每个风险发生的概率则输入到第三列中。每个风险的概率值可以由项目组成员个别估算,然后将这些单个值求平均,得到一个有代表性的概率值。
下一步是评估每个风险所产生的影响。使用表3所述的特性评估每个风险因素,并确定其影响的类别。对四个风险因素--性能、支持、成本及进度的影响类别求平均可得到一个整体的影响值(如果其中一个风险因素对项目特别重要,也可以使用加权求平均值)。
在表三中,影响类别取值如下:
1-灾难的,2-严重的,3-轻微的,4-可忽略的
完成了风险表的前四列内容之后,就要根据概率及影响来进行排序。高发生概率、高影响的风险放在表的上方,而低概率风险则移到表的下方。这样就完成了第一次风险排序。
项目监理者研究已排序的表,并定义一条中止线。该中止线(表中某一点上的一条水平线)表示:只有那些在线之上的风险才会得到进一步的关注。而在线之下的风险则需要再评估以完成第二次排序。排序后找出需要关注的风险点,进行处理。可以依次类推完成第三次排序或更多的排序。
从监理的角度来考虑,风险影响及概率是起着不同的作用的。一个具有高影响但发生概率很低的风险因素不应该花费太多的监理时间和精力。而高影响且发生概率为中到高的风险、以及低影响且高概率的风险,应该首先列入重点监理考虑之中。
文章来源于领测软件测试网 https://www.ltesting.net/