轉載
---------------------------------------------------------------
作者:whylaughing
博客地址:http://www.cnblogs.com/whylaughing/
目錄:
①等價類划分法的介紹和概念
②等價類的類型划分
③等價類測試用例的類別
④等價類划分的原則
⑤等價類划分法的測試用例應用
⑥邊界值分析法的實例分析
1、等價類划分法的介紹和概念
- 划分
指互不相交的一組子集,這些子集的並是整個集合。
對測試的意義:完備性和無冗余性。
- 等價類
等價類是指某個輸入域的子集合。在該子集合中,各個輸入數據對於揭露程序中的錯誤都是等效的,具有等價特性。
- 等價類合理地假設
測試某等價類的代表值就等於對這一類其它值的測試。
- 等價類划分
等價類划分是一種典型的黑盒測試方法。
等價類測試方法是把所有可能的輸入數據,即程序的輸入域划分成若干部分,然后從每一部分中選取少數有代表性的數據作為測試用例。使用等價類划分方法設計測試用例要經歷划分等價類(列出等價類表)和選取測試用例兩步,它將不能窮舉的測試過程進行合理分類,從而保證設計出來的測試用例具有完整性和代表性。
2、等價類的類型划分
等價類划分可有兩種不同的情況:有效等價類和無效等價類。
- 有效等價類
是指對於程序的需求規格說明來說是合理的,有意義的輸入數據構成的集合。
利用有效等價類可檢驗程序是否實現了規格說明中所規定的功能和性能(確認過程)。
- 無效等價類(與有效等價類的定義恰巧相反)
是指對於程序的需求規格說明來說是不合理的,無意義的輸入數據構成的集合。
利用無效等價類可檢驗程序對於無效數據的異常處理能力(檢驗過程)。
設計測試用例時,要同時考慮這兩種等價類。因為,軟件不僅要能接收合理的數據,也要能經受意外的考驗。這樣的測試才能確保軟件具有更高的可靠性。
3、等價類測試用例的類別
根據測試用例的完整性可以划分
- 弱等價類測試
- 弱一般等價類測試
- 弱健壯等價類測試
- 強等價類測試
- 強一般等價類測試
- 強健壯等價類測試
PS:健壯性測試
健壯性有兩層含義:容錯能力和恢復能力
粗暴一些方式俗稱“大猩猩”測試法。除了不能拳打腳踢嘴咬之外,什么招術都可以使出來。例如在測試客戶機-服務器模式的軟件時,把網線拔掉,造成通信異常中斷。
3.1弱一般等價類
遵循單缺陷原則,要求用例覆蓋每一個變量的一種取值即可,取值為有效值。
3.2弱健壯等價類
在弱一般等價類的基礎上,增加取值為無效值的情況。
對於有效輸入,使用每個有效值類的一個值
對於無效輸入,測試用例將擁有一個無效值,並保持其余的值是有效的。
3.3強一般等價類
遵循多缺陷原則,要求用例覆蓋每個變量的每種取值之間的迪卡爾乘積,即所有變量所有取值的所有組合,取值為有效值
覆蓋所有的等價類
有可能的輸入組合中的一個
3.4強健壯等價類
在強一般等價類的基礎上,增加取值為無效值的情況。
“健壯”考慮無效值,所有等價類都有考慮
“強”多缺陷假設
4、等價類划分的原則
4.1按照區間划分
在輸入條件規定了取值范圍或值的個數的情況下,則可以確立一個有效等價類和兩個無效等價類。
例子:輸入值是學生成績,范圍是0~100之間
有效等價類:0≤並≤100,如0,1,10等
無效等價類:<0 或 >100,如-1,101等
弱一般等價類:0~100中任意一個數為測試數據,只設計1個用例即可
強一般等價類:分為0、 1~99、 100三個等價類,需要設計3個用例
弱健壯等價類:考慮到60分在實際情況中為特殊數字,划分0、 1~99(除60外)、 100、 60四個等價類
強健壯等價類:考慮各種非法輸入,如負數、其他字符等等
4.2按照數值划分
在規定了輸入數據的一組值(假定n個),並且程序要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類。
例子:輸入條件說明輸入學歷為本科、碩士和博士3種之一
有效等價類:本科、碩士和博士其中一種
無效等價類:除要求的2種外其他字符,如小學、專科等
4.3按照數值集合划分
在輸入條件規定了輸入值的集合或者規定了“必須如何”的條件的情況下,可確立一個有效等價類和一個無效等價類。
例子:密碼輸入框,要求密碼必須是數字或字母
有效等價類:密碼是數字和字母的組合(還可以細分)
無效等價類:密碼包括中文、密碼包括其他符號等
4.4按限制條件或規則划分
在規定了輸入數據必須遵守的規則的情況下,可確立一個有效等價類(符合規則)和若干個無效等價類(從不同角度違反規則)。
例子:校內電話號碼撥外線為9開頭
有效等價類:9+外線號碼
無效等價類:非9開頭+外線號碼,9+非外線號碼等
4.5細分等價類
在確知已划分的等價類中各元素在程序處理中的方式不同的情況下,則應再將該等價類進一步的划分為更小的等價類,並建立等價類表。
例子:確定了等價類后,再列表形式列出所有划分出的等價類表
5、等價類划分法的測試用例應用
- 按照[輸入條件][有效等價類][無效等價類] 建立等價類表,列出所有划分出的等價類
- 為每一個等價類規定一個唯一的編號。
- 設計一個新的測試用例,使其盡可能多地覆蓋尚未被覆蓋地有效等價類,重復這一步,直到所有的有效等價類都被覆蓋為止。
- 設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復這一步,直到所有的無效等價類都被覆蓋為止。
6、等價類划分法的實例分析
某程序規定:"輸入三個整數 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)
覆蓋無效等價類的測試用例:
---------------------------------------------------------------
作者:whylaughing
博客地址:http://www.cnblogs.com/whylaughing/
注意事項:本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。