基於需求的測試用例設計方法

1.引言

  測試用例是爲某個特殊目標而編制的一組測試輸入、執行條件以及預期結果,以便測試某個程序路徑或覈實是否滿足某個特定需求

  測試用例目前沒有經典的定義,比較通常的說法是指對一項特定的軟件產品進行測試任務的描述,體現測試方案、方法、技術和策略內容包括測試目標、測試環境、輸入數據、測試步驟、預期結果、測試腳本等,並形成文檔

  由於對軟件測試用例的作用和設計方法的理解不同,測試人員對軟件測試用例存在不少片面的認識,具體表現在以下三個方面:

  (1)測試輸入數據設計方法等同於測試用例設計方法

  一些測試書籍和文章經常這樣表述:測試用例的設計方法包括:等價類、邊界值、因果圖、錯誤推測法、場景設計法等這種表述是不全面的,這些方法只是軟件功能測試用例設計中如何確定測試輸入數據的方法,而不是測試用例設計的全部內容測試用例設計是確定測試的輸人數據過程,包括如何根據測試需求、設計規格說明等文檔確定測試用例的設計策略、設計用例的表示方法和組織管理形式等內容

  (2)測試用例設計得越詳細越好

  儘可能設計足夠多的設計用例,制定詳細的用例執行步驟,以達到“任何一個人都可以根據測試用例執行測試”,這些都不是測試用例設計的本意編寫測試用例的根本目的是高效的發現軟件產品中可能存在的缺陷,因此設計測試用例時應把握用最少的測試用例儘可能的覆蓋測試需求,從而達到“少花時間多辦事”的效果

  (3)測試用例設計是一成不變的

  在軟件生命週期過程中,存在用戶對軟件的功能的變更,設計規格的更新,軟件代碼的細化等情況因此,設計軟件測試用例與軟件開發設計應當並行開展,並隨着軟件設計的變化進行相應調整,以保證設計的用例滿足測試需求

  軟件的類別、用戶需求和測試目的不同,其測試用例也是不同的本文主要從用戶對軟件的需求爲着眼點,結合系統測試用例的設計,說明軟件需求對軟件測試用例設計的影響,使得測試用例更趨於針對軟件產品的功能、任務規則和任務處理所設計的測試方案

  2.基於需求的測試用例

  2.1 軟件測試需求分析

  軟件測試的需求有三個層次,即任務需求、用戶需求、功能需求,測試需求分析和測試用例設計參照的是軟件需求規格說明書

  在軟件需求規格說明書中的功能需求描述了軟件系統所應具有的外部行爲對一個大型系統來說,軟件功能需求可能只是系統需求的一個子集作爲功能需求的補充,軟件需求規格說明還應包括隱含需求,它描述了系統展現給用戶的行爲和執行的操作等包括產品必須遵從的標準、規範和合約;外部界面的具體細節;性能要求;設計或實現的約束條件及質量屬性

  測試需求的主要來源是系統需求規格說明書,但有些需求是無法從需求文檔中獲得,可藉助概要設計文檔或者詳細設計文檔中獲得,或直接從最終的軟件產品上獲得測試人員依據這些信息編寫測試需求,爲了提高需求分析的覆蓋率,用例設計人員可通過分析軟件的任務規則和工程測試經驗,提出軟件產品隱含的需求,以保證最終的測試需求滿足測試要求

  2.2 測試用例設計

  測試用例的設計也就是測試需求細化的過程,可以說,有多細的測試需求,就有多細的測試用例在測試用例的具體設計中,通常採用等價類劃分法劃分有效和無效的數據集,採用邊界值法找到被測軟件的輸入數據的邊界值數據,在基於需求的測試用例設計中,此兩種方法既是基礎又是補充,當測試數據量比較大時,通常採用自動化測試工具或正交試驗法測試用例的內容項可依據具體情況而定,通常包含測試用例編號、測試操作步驟和預期結果等在軟件系統測試過程中,軟件需求決定了測試用例設計,而測試用例設計的效果則直接決定了整個軟件測試項目的成敗,因此測試需求分析和測試用例設計是密不可分的,前者是後者的依據,後者是前者的體現,做好需求到測試用例的轉化,才能保證整個測試項目的效果

  2.3 測試用例運行

  在軟件系統測試過程中,軟件測試需求決定了測試用例設計,而測試用例設計關係到測試用例的運行,應該說,設計出了什麼樣的測試用例,就需要針對性的選擇測試用例運行方式測試用例的運行一般採用測試者手工運行,編寫驅動程序運行、藉助自動化工具(如)等方式運行測試用例設計的優劣直接關係着測試用例運行的工作,編寫腳本自動運行程序是解決此問題的不錯方式現階段,編寫腳本自動運行程序來驅動測試用例是用例運行的趨勢,這不僅可以節約第一次測試的工作量,而且還可以減少後續的迴歸測試的工作量QTP

  3.測試用例設計實例

  本文在這裏將舉例說明基於需求的測試用例設計過程,被測軟件如圖1所示,並比較不同的需求對測試用例設計的影響

  3.1 軟件需求

  軟件的基本功能是比較簡單的,即定義梁拱的基本參數並保存需選擇長度單位(米或毫米);需選擇梁拱形式(折線、拋物線和圓弧);當梁拱形式爲折線時,需輸入長L和高H的值,當梁拱形式爲拋物線或圓弧時,需輸入高H的值;保存所選擇或填寫的梁拱的參數

  3.2 軟件測試需求分析

  從被測軟件功能可以看出,被洲軟件所實現的功能是比較簡單的,只是選擇或輸入參數並保存數據根據上述功能的描述,可以進行軟件的需求分析,這裏的需求分析主要是被測軟件的功能需求分析

  另外,被測軟件的功能描述實際上已經進行了一定的需求分析的

  爲了更好的發現軟件功能需求分析對測試用例的影響,下面針對被測軟件給出兩組不同的軟件功能需求發現軟什功能需求分析對測試甩

  (1)軟件功能需求一

  被洲軟件:選擇長度單位,米或皁水不可同時選擇:選擇梁拱形式,折線、拋物線或圓弧不可同時選擇:當梁拱形式爲折線時,輸入長L和高H的值,當梁拱形式爲拋物線或圓弧時,輸入高H的值:保存所選擇或填寫的梁拱的數據

  (2)軟件功能需求二

  被測軟件:選擇長度單位,水或毫米不可同時選擇:選擇梁拱形式,折線、拋物線或圓弧不可同時選擇:當梁拱肜式爲折線時,輸入框L和輸入框H顯示,輸入長L和高H的值,當梁拱形式爲拋物線或圓弧時,輸E顯示,輸入高H的值:保存所選擇或填與的梁拱的數的數據

  軟件功能需求一和軟件功能需求二的區別僅僅在於輸入框L和輸入框H顯示或是不顯示,對大多數人會忽略這一點,而這一點又一定程度上影響着測試用例的設計,並可以看出軟件需求對測試用例的影響

  3.3 測試用例設計

  依據軟件功能的上述需求,藉助Bender—R8T測試用例設計軟件,設計出基於需求的測試用例設計框圖,從而得到軟件功能的測試用例針對軟件功能需求一和軟件功能需求二,所得到的測試用例設計框圖一和測試用例設計框圖二如圖2、圖3所示

  根據測試用例設計框圖一和測試用例設計框圖二得到兩組測試用例第一組由3個測試用例組成,如表1所示;第二組由6個測試用例組成,如表2所示

  3.4 結果對比分析

  從上面的兩組測試用例可以明顯看出,測試用例的數目是不同的,因此,所測試的結果也是不同的,第一組測試用例顯然沒有第二組測試用例的效果好,有些被測軟件功能是沒有被測試到的,這就源於被測軟件的需求分析的不同,有了好的需求分析,就可以設計出功能覆蓋率高的測試用例,達到軟件測試的目的

   4.結束語

  目前,軟件測試用例設計是軟件測試的重要環節,基於需求的軟件測試用例設計可以一定程度上解決軟件功能流程的測試,可以高效的設計測試用例,但是,此種方法還不能完全設計出全面的測試用例,尤其是輸入數據多而繁瑣的情況下,這就需要結合此種方法,應用自動化測試工具完成軟件的測試

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章