測試用例的設計是測試設計的重要內容,關于測試用例的設計方法,當前不少出版的測試書和發表的測試
文章,不少存在著表述錯誤,主要是把測試用例中的輸入數據的設計方法與測試用例的設計方法混為一談,對測試初學者和測試用例設計人員產生誤導。
這種錯誤的主要表現舉例如下:
測試用例的設計方法包括:
◆ 等價類劃分法
◆ 邊界值法
◆ 功能圖與判定表法
◆ 錯誤推測法
◆ 用戶場景法
◆ ......
其實,測試用例中輸入數據的設計方法只是測試用例設計方法的一個子集,上面列出的集中方法都是確定黑盒測試用例的輸入測試數據的一般方法,而不是測試用例的設計方法。
除了確定輸入數據之外,測試用例的設計還包括如何確定測試用例的設計策略,如何組織設計用例,如何從測試需求等文檔創建完整的測試用例。
對測試執行人員來說,測試用例的表示內容包括以下幾個方面:
◆ 測試用例的測試目標
◆ 測試用例的被測功能點描述
◆ 測試用例的測試運行環境
◆ 測試用例的執行方法(包括測試步驟,輸入測試數據或測試腳本)
◆ 測試期望的結果
◆ 執行測試的實際結果
◆ 其他輔助說明
乍看起來有點像測試策劃(計劃)考慮的因素。但是測試用例的設計和測試計劃的設計關注點不同,測試計劃考慮的宏觀和全面些,而測試用例考慮的更窄。
設計測試用例首先要考慮以下幾個問題:
◆ 為什么要設計測試用例?
◆ 誰來寫測試用例?這些寫測試用例的人的測試技術和對被測試產品了得有多深入?
◆ 測試用例寫給誰看,多少人將試用測試用到?
◆ 分配給寫測試用例的時間是多長?要安排幾個人來寫?
◆ 怎么在測試用例的成本、質量和效率方面達到平衡?
只有回答了這些問題,才能確定測試用例的具體寫作方法和表現形式。一般而言,公司里分配寫作測試用例的時間并不長,而且提供的文檔也不全面,所以寫測試 用例要符合測試部門的當前現狀和項目的測試特點,綜合考慮,所以看起來有點像測試計劃的某些內容,但是對問題的細化程度不一樣。
測試用例的設計是一項復雜的測試工作,測試用例的設計方法需要考慮測試的目標,被測試軟件的特性,測試者人力資源的技術和能力,測試組織形式,測試進度、測試成本等多個方面。
在設計測試用例時,可以綜合運用以下方法:
◆ 根據被測軟件的功能和特性點設計測試用例:
● 根據被測試功能點設計測試用例
● 根據軟件性能指標設計測試用例
● 根據軟件的兼容性要求設計測試用例
● 根據軟件的國際化用戶要求設計國際化測試用例
● 根據...設計...用例
◆ 根據軟件的組成元素設計測試用例
● 設計軟件設計用例
● 設計聯機幫助和文檔手冊的設計用例
● 設計軟件的模版等數據文件的測試用例
◆ 根據軟件的開發階段(里程碑)設計測試用例
● 單元測試設計用例
● 集成測試設計用例
● 系統測試設計用例
● 驗收測試設計用例
◆ 根據...設計測試用例
● ......
具體到設計每個測試用例而言,可以考慮如下:
◆ 根據被測的最小目標,確定測試用例的測試目標
◆ 根據用戶使用環境確定測試環境
◆ 根據以下因素確定測試用例的步驟
● 用戶使用軟件的步驟或者特定場景,確定測試執行步驟地具體內容
● 執行者對產品的熟悉程度確定步驟的詳細或粗略程度
● 被測特性的復雜性也決定步驟的詳細或粗略程度
● 測試用例的執行方法(手工測試或自動化測試)確定步驟地內容表示
● 自動測試用例要編寫和調試測試腳本,手工測試給出執行步驟
● ......
◆ 根據設計規格說明書確定期望的測試用例執行結果
◆ ......
確定測試用例的輸入數據確實對于測試用例非常重要,它決定著測試用例的執行效果和效率,但是確定輸入測試數據只是設計測試用例的一個步驟,而不是全部。因此,不能把測試用例的設計方法等同于測試用例數據的方法。