測試用例目前沒有經典的定義,比較通常的說法是:指對一項特定的軟件產品進行測試任務的描述,體現測試方案、方法、技術和策略。內容包括測試目標、測試環境、輸入數據、測試步驟、預期結果、測試腳本等,并形成文檔。隨著中國軟件業的日益壯大和逐步走向成熟,軟件測試也在不斷發展。其中,測試用例的設計和編制是軟件測試活動中最重要的,它是測試工作的指導,是軟件測試必須遵守的準則,更是軟件測試質量穩定的根本保障。
1、測試用例設計原則
設計測試用例時,應遵循以下原則:
1)基于測試需求的原則。應按照測試類別的不同要求設計測試用例。例如,單元測試依據詳細設計說明,集成測試依據概要設計說明,配置項測試依據軟件需求規格說明,系統測試依據用戶需求(系統/子系統設計說明、軟件開發計劃等)。
2)基于測試方法的原則。應明確所采用的測試用例設計方法,為達到不同的測試充分性要求,應采用相應的測試方法,如等價類劃分、邊界值分析、猜錯法、因果圖等。
3) 兼顧測試充分性和效率的原則。測試用例集應兼顧測試的充分性和測試的效率;每個測試用例的內容也應完整,具有可操作性。
4)測試執行的可再現性原則。應保證測試用例執行的可再現性。
2、測試用例要素
每個測試用例應包括以下要素:
1)名稱和標識。每個測試用例應有唯一的名稱和標識符。
2)測試追蹤。說明測試所依據的內容來源,如系統測試依據的是用戶需求,配置項測試依據的是軟件需求,集成測試和單元測試依據的是軟件設計。
3)用例說明。簡要描述測試的對象、目的和所采用的測試方法。
4)測試的初始化要求。應考慮下述初始化要求:
● 硬件配置。被測系統的硬件配置情況,包括硬件條件或電氣狀態。
● 軟件配置。被測系統的軟件配置情況,包括測試的初始條件。
● 測試配置。測試系統的配置情況,如用于測試的模擬系統和測試工具等的配置情況。
● 參數設置。測試開始前的設置,如標志、第一斷點、指針、控制參數和初始化數據等的設置。
●其他對于測試用例的特殊說明。
5)測試的輸入。在測試用例執行中發送給被測對象的所有測試命令、數據和信號等。對于每個測試用例應提供如下內容:
● 每個測試輸入的具體內容(如確定的數值、狀態或信號等)及其性質(如有效值、無效值、邊界值等)。
● 測試輸入的來源(例如,測試程序產生、磁盤文件、通過網絡接受、人工鍵盤輸入等),以及選擇輸入所使用的方法(例如,等價類劃分、邊界值分析、差錯推測、因果圖、功能圖等)。
● 測試輸入是真實的還是模擬的。
● 測試輸入的時間順序或事件順序。
6)期望的測試結果。說明測試用例執行中由被測軟件所產生期望的測試結果,即經過驗證認為正確的結果。必要時,應提供中間的期望結果。期望測試結果應該有具體內容,如確定的數值、狀態或信號等,不應是不確切的概念或籠統的描述。
7)評價測試結果的準則。判斷測試用例執行中產生的中間和最后結果是否正確的準則。對于每個測試結果,應根據不同情況提供如下信息:
● 實際測試結果所需的精度。
● 實際測試結果與期望結果之間的差異允許的上限、下限。
● 時間的最大和最小間隔,或事件數目的最大和最小值。
● 實際測試結果不確定時,再測試的條件。
● 與產生測試結果有關的出錯處理。
● 上面沒有提及的其他準則。
8)操作過程。實施測試用例的執行步驟。把測試的操作過程定義為一系列按照執行順序排列的相對獨立的步驟,對于每個操作應提供:
● 每一步所需的測試操作動作、測試程序的輸入、設備操作等。
● 每一步期望的測試結果。
● 每一步的評價準則。
● 程序終止伴隨的動作或差錯指示。
● 獲取和分析實際測試結果的過程。
9)前提和約束。在測試用例說明中施加的所有前提條件和約束條件,如果有特別限制、參數偏差或異常處理,應該標識出來,并要說明它們對測試用例的影響。
10)測試終止條件。說明測試正常終止和異常終止的條件。
3、測試用例的設計步驟
設計測試用例的時候,需要有清晰的測試思路,對要測試什么,按照什么順序測試,覆蓋哪些需求做到心中有數。測試用例編寫者不僅要掌握軟件測試的技術和流程,而且要對被測軟件的設計、功能規格說明、用戶試用場景以及程序/模塊的結構都有比較透徹的理解。測試用例設計一般包括以下幾個步驟:
1)測試需求分析從軟件需求文檔中,找出待測試軟件/模塊的需求,通過自己的分析、理解,整理成為測試需求,清楚被測試對象具有哪些功能。測試需求的特點是:包含軟件需求,具有可測試性。
測試需求應該在軟件需求基礎上進行歸納、分類或細分,方便測試用例設計。測試用例中的測試集與測試需求的關系是多對一的關系,即一個或多個測試用例集對應一個測試需求。
2)業務流程分析軟件測試,不單純是基于功能的黑盒測試,還需要對軟件的內部處理邏輯進行測試。為了不遺漏測試點,需要清楚地了解軟件產品的業務流程。建議在做復雜的測試用例設計前,先畫出軟件的業務流程。如果設計文檔中已經有業務流程設計,可以從測試角度對現有流程進行補充。如果無法從設計中得到業務流程,測試工程師應通過閱讀設計文檔,與開發人員交流,最終畫出業務流程圖。業務流程圖可以幫助理解軟件的處理邏輯和數據流向,從而指導測試用例的設計。
從業務流程上,應得到以下信息:主流程是什么,條件備選流程是什么,數據流向是什么,以及關鍵的判斷條件是什么。
3)測試用例設計完成了測試需求分析和軟件流程分析后,開始著手設計測試用例。測試用例設計的類型包括功能測試、邊界測試、異常測試、性能測試、壓力測試等。在用例設計中,除了功能測試用例外,應盡量考慮邊界、異常、性能的情況,以便發現更多的隱藏問題。
原文轉自:http://www.anti-gravitydesign.com