完整的測試用例生命周期過程,它通常有測試條件標識、測試用例設計、測試用例實現、測試用例的執行,以及測試用例管理等幾個階段組成。由于不同的公司的質量方針和測試策略的不同,采用的測試用例過程可能會有所不同,或者側重點不同。下圖是測試用例生命周期的瀑布結構。
圖1 測試用例生命周期
測試用例通常是針對被測系統的功能模塊來進行設計開發的。每個測試用例的設計都會涉及這五個過程。而且,測試用例的這五個階段是有時間順序要求的,例如:在設計測試用例之前,需要首先標識測試條件;在實現測試用例以前,需要設計測試用例。測試用例過程既可以是正式化的,比如對每個階段的輸出進行文檔化,也可以是非正式化的。具體輸出文檔的詳細程度,可以根據組織和項目的實際情況而定。
1 測試條件標識
測試用例過程的第一步是確定測試什么(測試條件),并且對測試條件進行優先級的劃分。測試條件指的是可以通過測試進行驗證的條目或者事件。針對測試系統,會有很多不同的測試條件。根據不同的測試條件,可以進行不同的測試類型分類,例如:功能測試、性能測試、可用性測試等。
在測試條件標識過程中,可以采用不同的測試技術,嚴格而系統的來幫助測試人員獲取測試條件,例如:黑盒測試中的等價類劃分、邊界值分析、因果圖分析等,以及白盒測試中的語句覆蓋、分支覆蓋、條件覆蓋等。
標識測試條件,就是識別需要測試的條目和事件??梢酝ㄟ^不同的方式來對它們進行描述,比如通過簡單的句子描述、通過表格的方式或者通過控制流圖的方式等描述。測試條件識別活動最好和通用的V模型左邊的開發活動同時進行。
2 測試用例設計
測試用例設計確定了如何來測試已經識別的測試條件。測試用例指的是針對某個測試目標,而進行的一系列測試步驟。測試用例設計會產生一系列包含特定輸入數據、預期結果和其它相關信息的測試用例。
測試設計的主要挑戰是確定測試預期結果。為了確定測試預期結果,測試人員不僅需要關注測試輸出,同時也需要注意測試數據和測試環境的后置條件。
假如測試依據可以清楚的定義,測試設計理論上將是比較簡單的。但是,測試依據通常情況都是模糊不清的,至少描述是缺少覆蓋率的。另外,即使清楚的描述了測試依據,測試輸入和測試輸出的復雜相互關系也會使得定義測試預期結果非常困難。假如測試用例沒有測試的預期結果,則測試用例對于測試結果的對錯判斷是毫無意義的,也無法提供有效的缺陷報告和增加客戶對系統的使用信心。