測試用例的粒度
測試用例可以寫得很簡單,也可以寫得很復雜。最簡單的測試用例是測試的綱要,僅僅指出要測試的內容,如探索性測試(Exploratory Testing)中的測試設計,僅會指出需要測試產品的哪些要素、需要達到的質量目標、需要使用的測試方法等。而最復雜的測試用例就像飛機維修人員使用的工作指令卡一樣,會指定輸入的每項數據,期待的結果及檢驗的方法,具體到界面元素的操作步驟,指定測試的方法和工具等等。
測試用例寫得過于復雜或過于詳細,會帶來兩個問題:一個是效率問題,一個是維護成本問題。另外,測試用例設計得過于詳細,留給測試執行人員的思考空間就比較少,容易限制測試人員的思維。
測試用例寫得過于簡單,則可能失去了測試用例的意義。過于簡單的測試用例設計其實并沒有進行“設計”,只是把需要測試的功能模塊記錄下來而已,它的作用僅僅是在測試過程中作為一個簡單的測試計劃,提醒測試人員測試的主要功能包括哪些而已。測試用例的設計的本質應該是在設計的過程中理解需求,檢驗需求,并把對軟件系統的測試方法的思路記錄下來,以便指導將來的測試。
大多數測試團隊編寫的測試用例的粒度介于兩者之間。而如何把握好粒度是測試用例設計的關鍵,也將影響測試用例設計的效率和效果。我們應該根據項目的實際情況、測試資源情況來決定設計出怎樣粒度的測試用例。
軟件是開發人員需要去努力實現敏捷化的對象,而測試用例則是測試人員需要去努力實現敏捷化的對象。要想在測試用例的設計方面應用“能工作的軟件比全面的文檔更有價值”這一敏捷原則,則關鍵是考慮怎樣使設計出來的測試用例是能有效工作的。
基于需求的測試用例設計
基于需求的用例場景來設計測試用例是最直接有效的方法,因為它直接覆蓋了需求,而需求是軟件的根本,驗證對需求的覆蓋是軟件測試的根本目的。
要把測試用例當成“活”的文檔(Effective Software Testing : 50 Specific Ways to Improve Your Testing – Elfriede Dustin),因為需求是“活”的、善變的。因此在設計測試用例方面應該把敏捷的“及時響應變更比遵循計劃更有價值”這一原則。
不要認為測試用例的設計是一個階段,測試用例的設計也需要迭代,在軟件開發的不同的階段都要回來重新審視和完善測試用例。
文章來源于領測軟件測試網 http://www.kjueaiud.com/