在
定義測試用例的質量標準之前,先要了解設計測試用例的目的。測試用例是測試工作中最重要的元素或測試件(test ware)之一,是測試執行的基礎。測試用例不僅能有效地幫助實施後繼的回歸測試、知識的傳遞和測試的管理等,而且更重要的是能更快、更有效地發現缺陷,確保測試的系統性和全面性,在測試的深度和廣度達到所期望的目標。也就是說,測試用例的質量就是滿足測試目標的程度,體現在 「測試覆蓋率和測試執行效率」兩個方面。所以,測試用例最基本的質量標準就是:
但是,按照這樣的標準,很難在測試執行前或執行過程中評估測試用例的質量,而不得不在執行完這些測試用例之後進行度量,特別是測試覆蓋率。所以,理想的情況要求在測試用例設計過程中,可以按照某種特定的質量標準對測試用例進行複審(review)、實施評估。那麼,這種特定的質量標準是什麼呢?
根據多年的實踐經驗,測試用例的標準不能侷限於乙個層次,因為測試用例設計類似於軟體設計,軟體設計有架構設計(結構設計/概要設計)和詳細設計,所以對於測試用例的質量標準,也應分為兩個層次來考慮:
(1)高層次——滿足某乙個測試目標或測試任務來整體看測試用例,衡量一組測試用例的結構、設計思路和覆蓋率等指標。
(2)低層次——從單個測試用例看,衡量其描述的規範性、可理解性和可維護性等指標。
1.高層次(high-level)標準
高層次標準是從滿足某乙個特定的測試目標出發來進行定義,分析一組測試用例的設計思路、設計方法和策略,包括測試用例的層次、結構等。從高層次看,測試用例設計的關鍵點是:始終從客戶需求的角度(出發)
想,始終圍繞測試的覆蓋率和執行效率不斷思考,最終通過有效的技術方法完成測試用例的設計。
對於一整套的測試用例組(集合),可定義如下的質量標準:
(1) 測試用例的目標清楚,並能滿足軟體質量的各個方面,包括功能測試、效能測試、安全性測試、故障轉移測試、負載測試等。
(2) 設計思路正確、清晰。例如,通過序列圖、狀態圖、工作流程圖、資料流程圖等來描述待測試的功能特性或非功能特性。
(3) 在組織和分類上,測試用例層次清楚、結構合理。測試用例的層次與產品特性的結構/層次相一致,或者與測試的目標/子目標的分類/層次相一致,並具有合理的優先順序或執行順序。
(4) 測試用例覆蓋所有測試點、覆蓋所有已知的使用者使用場景(user scenario),也就是說每個測試點都有相應數量的測試用例來覆蓋,而且將各種使用者使用場景通過矩陣或因果圖等方式列出來,找到相對應的測試用例。
(5) 測試手段的區別對待。在設計測試用例時,就要全面考量測試的手段,哪些方面可以通過工具測試,哪些方面不得不用手工測試,對不同手段的測試用例區別對待。
(6) 有充分的負面測試。作為測試用例,不僅要測試正確的輸入和操作,還要測試各種各樣的例外情況,如邊界條件、不正確的操作、錯誤的資料輸入等。
(7) 沒有重複、冗餘的測試用例,滿足相應的行業標準等。
2.低層次(low-level)標準
低層次標準是考察單個測試用例是否滿足測試的需求,是否能被更有效地執行。測試用例設計的結果就是交付測試用例,使測試用例被執行,所以除了覆蓋率,執行的效率也是測試用例的乙個重要屬性。測試用例越清楚,越容易被理解和執行。執行效率越高就說明測試用例越好,如果測試用例能被機器(computer)執行,當然執行效率得到體現。
對於具體的某個測試用例,不妨可定義如下的質量標準:
(1) 測試用例的出發點是發現缺陷,即單個測試用例在「暴露缺陷」上具有較高的可能性。
(2) 測試用例的單一性。乙個測試用例面向乙個測試點,不要將許多測試點揉在一起。例如,通過乙個測試用例發現1~2個缺陷,而不能發現5~10個缺陷甚至更多的缺陷。
(3) 符合測試用例設計規範或測試用例模板,見下面附表所示。
(4) 描述清楚,包括特定的場合、特定的物件和特定的術語,沒有含糊的概念和一般性的描述。例如,測試用例名稱為「登入功能使用正常」,就是乙個描述不清楚的例子,而這樣的描述「登入功能中使用者名稱大小寫不敏感性驗證」、「登入功能中使用者名稱唯一性驗證」和「使用者帳號被鎖定後再進行登入操作」等就比較好。
(5) 操作步驟的準確性,按照步驟的操作得到唯一的測試結果。
(6) 操作步驟的簡單性。操作步驟不應該太複雜,過於複雜的操作步驟意味著測試用例需要被分解為多個測試用例或者分解為多個環節進行驗證。
(7) 所期望的測試結果是可驗證的
,即能迅速、明確地判斷測試的實際結果是否與所期望的結果相同或相匹配。例如,在測試用例中描述期望結果為「登入成功」,這實際是不可驗證的。要使這個期望結果具有可驗證性,我們就應該這樣描述所期望的結果——「『退出(log out)』按鈕出現」。
(8) 測試環境的正確性、測試資料的充分性。
(9) 前提條件、依賴性被完全識別出來。
這樣,測試用例具有很好的可理解性和可維護性,可以提高測試執行的效率。並能保證不同的人員執行相同的用例能獲得統一的結果。步驟的準確性和期望結果的可驗證性,非常有助於測試執行的自動化實現。也只有實現了測試執行的自動化,測試執行的效率才是最高的,而且測試人員才有更多的時間去思考、去設計更優秀的測試用例,進入良性迴圈,相互促進,不斷地提公升測試的質量和效率。
附表 測試用例模板
欄位名稱
型別
注釋
標誌符整型唯一標識該測試用例的值,自動生成
測試項字元型
測試的物件,可以從軟體配置庫中選擇
測試目標
字元型從固定列表中選擇乙個
測試環境要求
字元型可從列表中選擇,如果沒有,則直接輸入新增內容
前提字元型
事先設定、條件限制,如已登入、某個選項已選上
輸入資料
字元型輸入要求說明、或資料列舉
操作步驟
字元型按
1., 2., …
操作步驟的順序,準確詳細地描述。
期望輸出
字元型所屬模組
整型模組識別符號。
優先順序整型1,
2,3 (
1-優先順序最高)
層次整型0,
1,2,
3 ( 0 – 最高層
)關聯的測試用例
整型上層(父)用例的識別符號。
執行時間
實型分鐘
自動化標識
布林型t,f
關聯的缺陷
列舉型缺陷識別符號列表。
如何定義測試用例的質量標準?
在定義測試用例的質量標準之前,先要了解設計測試用例的目的。測試用例是測試工作中最重要的元素或測試件 test ware 之一,是測試執行的基礎。測試用例不僅能有效地幫助實施後繼的回歸測試 知識的傳遞和測試的管理等,而且更重要的是能更快 更有效地發現缺陷,確保測試的系統性和全面性,在測試的深度和廣度達...
如何定義測試用例的質量標準?
在定義測試用例的質量標準之前,先要了解設計測試用例的目的。測試用例是測試工作中最重要的元素或測試件 test ware 之一,是測試執行的基礎。測試用例不僅能有效地幫助實施後繼的回歸測試 知識的傳遞和測試的管理等,而且更重要的是能更快 更有效地發現缺陷,確保測試的系統性和全面性,在測試的深度和廣度達...
如何定義測試用例的質量標準?
在定義測試用例的質量標準之前,先要了解設計測試用例的目的。測試用例是測試工作中最重要的元素或測試件 test ware 之一,是測試執行的基礎。測試用例不僅能有效地幫助實施後繼的回歸測試 知識的傳遞和測試的管理等,而且更重要的是能更快 更有效地發現缺陷,確保測試的系統性和全面性,在測試的深度和廣度達...