修改錯誤的一個常見失誤是只修改了這個錯誤的征兆或這個錯誤的表現,而沒有修改錯誤的本身。如果提出的修改不能解釋與這個錯誤有關的全部線索,那就表明了只修改了錯誤的一部分。
當心修正一個錯誤的同時有可能會引入新的錯誤。人們不僅需要注意不正確的修改,而且還要注意看起來是正確的修改可能會帶來的副作用,即引進新的錯誤。因此在修改了錯誤之后,必須進行回歸測試,以確認是否引進了新的錯誤。
修改錯誤的過程將迫使人們暫時回到程序設計階段。修改錯誤也是程序設計的一種形式。一般說來,在程序設計階段所使用的任何方法都可以應用到錯誤修正的過程中來。
修改源代碼程序,不要改變目標代碼。
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