軟件測試技術之: 白盒測試和黑盒測試(5)

發表于:2016-06-02來源:C博客作者:好兒郎-志在四方點擊數: 標簽:
輸入條件 有效等價類 無效等價類 第一個字符 首字符是字母 首字符不是字母 如果有任何理由可以認為程序并未等同地處理等價類中的元素,那么應該將這


輸入條件
 有效等價類
 無效等價類
 
第一個字符
 首字符是字母
 首字符不是字母
 

  如果有任何理由可以認為程序并未等同地處理等價類中的元素,那么應該將這個等價類再劃分為小一些的等價類。

  2.生成測試用例

  第二步是使用等價類來生成測試用例,我們以上述第一個例子來說明,其過程如下:

  1. 為每個等價類設置一個不同的編號。

  2. 編寫新的測試用例,盡可能多地覆蓋那些尚未被涵蓋的有效等價類,直到所有的有效等價類都被測試用例所覆蓋(包含進去)。

  3. 編寫新的用例,覆蓋一個且僅一個尚未被覆蓋的無效等價類,直到所有的無效等價類都被測試用例所覆蓋。

  用單個測試用例覆蓋無效等價類,是因為某些特定的輸入錯誤檢查可能會屏蔽或取代其他輸入錯誤檢查。舉例來說,如果規格說明規定了“請輸入書籍類型(硬皮、軟皮或活頁)及數量(l~999 )”,代表兩個錯誤輸入(書籍類型錯誤,數量錯誤)的測試用例“XYZ 0”,很可能不會執行對數量的檢查,因為程序也許會提示“XYZ 是未知的書籍類型”,就不檢查輸入的其余部分了。

  這里將上述的第4個例子進行一下擴展,然后進行示范說明如何用等價類劃分的思想來設計測試用例:

  規定標識符的第一個字符必須是字母,標識符只能使用字母、數字和下劃線。

  第一步:劃分等價類,為每一個等價類編號。

輸入條件
 有效等價類
 無效等價類
 
第一個字符
 首字符是字母(1)
 首字符不是字母(2)
 
字符限制
 僅使用字母、數字和下劃線(3)
 使用了其他字符(4)
 

  第二步:設計測試用例,覆蓋所有有效等價類,用盡可能少的用例覆蓋最多的有效等價類。

  測試用例:Test_1 覆蓋(1)(3)

  第三步:設計測試用例,覆蓋所有無效等價類。每新增一個測試用例,只覆蓋一個無效等價類。

  測試用例:123test 覆蓋(2)

  測試用例:Test#¥ 覆蓋(4)

  2.2.2 邊界值分析

  經驗證明,考慮了邊界條件的測試用例與其他沒有考慮邊界條件的測試用例相比,具有更高的測試回報率。所謂邊界條件,是指輸入和輸出等價類中那些恰好處于邊界、或超過邊界、或在邊界以下的狀態。邊界值分析方法與等價劃分方法存在兩方面的不同:

  1. 與從等價類中挑選出任意一個元素作為代表不同,邊界值分析需要選擇一個或多個元素,以便等價類的每個邊界都經過一次測試。

  比如要求輸入職工年齡,規定輸入為18 – 45。根據等價類劃分思想,一個有效等價類:18<= 年齡 <=45 ,兩個無效等價類:年齡<18 和 年齡>45。這樣選取 10 ,30 ,50即可滿足覆蓋。但是等價類的思想沒有從邊界值方面來分析問題,從邊界值角度分析,我們就會再添加17、18、19 、44、45、46這樣的邊界值。

  2. 與僅僅關注輸入條件(輸入空間)不同,還需要考慮從結果空間(輸出等價類)設計測試用例。

  比如ATM機取款手續費為取款額%1,最低2元,最高50元。從輸出等價類來考慮邊界值,就要設計用例來測試手續費會不會低于2元,會不會高于50元。

  很難提供一份如何進行邊界值分析的“詳細說明’,因為這種方法需要一定程度的創造性,以及對問題采取一定程度的特殊處理辦法(因此,就像測試的許多其他方面一樣,這更多的是項智力工作,并非其他的什么)。

  2.2.3 因果圖

  邊界值分析和等價劃分的一個弱點是未對輸入條件的組合進行分析。邊界值測試不一定能檢查出此類錯誤。

  對輸入組合進行測試并不是簡單的事情,因為即使對輸入條件進行了等價劃分,這些組合的數量也是個天文數字。如果在選擇輸入條件的子集時沒有采用一個系統的方法,很可能選擇出一個任意的輸入條件子集, 這樣會使測試沒有什么成效。

  因果圖有助于用一個系統的方法選擇出高效的測試用例集。它還有一個額外的好處,就是可以指出規格說明的不完整性和不明確之處。

原文轉自:http://blog.csdn.net/rl529014/article/details/51556707#t1

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