9.2程序中隐藏错误数量估计_第1页
9.2程序中隐藏错误数量估计_第2页
9.2程序中隐藏错误数量估计_第3页
9.2程序中隐藏错误数量估计_第4页
9.2程序中隐藏错误数量估计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件质量保证与测试第9章软件质量与软件质量管理SoftwareQualityAssuranceandTesting9.2程序中隐藏错误数量估计程序中隐藏错误数量估计

由于我们无法对软件进行穷举测试,所以即使是经过测试的软件,其中可能也会有隐藏的错误。那么一个经过测试的软件中究竟还隐藏有多少错误呢?这个问题无法准确回答,但是利用测试的统计数据,我们可以对软件中隐藏的错误数量进行估计,当然这种估计是需要建立在合理的数学模型基础上的。数学模型测试统计数据估算结果撒播模型法有一个实际问题,如何估计一个池塘中鱼的总数?全部捞上来数一下吗?这样做成本太高,而且也没有这个必要!

我们先来看一种简单的对程序中隐藏错误数量进行估计的方法,这种方法基于撒播模型。撒播模型(SeedingModels)

一种简单的方法是:撒一网,捕捞上来Nt尾鱼,做上标记,放回到池塘中,等待其与未做标记的鱼充分混合,几天以后,再从池塘中任意捞出一些鱼的样本,得到带标记的鱼nt尾,无标记者n尾。撒播模型法Nt①②③

nt{n有等比关系式N

根据等比关系:

变形得

Nt*n+Nt*nt=nt*Nt+nt*N

化简后可得到池塘中鱼总数N:

得出的N不含做上标记的鱼的数量。当鱼的总数远大于做标记的鱼的数量时,做标记的

鱼的数量对于估算值可忽略不计。

撒播模型法

如果设

N表示含有做上标记的鱼的总数量

等比关系式变为

变形得

N*nt=Nt*n+Nt*nt

两边同时除以nt后可得

与前面的结果只是形式不一样,实质上是一样的。撒播模型法模仿上述方法,假设在开始测试以前,软件中的错误数为N,首先,往程序中人为插入NS个错误,经过一段时间的测试工作以后,发现的错误可以分为两类,一类属于人为插入的错误ns,另一类是软件中原来就有的错误n,则软件中错误数的估算值为:撒播模型法软件×N×Ns软件×N×Ns测试{×n×ns

基于撒播模型,对程序中隐藏的错误数量进行估计,这一方法在应用时存在两个实际困难:人为植入错误较为困难不同的错误被发现的难易程度不一样,被插入的错误并不一定能代表各种可能的错误,估算结果不一定准确。撒播模型法

例如,在开始测试前,我们往程序中人为插入10个错误,这些错误都是已知类型的常见错误,经过一段时间的测试工作以后,这10个错误都被发现了,这样一来,根据算式,则软件中隐藏的错误数估算值为0,这显然有一定的局限性。撒播模型法{ns=10Ns=10总数=已发现数隐藏数为0第二种方法叫

Hyman分别测试法。什么是分别测试法呢,为了帮助大家理解,我们先来做一个类比。

张三和李四两人都到某个城市游玩,他们每人各自随机选取了3个景点参观游览,如果他们各自选取的

3个景点重合度高说明什么问题?重合度低又说明什么问题呢?Hyman分别测试法景点

经过分析我们不难得知,如果他们各自随机选取的3个景点重合度高,则说明他们可以选择的余地小,也就是总的景点数量少。

极端情况下,如果这个城市只有3个景点,那么他们的选择一定是完全重合的!

重合度低,则说明总的景点数多,他们可以选择的余地大。Hyman分别测试法与此类似,Hyman分别测试法由两个测试员同时互相独立地测试同一程序的两个副本,用t表示测试时间,记t=0时,程序中原有错误总数是B0;记t=t1时,Hyman分别测试法B1:第一个人发现的错误B2

:第二个人发现的错误bc:两人都发现的错误b1:第二个人发现的不在B1中的错误显然:B2=bc+b1B1B2bcb1

B0Hyman分别测试法B1B2bcb1

站在第一个人的角度,以B0为样本空间,他的错误发现率为B1/B0,以B2为样本空间,他的错误发现率为bc/B2,同一个人的错误发现率相等,所以有:

B0变形后可得:

站在第二个人角度的计算过程类似,结果是一样的。第三种方法叫回归分析。有变量X和Y,假设我们事先并不知道它们之间的定量关系,但有几组已知数据,X=1时Y=2,X=3时Y=6,X=5时Y=10,根据这些数据,我们很容易推出Y=2X。这就是一种最为简单的线性回归分析。回归分析(regressionanalysis)指的是确定两个或两个以上变量间定量关系的一种统计分析方法。

回归分析

回归分析包括两大步骤。

先要得到回归函数,并画出回归曲线。

即根据已知数据,确定变量之间的函数关系,并画出回归曲线图。

回归分析{X=x1,x2,x3,......Y=y1,y2,y3,......

例如,已知软件项目A在不同的测试时间点上的几组累计错误数,如下表和右图中的数据点所示。

测试时间累计的错误数项目A

回归分析测试时间累计错误数t1y1t2y2t3y3t4y4

根据这些离散的点,可以借助数学工具,进行拟合,得出测试时间和累计的错误数之间的函数关系,并进而画出曲线图。测试时间累计的错误数项目A

回归分析

得出回归函数,画出回归曲线之后,回归分析的第二个步骤就是预测任何时刻的错误数。此时只需要把测试时间参数代入回归函数即可算出总的错误数,然后总的错误数减去已经发现的错误数,就可估算得出软件中隐藏的错误数。

回归分析

设有两个软件项目A和B,根据它们各自几组在不同的测试时间点上的累计错误数数据,拟合得

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论