等價類劃分測試法

    等價類測試方法:把程序的輸入域劃分紅若干部分,而後從每一個部分選取少許具備表明性的數據做爲測試用例。等價類是指某個輸入域的子集合,在該子集合內,各個數據對於發現程序中的錯誤都是等效的,併合理地假設:測試某個等價類的表明值就等於對這一類其餘值的測試。html

    有效等價類:是指對於程序的規格說明來講是合理的、有意義的輸入數據構成的集合。利用有效等價類可檢驗程序是否實現了規格說明所規定的功能和性能。函數

    無效等價類:指對程序的規格說明是不合理的或無心義的輸入數據所構成的集合。對於具體的問題,無效等價類至少應有一個,也可能多個。性能

    劃分等價類的標準:測試

        1) 完備測試、避免冗餘url

        2) 劃分等價類重要的是:集合的劃分、劃分爲互不相交的一組子集,而子集的並是整個集合spa

        3) 並是整個集合:備性設計

        4) 子集互不相交:保證一種形式的無冗餘性htm

       5) 同一類中標識(選擇)一個測試用例,同一等價類中,每每處理相同,相同處理映射到「相同的執行路徑」。blog

劃分等價類的方法

1)        在輸入條件規定了取值範圍或值的個數的狀況下,則能夠確立一個有效等價類和兩個無效等價類。如:輸入值是學生成績,範圍是0~100;ci

測試用例設計方法---等價類劃分法
 

       2)在輸入條件規定了輸入值的集合或者規定了「必須如何」的條件的狀況下,可確立一個有效等價類和一個無效等價類:

       3)在輸入條件是一個布爾量的狀況下,可肯定一個有效等價類和一個無效等價類。

       4)在規定了輸入數據的一組值(假定n個),而且程序要對每個輸入值分別處理的狀況下,可確立n個有效等價類和一個無效等價類。

       例:輸入條件說明學歷可爲:專科、本科、碩士、博士四種之一,則分別取這四種的四個值做爲四個有效等價類,另外把四種學歷以外的任何學歷做爲無效等價類。

       5)在規定了輸入數據必須遵照的規則狀況下,可確立一個有效等價類(符合規則)和若干個無效等價類(從不一樣角度違反規則);

       6)在確知已劃分的等價類中各元素在程序處理中的方式不一樣的狀況下,則應在將該等價類進一步的劃分爲更小的等價類。

設計測試用例

       在確立了等價類後,可創建等價類表,列出全部劃分出的等價類輸入條件:有效等價類、無效等價類,而後從劃分出的等價類中按如下三個原則設計測試用例:

       1)爲每個等價類規定一個惟一的編號;

       2)設計一個新的測試用例,使其儘量多地覆蓋還沒有被覆蓋地有效等價類,重複這一步,直到全部的有效等價類都被覆蓋爲止;

       3)設計一個新的測試用例,使其僅覆蓋一個還沒有被覆蓋的無效等價類,重複這一步,直到全部的無效等價類都被覆蓋爲止。

2、實戰演習

一、三角形問題

一、某程序規定:「輸入三個整數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)

覆蓋無效等價類的測試用例:

測試用例設計方法---等價類劃分法

二、NextDate

二、NextDate函數包含三個變量:month、day、year,函數的輸出爲輸入日期後一天的日期。

例如,輸入2006年3月7日,則函數的輸出爲2006年3月8日。要求輸入變量month、day、year均爲整數值,而且知足下列條件:

一、1<=month<=12

二、1<=day<=31

三、1812<=year<=2012

1)有效等價類爲:

M1={月份:1<=月份<=12}

D1={日期:1<=日期<=31}

Y1={年份:1812<=年<=2012}

2)若條件1~3中任何一個條件失效,則NextDate函數都會產生一個輸出,指明相應的變量超出取值範圍,好比「month的值不在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

 

0

1

1912

月份不在1~12中

WR3

 

15

1

1912

月份不在1~12中

WR4

 

1

0

1912

日期不在1~31中

WR5

 

1

32

1912

日期不在1~31中

WR6

 

1

1

1811

年不在1812~2012中

WR7

 

1

1

2013

年不在1812~2012中

(二)強健壯等價類測試

用例

ID

月份

日期

預期輸出

SR1

 

15

1

1912

月份不在1~12中

SR2

 

1

32

1912

日期不在1~31中

SR3

 

1

1

1811

年份不在1812~2012中

SR4

 

0

0

1912

兩個無效一個有效

SR5

 

0

1

1811

兩個無效一個有效

SR6

 

1

0

1811

兩個無效一個有效

SR7

 

0

0

1811

三個無效

 

出自:

http://blog.sina.com.cn/s/blog_7938ea3701012c76.html

http://max.book118.com/html/2016/0501/41807323.shtm

相關文章
相關標籤/搜索