軟件測試的藝術第二章總結
軟件測試的定義
測試是爲發現錯誤而執行程序的過程
軟件測試的心理學
經過測試來增長程序的價值,是指測試提升了程序的可靠性或質量。提升了程序的可靠性,是指找出並最終修改了程序的錯誤。所以不要只是爲了證實程序可以正確運行而去測試程序;相反,
應該一開始就假設程序中隱藏着錯誤(這種假設對於幾乎全部的程序都成立),而後測試程序,發現儘量多的錯誤
若是咱們的目的是證實程序中不存在錯誤,那就會在潛意識中傾向於實現這個目標,也就是說,咱們會傾向於選擇可能較少致使程序失效的測試數據。另外一方面,若是咱們的目標在於證實程序中存在錯誤,咱們設計的測試數據就有可能更多地發現間題
把程序當成病人,要找出病因
軟件測試的原則
- 測試用例中一個必需部分是對預期輸出或結果的定義
- 程序員應當避免測試本身編寫的程序
- 編寫軟件的組織不該當測試本身編寫的軟件
- 應當完全檢查每一個測試的執行結果
- 測試用例的編寫不只應當根據有效和預期的輸入狀況,並且也應當根據無效和未預料到的輸入狀況
- 檢查程序是否「未作其應該作的」僅是測試的一半,測試的另外一半是檢查程序是否「作了其不該該作的」
- 應避免測試用例用後即棄,除非軟件自己就是一個一次性的軟件
- 計劃測試工做時不該默許假定不會發現錯誤
- 程序某部分存在更多錯誤的可能性,與該部分已發現錯誤的數目成正比
- 軟件測試是一項極富創造性、極具智力挑戰性的工做
總結
- 軟件測試是爲發現錯誤而執行程序的過程
- 一個好的測試用例具備較高的發現某個還沒有發現的錯誤的可能性
- 一個成功的測試用例可以發現某個還沒有發現的錯誤
歡迎關注本站公眾號,獲取更多信息