1. 程式人生 > >測試相關理解(二)等價類劃分例項

測試相關理解(二)等價類劃分例項

  設計測試用例
  在確立了等價類後,可建立等價類表,列出所有劃分出的等價類輸入條件:有效等價類、無效等價類,然後從劃分出的等價類中按以下三個原則設計測試用例:
  1)為每一個等價類規定一個唯一的編號;
  2)設計一個新的測試用例,使其儘可能多地覆蓋尚未被覆蓋地有效等價類,重複這一步,直到所有的有效等價類都被覆蓋為止;
  3)設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重複這一步,直到所有的無效等價類都被覆蓋為止。

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

"日期檢查功能"
  1)劃分等價類並編號,下表等價類劃分的結果

2)設計測試用例,以便覆蓋所有的有效等價類在表中列出了3個有效等價類,編號分別為①、⑤、⑧,設計的測試用例如下:
    測試資料期望結果覆蓋的有效等價類
    200211      輸入有效①、⑤、⑧
  3)為每一個無效等價類設計一個測試用例,設計結果如下:
    測試資料期望結果覆蓋的無效等價類
    95June     無效輸入
    20036      無效輸入③
    2001006   無效輸入

198912     無效輸入⑥
    200401     無效輸入⑦
    200100     無效輸入⑨
    200113     無效輸入⑩

2.NextDate 函式包含三個變數:month 、 day 和 year ,函式的輸出為輸入日期後一天的日期。 例如,輸入為 20063月 7日,則函式的輸出為 200638日 。要求輸入變數 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           1912616
  強一般等價類測試用例同弱一般等價類測試用例
  注:弱--有單缺陷假設;健壯--考慮了無效值 
  
  ()弱健壯等價類測試
  用例ID   月份日期預期輸出
  WR1      6      15    1912      1912616
  WR2     -1     15    1912      月份不在112
  WR3     13     15    1912      月份不在112
  WR4      6      -1    1912      日期不在131
  WR5      6      32    1912      日期不在131
  WR6      6      15    1811      年份不在18122012
  WR7      6      15    2013      年份不在18122012

  ()強健壯等價類測試
  用例ID   月份日期預期輸出
  SR1       -1      15       1912      月份不在112
  SR2        6      -1        1912      日期不在131
  SR3        6      15       1811      年份不在18122012
  SR4       -1      -1       1912      兩個無效一個有效
  SR5        6      -1        1811      兩個無效一個有效
  SR6       -1      15       1811      兩個無效一個有效
  SR7       -1      -1       1811      三個無效