測試用例設計方法的綜合運用

發表于:2007-04-22來源:作者:點擊數: 標簽:測試用例設計方法試用綜合
測試用例 設計方法的綜合運用 測 試用例是按一定的順序執行的與測試目標相關的測試活動的描述,是確定“怎樣”測試。測試用例被看作是有效發現軟件 缺陷 的最小測試執行單元,也被視為軟件的測試規格說明書。在測試工作中,測試用例的設計是非常重要的,是測

測試用例設計方法的綜合運用

用例是按一定的順序執行的與測試目標相關的測試活動的描述,是確定“怎樣”測試。測試用例被看作是有效發現軟件缺陷的最小測試執行單元,也被視為軟件的測試規格說明書。在測試工作中,測試用例的設計是非常重要的,是測試執行的正確性、有效性的基礎。如何有效地設計測試用例,一直是測試人員所關注的問題;設計好測試用例,也是保證測試工作的最關鍵的因素之一。

MILY: 宋體">

試用例是按一定的順序執行的與測試目標相關的測試活動的描述,是確定“怎樣”測試。測試用例被看作是有效發現軟件缺陷

的最小測試執行單元,也被視為軟件的測試規格說明書。在測試工作中,測試用例的設計是非常重要的,是測試執行的正確性、有效性的基礎。如何有效地設計測試用例,一直是測試人員所關注的問題;設計好測試用例,也是保證測試工作的最關鍵的因素之一。

設計測試用例,也分為白盒設計方法和黑盒設計方法。白盒設計方法又分為邏輯覆蓋法和基本路徑覆蓋法,或者分為語句覆蓋、判定覆蓋、條件覆蓋方法,而黑盒設計方法分為等價類劃分法、邊界值劃分法、錯誤推測法、因果圖法等。在實際測試用例設計過程中,不僅根據需要、場合單獨使用這些方法,常常綜合運用多個方法,使測試用例的設計更為有效。

 

1判定-條件覆蓋方法

判定-條件覆蓋方法就是將兩種白盒設計方法“判定覆蓋”和“條件覆蓋結合起來的一種設計方法,它所設計的測試用例是判定覆蓋的設計的測試用例和條件覆蓋設計的設計的測試用例的交集,即設計足夠精巧的測試用例,使得判斷條件中的所有條件可能取值至少執行一次,同時,所有判斷的可能結果也至少執行一次。

舉個例子,源程序是:

Dim a,b as Integer

Dim c as Double

If a > 0 and b > 0 Then

c = c/ a

End If

If a>1 or c>1 Then

c=c+1

End If

c=b+c

則用兩個測試用例(如表1)來覆蓋了兩個判定“P1=a > 0 and b > 0)”和“P2 =a>1 or c>1)”和四個條件“C1= a > 0”、“C2= b > 0”、“C3= a>1”和“C4= c>1”。

1 判定-條件覆蓋的測試用例

測試用例

具體取值條件

取值條件

判定條件

輸入:a=2,b=1,c=6

輸出:a=2,b=1,c=5

a>0,b>0,a>1,c>1

C1, C2, C3, C4 = True

P1, P2= True

輸入:a=-1,b=-2,c=-3

輸出:a=-1,b=-2,c=-5

a<=0,b<=0,a<=1,c<=1

C1, C2, C3, C4 = False

P1, P2= False

 

2.條件組合覆蓋

條件組合覆蓋的基本思想是:設計足夠的測試用例,使得判斷中每個條件的所有可能至少出現一次,并且每個判斷本身的判定結果也至少出現一次,條件覆蓋是簡單地要求每個條件出現“真”與“假”兩種結果,而條件組合覆蓋是讓這些結果的所有可能組合都至少出現一次。

按照條件組合覆蓋的基本思想,針對8種組合條件,來設計所有能覆蓋這些組合的設計用例,如表2所示。即使我們用四個測試用例覆蓋了所有8種組合條件,但還不能保證所有的路徑被執行,如這個例子少了一種路徑,即P1= True, P2= false。

  2 條件組合覆蓋的測試用例

測試用例

覆蓋條件

覆蓋組合

輸入:a=2,b=1,c=6

輸出:a=2,b=1,c=5

C1=True, C2=True,

C3=True,C4=True

P1=True, P2=True

輸入:a=2,b=-1,c=-2

輸出:a=2,b=-1,c=-3

C1=True, C2=false,

C3=True,C4=false

P1=false, P2=True

輸入:a=-1,b=2,c=3

輸出:a=-1,b=2,c=6

C1=false, C2=True,

C3=false,C4=True

P1=false, P2=True

輸入:a=-1,b=-2,c=-3

輸出:a=-1,b=-2,c=-5

C1=false, C2=false,

C3=false,C4=false

P1=false, P2=false

 

