修改错误的一个常见失误是只修改了这个错误的征兆或这个错误的表现,而没有修改错误的本身。如果提出的修改不能解释与这个错误有关的全部线索,那就表明了只修改了错误的一部分。
当心修正一个错误的同时有可能会引入新的错误。人们不仅需要注意不正确的修改,而且还要注意看起来是正确的修改可能会带来的副作用,即引进新的错误。因此在修改了错误之后,必须进行回归测试,以确认是否引进了新的错误。
修改错误的过程将迫使人们暂时回到程序设计阶段。修改错误也是程序设计的一种形式。一般说来,在程序设计阶段所使用的任何方法都可以应用到错误修正的过程中来。
修改源代码程序,不要改变目标代码。
7. 测试中的可靠性分析
在软件开发的过程中,利用测试的统计数据,估算软件的可靠性,以控制软件的质量是至关重要的。
7.1推测错误的产生频度
估算错误产生频度的一种方法是估算平均失效等待时间MTTF(Mean Time To Failure)。MTTF估算公式(Shooman模型)是
其中,K 是一个经验常数,美国一些统计数字表明,K的典型值是200;
ET 是测试之前程序中原有的故障总数;
IT 是程序长度(机器指令条数或简单汇编语句条数);
t是测试(包括排错)的时间;
EC (t) 是在0~t期间内检出并排除的故障总数。
公式的基本假定是:
单位元(程序)长度中的故障数ET∕IT近似为常数,它不因测试与排错而改变。 统计数字表明,通常ET∕IT 值的变化范围在0.5×10-2~2×10-2之间;
故障检出率正比于程序中残留故障数,而MTTF与程序中残留故障数成正比;
故障不可能完全检出,但一经检出立即得到改正。
下面对此问题做一分析:
设EC (τ) 是0~τ时间内检出并排除的故障总数,τ是测试时间(月),则在同一段时间0~τ内的单条指令累积规范化排除故障数曲线εc (τ) 为:
εc (τ) = EC (τ)∕IT
这条曲线在开始呈递增趋势,然后逐渐和缓,最后趋近于一水平的渐近线ET∕IT。利用公式的基本假定:故障检出率(排错率)正比于程序中残留故障数及残留故障数必须大于零。
原文转自:http://www.uml.org.cn/Test/201511262.asp