常見用例設計方法整理(等價類、邊界值)


 

等價類

定義:1、等價:如果多個輸入在程序中處理方式(路徑)相同,則認為這些輸入是等價的,測試一個即可。(前提:測試不能窮舉)

         2、輸入:分為兩類,有效輸入(可以保存)、無效輸入(不可保存)

         3、結合:有效等價類、無效等價類

滿足規則:只需尋找一個全部滿足規則的(有效等價類)

不滿足規則:需分開,每條不滿足條件的舉出一個,方便定位錯誤(無效等價類)

規則的幾種情況:

1 若規則是布爾式的

有效、無效分別取一個 一個真,一個假

2. 若規則是區

有效的取一個 無效的,在小於區間的取一個,大於區間的取一個,空或零取一個

3. 規則是集合:

有效取一個 無效的在集合外取一個

4. 規則是必須滿足的一個條件:

對無效,要細分無效(先試試其他有效等價類,再試試全部等價類全都不滿足)

例:郵箱注冊,注冊名只能以小寫字母開頭,設計無效等價類時,先試試其他有效等價類,如大寫字母、數字等,再試試其他有效全部都不滿足的情況

有效等價類:程序規格說明有意義,合理的輸入數據

無效等價類:程序規格說明無意義,不合理的輸入數據

 

ASCII

   7位   表示27=128個字符   每個字符存儲占用1個字節

   分類:不可見字符

             控制字符:LF(換行)、CR(回車)

             通信字符

             NULL(空)

         可見字符

             空格

             數字

             字母(大寫、小寫)

             符號

練習

1.1年齡注冊

   注冊頁面要求輸入年齡,限制:1150期間的正整數

   1、需求分析—找出全部的輸入條件

      1)、正整數

      2)、[1,150]

       注意:分解的過程中,條件之間不用組合(完全獨立),在設計有效用例輸入的時候再考慮組合(一對多)

  2、繪制等價類表格

條件

有效等價類

有效編號

無效等價類

無效編號

正整數

>1

A01

數字

小數

B01

負數

B02

0

B03

非數字

