黑盒测试方法|测试用例的设计方法--等价类划分方法
黑盒測試方法–測試用例的設計方法–等價類劃分方法
目錄
- 等價類劃分方法
- 邊界值分析方法
- 錯誤推測方法
- 因果圖方法
- 判定表驅動分析方法
- 正交實驗設計方法
- 功能圖分析方法
- 場景設計方法
等價類劃分方法
一、方法簡介
(1)定義
把所有可能的輸入數據,即程序的輸入域劃分成若干部分(子集),然后從每一個子集中選取少數具有代表性的數據作為測試用例。該方法是一種重要的,常用的黑盒測試用例設計方法。
(2)劃分等價類:
等價類是指某個輸入域的子集合。在該子集合中,各個輸入數據對于揭露程序中的錯誤都是等效的,并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試,因此,可以把全部輸入數據合理劃分為若干等價類,在每一個等價類中取一個數據作為測試的輸入條件就可以用少量代表性的測試數據取得較好的測試結果。等價類劃分可有兩種不同的情況:有效等價類和無效等價類。
有效等價類
是指對于程序的規格說明來說是合理的、有意義的輸入數據構成的集合。利用有效等價類可檢驗程序是否實現了規格說明中所規定的功能和性能。
無效等價類
與有效等價類的定義恰巧相反。無效等價類指對程序的規格說明是不合理的或無意義的輸入數據所構成的集合。對于具體的問題,無效等價類至少應有一個,也可能有多個。
設計測試用例時,要同時考慮這兩種等價類。因為軟件不僅要能接收合理的數據,也要能經受意外的考驗,這樣的測試才能確保軟件具有更高的可靠性。
(3)劃分等價類的標準
(4)劃分等價類的方法
(5)設計測試用例
在確立了等價類后,可建立等價類表,列出所有劃分出的等價類輸入條件:有效等價類、無效等價類,然后從劃分出的等價類中按以下三個原則設計測試用例:
二、例子
(1)例子1
某程序規定:"輸入三個整數 a 、 b 、 c 分別作為三邊的邊長構成三角形。通過程序判定所構成的三角形的類型,當此三角形為一般三角形、等腰三角形及等邊三角形時,分別作計算 … "。用等價類劃分方法為該程序進行測試用例設計。(三角形問題的復雜之處在于輸入與輸出之間的關系比較復雜。)
1、分析題目中給出和隱含的對輸入條件的要求:
(1)整數 (2)三個數 (3)非零數 (4)正數
(5)兩邊之和大于第三邊 (6)等腰 (7)等邊
2、如果 a 、 b 、 c 滿足條件( 1 ) ~ ( 4 ),則輸出下列四種情況之一:
3、列出等價類表并編號👇
4、覆蓋有效等價類的測試用例👇
| 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) |
5、覆蓋無效等價類的測試用例👇
(2)例子2
設有一個檔案管理系統,要求用戶輸入以年月表示的日期。假設日期限定在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 | 無效輸入 | ⑩ |
(3)例子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} |
3、弱一般等價類測試用例
| 6 | 15 | 1912 | 1912年6月16日 |
強一般等價類測試用例同弱一般等價類測試用例
注:弱–有單缺陷假設;健壯–考慮了無效值
4、弱健壯等價類測試
| 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中 |
5、強健壯等價類測試
| 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)例子4
傭金問題等價類測試用例,它是根據傭金函數的輸出值域定義等價類,來改進測試用例集合。
| 銷售額≤1000元 | 傭金10% |
| 1000<銷售額≤1800 | 傭金=100+(銷售額-1000)*15% |
| 銷售額>1800 | 傭金=220+(銷售額-1800)*20% |
| 1 | 5 | 5 | 5 | 500 | 50 |
| 2 | 15 | 15 | 15 | 1500 | 175 |
| 3 | 25 | 25 | 25 | 2500 | 360 |
根據輸出域選擇輸入值,使落在輸出域等價類內,可以結合弱健壯測試用例結合。
總結
以上是生活随笔為你收集整理的黑盒测试方法|测试用例的设计方法--等价类划分方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 探索未知种族之osg类生物---呼吸分解
- 下一篇: 在关于测试高速光纤链路的BICSI会前研