天天看點

#yyds幹貨盤點# 軟體測試的定義

1973年,Bill Hetzel給出了軟體測試的第一個定義:“軟體測試就是為了程式能夠按預期設想運作而建立足夠的信心”。這個定義強調的是證明程式按預期運作,當軟體測試這種技術手段發現程式能夠如此時,建立信心的目的也就達到了,當然在測試發現程式不能按預期運作時,就意味着程式有錯誤,需要排除發現的錯誤再重新測試。這個定義後來被許多人認為是在為軟體“證真”,意思是當測試通過時,“證明”了軟體是“對的”。

上述定義受到一些人的質疑,這些人認為,

測試本身有局限性,測試通過并不能證明軟體是對的,而且測試的目的不應該是去證明軟體正确。這種觀點的代表人物Glenford J.

Myers于1979年給出了軟體測試的一個新定義:“測試是為了發現錯誤而執行一個程式或者系統的過程”。這個定義強調測試目的是發現錯誤,是以後來被一些人稱為是對軟體“證僞”。這種觀點的支援者甚至認為不能發現軟體錯誤的測試不是“好的”測試,是以軟體測試應當竭盡所能去發現盡可能多的錯誤。上面兩種定義看似觀點相反,實則是從不同角度看待軟體測試。他們都希望軟體能夠正常按預期執行,而要做到這點一定是軟體中的錯誤越少越好,隻是那個年代關注的焦點是軟體中的錯誤,沒有現代的軟體品質意識。實際上,這兩個定義至今仍然有一定價值。

繼續閱讀