3. 等價類劃分法和邊界值分析法的組合

數據測試是功能測試的主要內容,或者說功能測試最主要手段之一就是借助數據的輸入/輸出來判斷功能能否正常運行。所以在測試用例的黑盒設計方法中,最常用的方法是等價類劃分法、邊界值分析法。

等價類劃分方法的基本思想是設想用一組有限的數據去代表近似無限的數據,就是基于對輸入或輸出數據的評估將數據劃分為兩個或更多子集(如有效的和無效的數據集),從每個等價類中選擇一定的代表值進行測試,來代表整個數據集的輸入/輸出。

邊界值分析法就是在某個變量范圍的邊界上,驗證獨立的輸入/輸出是否正確的測試方法。因為實踐證明,程序往往在輸入/輸出數據邊界更容易發生錯誤,所以檢查邊界情況的測試用例是比較高效的,可以更快地查出錯誤。

但是,僅僅測試邊界數據是不夠的,正常區域內的數據也是需要測試的,而且對于那些非法的、無效的數據也需要測試,以測試系統的容錯性。所以,必須采用等價類劃分方法來對邊界值分析法的補充。從另一個方面看,要劃分數據的等價類,首先是要確定數據邊界,也就是找出數據等價類的邊界。所以,在實際測試用例設計工作中,將邊界值分析法和等價類劃分方法結合起來,先用邊界值分析法確定數據邊界,再用等價類劃分方法得到等價的數據類,從而有效地設計出精而少的測試用例。

讓我們看一個簡單的例子。假如一個輸入數據是一個有限范圍的整數,如學生成績管理系統中的學生分數的輸入(不計小數點)。這時,我們可以確定輸入數據的最小值Nmin和最大值NMax,則有效的數據范圍是NminNNMax ,學生分數的輸入范圍是0N100,這個范圍就是有效數據區域。除此之外,就是無效數據區域,即N <NminN>NMax,如N <0N>100。這時測試的數據從近乎無限的數據簡化為5個輸入數據,就是:


  • 邊界值兩個:Nmin和NMax,如0和100
  • 有效數據的等價輸入值 Ni, 如75
  • 無效數據的等價輸入值兩個:NLm1和NLm2, 如 -999和 999
為了得到更好的覆蓋率,可以在最靠近邊界取一些值,共四個,即:

 Nmin +1,Nmin -1,NMax +1,NMax -1,如 -1,1,99,101

所以一個有效的測試數據集合是{-1,0,1,99,100,101};更完整的測試數據集合是{-999,-1,0,1,75,99,100,101,999}。


4.因果圖法和組合分析法

因果圖法和組合分析可以看作測試用例黑盒設計方法的綜合方法。因果圖法就是一種利用圖解法分析輸入的各種組合情況,生成判定表,從而設計測試用例的方法,它適合于檢查程序輸入條件的各種情況的組合。我們知道,即使各種單個輸入條件可能出錯的情況已經被排除了,但多個輸入情況組合起來還是可能會出錯。檢驗各種輸入條件的組合并非一件很容易的事情,因為即使將所有的輸入條件劃分成等價類,它們之間的組合情況也相當多,因此,必須需要考慮采用一種適合于多種條件的組合,相應能產生多個動作的形式來進行測試用例的設計,這就是因果圖法。

而組合分析是一種基于每對參數組合的測試技術,主要考慮參數之間的影響是主要的錯誤來源和大多數的錯誤起源于簡單的參數組合。

 

5功能圖法


    功能圖法是一種黑盒和白盒混合用例設計方法,在功能圖方法中,要用到邏輯覆蓋和路徑測試的概念和方法,這屬于白盒設計方法;而確定輸入數據序列以及相應的輸出數據,則是黑盒設計方法。

    我們知道,每個程序的功能通常由靜態說明和動態說明組成,動態說明描述了輸入數據的次序或者轉移的次序;靜態說明描述了輸入條件和輸出條件之間的對應關系。對于比較復雜的程序,由于大量的組合情況的存在,如果我們僅僅使用靜態說明來組織測試往往是不夠的,必須還要動態說明來補充。功能圖法就是因此而產生的一種測試用例設計方法。

    功能圖法就是使用功能圖形式化地表示程序地功能說明,并機械地生成功能圖的測試用例。功能圖模型由狀態遷移圖和邏輯功能模型組成。其中,狀態遷移圖用于表示輸入數據序列以及相應的輸出數據,由輸入和當前的狀態決定輸出數據和后續狀態; 邏輯功能模型用于表示再狀態輸入條件和輸出條件之間的對應關系。邏輯功能模型只適合于描述靜態說明,輸出數據僅僅由輸入數據決定。測試用例測試由測試中經過的一系列的狀態以及在每個狀態中必須依靠輸入/輸出數據滿足的一對條件組成。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97