2.設有一個檔案管理系統,要求用戶輸入以年月表示的日期。假設日期限定在1990年1月~2049年12月,并規定日期由6位數字字符組成,前4位表示年,后2位表示月,F用等價類劃分法設計測試用例,來測試程序的"日期檢查功能"。
1)劃分等價類并編號,下表等價類劃分的結果
1)劃分等價類并編號,下表等價類劃分的結果
輸入等價類 |
有效等價類 |
無效等價類 |
日期的類型及長度 |
、6位數字字符 |
②有非數字字符 ③少于6位數字字符 ④多于6位數字字符 |
年份范圍 |
、菰1990~2049之間 |
⑥小于1990 |
月份范圍 |
、嘣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 -11912 兩個無效一個有效 SR5 6 -1 1811 兩個無效一個有效 SR6 -1 15 1811 兩個無效一個有效 SR7 -1 -11811 三個無效 |
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 |
根據輸出域選擇輸入值,使落在輸出域等價類內,可以結合弱健壯測試用例結合。
文章來源于領測軟件測試網 http://www.kjueaiud.com/