1、Bug的類型:
Fault:靜態存在於軟件中的缺陷,如code寫錯了。
Error:軟件運行時,運行到fault觸發產生錯誤的中間狀態。
Failure:Error傳不到軟件外部,使得用戶或測試人員觀測到失效的行爲。
2、Pie模型的三個必要條件:
(1)Execution/Reachability:執行必須通過錯誤的代碼
(2)Infection:在執行錯誤代碼時必須觸發一個錯誤的中間狀態
(3)Propagation:錯誤的中間狀態必須傳播到最後輸出,使得觀測到的輸出結果和預期結果不一致,即失效。
3、總結:
【tips】產生fault的程序,可能在測試時不會觸發錯誤的中間狀態;同理,觸發錯誤的中間狀態可能不會使測試人員觀察到失效的行爲。
【prob】有沒有一個fault,任何測試都不會將其測試出來?這樣還能稱之爲fault嗎?
【ans】有這樣的fault。