空(NULL

B04

空格

B05

字母

B06

符號

B07

[1,150]

[1,150]

A02

<1

B08

>150

B09

 

3、設計測試用例輸入

原則:有效輸入—盡可能多去覆蓋有效等價類  (一對多)

      無效輸入---只能覆蓋一個無效等價類    (一對一)

                目的:A、出現問題可以更好的去定位

                      B、有可能第一個無效處理后,后續無效值被漏測

輸入序號

有效輸入值

覆蓋有效等價類

輸入序號

無效輸入值

覆蓋無效等價類

1

100

A01A02

2

1.8

B01

 

 

 

3

-9

B02

4

0

B03B08

5

空(NULL

B04

6

空格

B05

7

W

B06

8

@

B07

9

200

B09

1.2.年齡注冊

   某保險公司注冊頁面要求輸入年齡,限制:1150期間的正整數,其中:

[1,10]   適用的費率  10%

[11,50]  適用的費率  30%

[51,150] 適用的費率  80%

 

 

條件

有效等價類

有效編號

無效等價類

無效編號

正整數

>1

A01

數字

小數

B01

負數

B02

0

B03

非數字

空(NULL

B04

空格

B05

字母

B06

符號

B07

[1,150]

[1,10]

A02

<1

B08

[11,50]

A03

>150

 

[51,150]

A04

 

 

 

輸入序號

有效輸入值

覆蓋有效等價類

輸入序號

無效輸入值

覆蓋無效等價類

1

5

A01A02

4

1.8

B01

2

30

A01A03

5

-9

B02

3

100

A01A04

6

0

B03B08

 

 

 

7

空(NULL

B04

8

空格

B05

9

W

B06

10

@

B07

11

200

B09

1.3.擴充

考慮全角和半角問題(GB231

    其中,半角占1個字節

          全角占2個字節

 

字符集

    1ASCII

2GB2312 -> GB18030   一個漢字占2個字節

   BIG5(繁體)

3ISO Unicode (UTF-16)  -> UTF-8(變長存儲)  一個漢字可能占3個字節

條件

有效等價類

有效編號

無效等價類

無效編號

正整數

>1(半角)

A01

 

 

 

 

 

 

0

B03

>1(全角)

A02

半角字符

空(NULL

B04

空格

B05

字母

B06

符號

B07

全角字符

空格

B08

字母

B09

符號

B10

漢字

(字符集)

GB-2312

B11

BIG-5

B12

[1,150]

[1,150]

A03

<1

B13

>150

B14

 

分解粒度:根據功能的重要性決定(用例圖----執行者角色,考慮用戶的關注功能)

          根據成本、時間決定

取消負數、小數的原因:

     1、前提:在編輯框內輸入年齡,程序在接收編輯框的內容時,一般以字符(或字符串)的形式接收,再根據需要進行類型轉換,如年齡,需要轉換為整型

     2、小數中的“小數點”和負數中的“負號”都認為是符號,不允許保存

邊界值

取值(5個):上點、內點、離點

1、上點、內點取值與區間的開閉無關

2、離點和上點互為有效

   作用:(有序、有范圍)等價類的補充

   補充:考慮數據類型的邊界

          int 類型  4個字節    32bit   取值范圍[-231,  231-1]

上點:邊界上的點

內點:區間內的點

離點:離邊界值最近且與上點不屬於同一等價類的點(對於小數,沒有離點,不用取)

規則的幾種情況:

1. 規則是區間:

按上點、內點、離點取

2. 規則是取值的個數:

取最小、最大、中間個數

3.規則是a~z序列:

az

4.規則是集合:

取一個集合內的,取一個集合外的

(0,20)上點是0,20 離點是1,19    [0,20]上點是0,20 離點是-1,21

若規則是下拉菜單:建議每個下拉值都選擇一個

2.1.年齡

條件

有效等價類

有效邊界值

有效編號

無效等價類

無效邊界值

無效編號

正整數

>=1

上點:1

A01

數字

小數

 

B01

內點:100

A02

負數

 

B02

 

 

離點:0

0

B03

非數字

空(NULL

 

B04

空格

 

B05

大寫字母

上點:A

B06

上點:Z

 

內點:M

 

符號

離點:@

B07

離點:[

 

[1,150]

[1,150]

上點:1

A03

離點:

0

B08

上點:150

A04

離點:

151

B09

內點:100

A05

 

 

 

有效用例輸入:1 100150

2.2.用戶名注冊

 

1、測試需求分析

1、內容:字母、數字、

2、長度:[6,18]

3、約束:字母開頭

          字母或數字結尾

          不允許重名

          不允許使用保留字

              自動去除首尾空格

2、等價類划分

條件

有效等價類

有效編號

無效等價類

無效編號

內容

字母

大寫字母

A01

符號(除下划線)

B01

小寫字母

A02

NULL()

B02

數字

[0,9]

A03

空格

B03

下划線

下划線

A04

GB2312

B04

 

 

 

BIG5

B05

長度

[6,18]

[6,18]

A05

<6

B06

>18

B07

約束

字母開頭

大寫字母開頭

A06

數字開頭

B08

小寫字母開頭

A07

下划線開頭

B09

 

 

符號(非下划線)開頭

B10

漢字開頭

B11

字母或數字結尾

大寫字母結尾

A08

下划線結尾

B12

小寫字母結尾

A09

符號(非下划線)結尾

B13

數字結尾

A10

漢字結尾

B13

不允許重名

不重名

A11

重名

B15

去除首尾空格

A12

 

 

不允許使用保留字

不使用

A13

使用保留字

B16

3、用例設計

序號

有效輸入

有效邊界值

序號

無效輸入

無效邊界值

1

(當前系統無AAb_4)

AAbb_4

A01A02A04A03

A05A06A10

A11A13

5

abc@a

B01

2

(當前系統無AAb_4)

aAbcvb_A

A01A02A04A03

A05A07A08

A11A13

 

………..

 

3

(當前系統無AAb_4)

aA555b_b

A01A02A04A03

A05A07A09

A11A13

 

(當前系統存在aaf5bc)

(空格)aaf5bc(空格)

B15

4

(當前系統無aaf5bc)

(空格)aaf5bc(空格)

A12

 

Administrator

B16

2.3.變量命名

在某一版的編程語言中對變量名稱規格作如下規定:變量名稱是由字母開頭的,后跟字母或者數字的任意組合構成,並且區分字母大小寫。編譯器能夠區分的有效字符數為8個,並且變量名稱必須先聲明,后使用,在同一聲明語句中,變量名稱至少必須有一個。

1、測試需求分析

   內容:字母、數字

   長度:[1,8]

   約束:字母開頭

         大小寫敏感

         先聲明后使用

         變量的個數[1,?]  (需要和需求人員溝通)

         在同一作用域中不允許重名

         不能使用關鍵字

2、等價類划分

3、確定邊界值

4、設計用例輸入

2.4.進銷存價格

 

 

代碼實現:

if (isNumberString(document.form2.tichen.value,"1234567890.")!=1)

{

alert("價格只能為數字!");

return false;

}

 

根據代碼的實現,價格編輯框只接受鍵盤的“數字鍵”和“小數點”共11個字符

 

等價類

條件

有效等價類

無效等價類

內容

數字

字母

字母、符號處理方式(路徑)相同,認為都是等價的

小數點

約束

小數點最多有1

>1個小數點

 

 

 

2.5.Windows文件命名

目錄         目錄長度   文件最大長度     目錄+文件最大長度

C:\             3         255個           = 258

C:\ABCD        7         251個           =258

C:\ABCD\AAAA   12        246個           =258

 

根目錄:   255

非根目錄: 254    (文件夾最小長度為1

 

1、測試需求分析

內容:非“\/:*?"<>|”的字符

長度: 根目錄:   255

非根目錄: 254    (文件夾最小長度為1

約束:同目錄下不能重名(去除首尾空格)

      不同擴展名使用不同的圖標

      不能為空

總結

   1、適用范圍:針對程序的輸入

   2、使用步驟

        1)、測試需求分析,找出全部條件(顯示、隱士)(條件之間不能交叉或者組合,到設計用例的時候再考慮多條件的組合)

        2)、划分等價類

            划分依據:相同的處理方式(路徑)

            分類:有效等價類、無效等價類

        3)、使用邊界值補充(有序、有范圍的)等價類

            內容:上點、離點、內點

            要求:上點、內點與區間開閉無關,離點和上點互為有效

            分類:將邊界值分為有效邊界和無效邊界,填入等價類表格

        4)、對每個等價類進行唯一的編號

        5)、設計用例的輸入

            原則:有效等價類,一對多

                  無效等價類,一對一

   3、優點:對輸入的考慮充分

   4、缺點:如果不清楚系統的實現方式,造成大量的冗余用例(黑盒方法共有)

            對於多輸入的組合不太適宜

規則的幾種情況:

1 .若規則是布爾式的

有效、無效分別取一個 一個真,一個假

2. 若規則是區間

有效的取一個 無效的,在小於區間的取一個,大於區間的取一個,空或零取一個

3. 規則是集合:

有效取一個 無效的在集合外取一個

4. 規則是必須滿足的一個條件:

對無效,要細分無效(先試試其他有效等價類,再試試全部等價類全都不滿足)

例:郵箱注冊,注冊名只能以小寫字母開頭,設計無效等價類時,先試試其他有效等價類,如大寫字母、數字等,再試試其他有效全部都不滿足的情況

有效等價類:程序規格說明有意義,合理的輸入數據

無效等價類:程序規格說明無意義,不合理的輸入數據

邊界值

上點:邊界上的點

內點:區間內的點

離點:離邊界值最近且與上點不屬於同一等價類的點(對於小數,沒有離點,不用取)

規則的幾種情況:

1. 規則是區間:

按上點、內點、離點取

2. 規則是取值的個數:

取最小、最大、中間個數

3.規則是a~z序列:

az

4.規則是集合:

取一個集合內的,取一個集合外的

(0,20)上點是0,20 離點是1,19    [0,20]上點是0,20 離點是-1,21

若規則是下拉菜單:建議每個下拉值都選擇一個


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM