天天看點

等價類劃分法執行個體

1.     某程式規定:"輸入三個整數 a 、 b 、 c 分别作為三邊的邊長構成三角形。通過程式判定所構成的三角形的類型,當此三角形為一般三角形、等腰三角形及等邊三角形時,分别作計算 … "。用等價類劃分方法為該程式進行測試用例設計。(三角形問題的複雜之處在于輸入與輸出之間的關系比較複雜。)

分析題目中給出和隐含的對輸入條件的要求:

(1)整數   (2)三個數   (3)非零數   (4)正數  

(5)兩邊之和大于第三邊    (6)等腰    (7)等邊

 如果 a 、 b 、 c 滿足條件( 1 ) ~ ( 4 ),則輸出下列四種情況之一:

 1)如果不滿足條件(5),則程式輸出為 " 非三角形 " 。

 2)如果三條邊相等即滿足條件(7),則程式輸出為 " 等邊三角形 " 。

 3)如果隻有兩條邊相等、即滿足條件(6),則程式輸出為 " 等腰三角形 " 。

 4)如果三條邊都不相等,則程式輸出為 " 一般三角形 " 。

 列出等價類表并編号

等價類劃分法執行個體

覆寫有效等價類的測試用例:

a     b     c             覆寫等價類号碼

3     4     5             (1)--(7)

4     4     5             (1)--(7),(8)

4     5     5             (1)--(7),(9)   

5     4     5             (1)--(7),(10)

4     4     4             (1)--(7),(11)

覆寫無效等價類的測試用例:

2.    設有一個檔案管理系統,要求使用者輸入以年月表示的日期。假設日期限定在1990年1月~2049年12月,并規定日期由6位數字字元組成,前4位表示年,後2位表示月。現用等價類劃分法設計測試用例,來測試程式的"日期檢查功能"。(不考慮2月的問題)

1)劃分等價類并編号,下表等價類劃分的結果

輸入等價類 有效等價類 無效等價類
日期的類型及長度 ①6位數字字元

②有非數字字元

③少于6位數字字元

④多于6位數字字元

年份範圍 ⑤在1990~2049之間

⑥小于1990

⑦大于2049

月份範圍 ⑧在01~12之間

⑨等于00

⑩大于12

2)設計測試用例,以便覆寫所有的有效等價類在表中列出了3個有效等價類,編号分别為①、⑤、⑧,設計的測試用例如下:

測試資料    期望結果      覆寫的有效等價類

200211      輸入有效     ①、⑤、⑧

3)為每一個無效等價類設計一個測試用例,設計結果如下:

    測試資料   期望結果     覆寫的無效等價類

   95June     無效輸入         ②

    20036      無效輸入          ③

    2001006   無效輸入         ④

    198912     無效輸入          ⑥

    200401     無效輸入          ⑦

    200100     無效輸入          ⑨

    200113     無效輸入          ⑩

3.     NextDate  函數包含三個變量:month 、 day 和 year ,函數的輸出為輸入日期後一天的日期。 例如,輸入為 2006年3月 7日,則函數的輸出為 2006年3月8日 。要求輸入變量 month 、 day 和 year 均為整數值,并且滿足下列條件:

  ①1≤month≤12

  ②1≤day≤31

  ③1920≤year≤2050 

1)有效等價類為:

    M1={月份:1≤月份≤12}

    D1={日期:1≤日期≤31}

    Y1={年:1812≤年≤2012}

2)若條件 ① ~ ③中任何一個條件失效,則 NextDate 函數都會産生一個輸出,指明相應的變量超出取值範圍,比如 "month 的值不在 1-12 範圍當中 " 。顯然還存在着大量的 year 、 month 、 day 的無效組合, NextDate 函數将這些組合作統一的輸出: " 無效輸入日期 " 。其無效等價類為:

    M2={月份:月份<1}

    M3={月份:月份>12}

    D2={日期:日期<1}

    D3={日期:日期>31}

    Y2={年:年<1812}

    Y3={年:年>2012}

  弱一般等價類測試用例

  月份    日期       年              預期輸出

   6      15       1912           1912年6月16日

  強一般等價類測試用例同弱一般等價類測試用例

  注:弱--有單缺陷假設;健壯--考慮了無效值

  (一)弱健壯等價類測試

  用例ID   月份  日期   年          預期輸出

  WR1      6     15    1912      1912年6月16日

  WR2     -1    15    1912      月份不在1~12中

  WR3     13    15    1912      月份不在1~12中

  WR4      6     -1    1912      日期不在1~31中

  WR5      6     32    1912      日期不在1~31中

  WR6      6     15    1811      年份不在1812~2012中

  WR7      6     15    2013      年份不在1812~2012中

  (二)強健壯等價類測試

    用例ID   月份    日期     年          預期輸出

     SR1      -1      15      1912      月份不在1~12中

    SR2       6      -1       1912      日期不在1~31中

    SR3       6      15      1811      年份不在1812~2012中

    SR4      -1     -1       1912      兩個無效一個有效

    SR5       6      -1       1811      兩個無效一個有效

    SR6      -1      15      1811      兩個無效一個有效

    SR7      -1     -1       1811      三個無效

4.     傭金問題等價類測試用例,它是根據傭金函數的輸出值域定義等價類,來改進測試用例集合。

輸出銷售額≤1000元    傭金10%

1000<銷售額≤1800     傭金=100+(銷售額-1000)*15%

銷售額>1800             傭金=220+(銷售額-1800)*20%

測試用例   槍機(45)    槍托(30)           槍管(25)          銷售額      傭金

   1              5            5                    5                  500           50

   2             15          15                   15                  1500          175

   3             25          25                    25                  2500         360

根據輸出域選擇輸入值,使落在輸出域等價類内,可以結合弱健壯測試用例結合。