测试要发现多少个错误才终止?

如果我们事先知道要测试出多少个缺陷后终止测试,就已经满足软件的质量需求,那该是多么惬意的事!因为测试有了明确的目标,测试活动也不会有丝毫的浪费。

这并不是不可能完成的任务。

当我们的任务书中给出了明确的平均无故障时间(MTTF)时,我们就可以推算出要满足MTTF的要求,需要测试出多少个软件缺陷。

平均无故障时间(Mean Time To Failure,MTTF)是系统成功运行的平均时间(通常会在任务书中规定)。软件的实际成功运行时间主要取决于系统中潜伏的缺陷的数目,缺陷数目越多,MTTF越小。

正是由于MTTF与软件中潜在的缺陷数目有关,所以,我们可以通过MTTF,反推出测试要发现的缺陷数目。

在回答这个问题之前,我们先来看看MTTF与缺陷的关系。

要估算MTTF,首先要获得下列参数:

  • ET——测试之前程序中错误总数;

  • IT——程序长度(机器指令总数);

  • τ——测试(包括调试)时间;

  • Ed(τ)——在0~τ期间发现的错误数;

  • Ec(τ)——在0~τ期间改正的错误数。

并且,我们根据历史经验数据,作出下述假定:

  • 在类似的程序中,单位长度里的错误数E T /I T 近似为常数。美国的一些统计数字表明,在测试之前每1 000 条指令中大约有5~20 个错误。

  • 失效率正比于软件中剩余的(潜藏的)错误数,而MTTF与剩余的错误数成反比。

  • 每一个发现的缺陷都被正确地改正,没有引入新的缺陷,即Ed(τ)=Ec(τ)。

根据经验表明,MTTF与单位长度程序中剩余的错误数成反比。

而单位长度程序中的剩余的错误数=单位长度里的错误数-单位长度发现的错误数=E T /I T-Ec(τ)/IT。

所以,我们得出MTTF的计算公式如下:

MTTF=1/K(E T /I T-Ec(τ)/IT)

其中,K 为常数,它也是一个经验值。根据美国的一些统计数据表明,K 的典型值是200。

对这个公式进行变形,我们就会推导出测试需要发现的错误数的计算公式:

Ec(τ)=E T-I T/K*MTTF

这个公式中K是常数(典型值200),MTTF可由任务书中规定的值获得,E T /I T也是一个常数,由此可计算出测试要发现的缺陷数。由于E T /I T是5~25之间的常数,所以推导出来的测试发现的缺陷也是一个范围值。

这正是:

多少错误才终止,无须埋头去测试

可靠时间若已定,推导计算有公式

参考书目:软件工程(第4版),作者:张海藩 吕云翔,出版社:人民邮电出版社有限公司

(0)

相关推荐