軟件測試的目標:失敗等于成功[3] 軟件測試
所有的使用者都會犯錯誤
在測試一個新的軟件應用程序的時候,看到不好的測試結果的人肯定要反對你的測試場景!皼]有人會那樣做!”。不要相信沒有這個。一些用戶會那樣做,或者做一些更糟的事情,并且他們不是有意那樣。你的工作就是在產品運送到客戶手里以前,考慮用戶會犯的錯誤中最壞的情況,并且確認你的產品仍然能夠安然無恙,沒有崩潰或者丟失數據。再說一遍,你要尋求的是那些能夠發現危險bug的測試故障。
讓我們再看一下我們之前討論的簡單程序,那個需要6,000次測試才能包括所有可能的程序。如果你要設計只在合法的輸入,環境,操作等情況下的測試,那么你的測試只涵蓋了對你系統運行來說最好的場景。但是,如果有些地方出錯會怎樣?如果用戶手指滑了一下,或者錯誤的配置了什么,或者刪除了非常重要的信息,你的軟件會怎樣表現?或者當一個系統/服務器出現掛起,或者出現達到一些資源的上限(比如內存,磁盤空間,數據庫記錄的ID等),會發生什么?當一些應該被標識為損壞的數據進入或者通過系統會怎么樣?如果操作中斷,系統處于含糊不清的狀態?或者如果太多的人在同樣的時間做同樣的事情?潛在錯誤的列表是無限的,并且如果你只想確認“它可以工作”的話,你可能就會忽略掉這些場景中的大部分。
結論
我希望這篇文章可以讓你確信軟件測試的真正目標是尋找bug。即使是在交付時間表很緊的情況下,采取一個步驟來想一下從哪里開始著手,你的測試將會是最有效率的。但即使在時間非常充足的情況下,你也不可能測試出每一個bug,所以你必須將你的測試劃分優先級,劃分的根據是基于產品目前的狀態(新的,修改的或者只是純漏洞)和對客戶的可能影響而進行的最誠實的評估。避免采用你知道軟件可以處理的測試數據和操作;你的任務是在測試中擴大軟件的邊界。在你設計自動化測試時,也要避免“踩滅”失敗條件的誤區。你的任務不是創造大量的總是可以干凈的成功運行的測試。你需要去尋找和理解故障條件。不要浪費時間去想你的軟件產品中是否存在bug。它肯定有bug,并且你不可能全部找出它們。你的組織和你的顧客指望你找出那些最有影響的bug。你必須要做的是,你要從消極的角度考慮這些問題。
文章來源于領測軟件測試網 http://www.k11sc111.com/