天天看點

等價類劃分例題

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

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

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

②有非數字字元

③少于6位數字字元

④多于6位數字字元

年份範圍 ⑤在1990~2049之間

⑥小于1990

⑦大于2049

月份範圍 ⑧在01~12之間

⑨等于00

⑩大于12

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

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

    200211     輸入有效     ①、⑤、⑧

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

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

    95June    無效輸入         ②

    20036     無效輸入          ③

    2001006   無效輸入         ④

    198912    無效輸入         ⑥

    200401    無效輸入         ⑦

    200100    無效輸入         ⑨

    200113    無效輸入         ⑩

2.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     三個無效

3.“6到18個字元,可以使用字母、數字、下劃線,需已字母開頭”。那麼有效等價類就應該是

輸入條件 有效等價類 無效等價類
符合要求的郵件位址 6---18個字元           (1) 小于6個字元          (6)
大于18個字元         (7)
字母                  (2) 不是字母、數字和下劃線 (8)
數字                  (3)
下劃線                (4)
首位是字母            (5) 首位不是字母          (9)

那麼測試用例就出來了吧

序号 輸入 覆寫等價類 輸出
1 Nick_mail01 1,2,3,4,5 正确
2 nick 2,5,6 錯誤
3 qwertyuiopasdfghjklzxc 2,5,7 錯誤
4 Nick+mail? 1,2,5,8 錯誤
5 5683_mail 1,2,3,4,9 錯誤