軟件測試方法_邊界值分析法


目錄:

①邊界值分析法的介紹和概念

②邊界值分析法的原理和思想

③單缺陷假設和多缺陷假設

④邊界值測試數據類型

⑤內部邊界值分析

⑥各類邊界值測試介紹

⑦基於邊界值分析方法選擇測試用例的原則

⑧邊界值分析法的實例分析

1、邊界值分析法的介紹和概念

邊界值分析是一種常用的黑盒測試方法,是對等價類划分方法的補充;所謂邊界值,是指相對於輸入等價類和輸出等價類而言,稍高於其最高值或稍低於最低值的一些特定情況。邊界值分析的步驟包括確定邊界,選擇測試用例兩個步驟。

根據大量的測試統計數據,很多錯誤是發生在輸入或輸出范圍的邊界上,而不是發生在輸入/輸出范圍的中間區域。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。所以,邊界值分析法是一種很實用的黑盒測試用例方法,它具有很強的發現故障缺陷能力。

2、邊界值分析法原理和思想

2.1邊界值分析法的基本原理

錯誤更可能出現在輸入變量的極值附近。失效極少由兩個(或多個)缺陷的同時發生引起的。

2.2邊界值分析法的基本思想

選取正好等於,剛剛大於或剛剛小於邊界的值作為測試數據,而不是選取等價類中的典型值或任意值作為測試數據。

表示方法:最小值min,略高於最小值min+,正常值nom,略低於最大值max-,最大值max

3、單缺陷假設和多缺陷假設

單缺陷假設是邊界值分析的關鍵假設。單缺陷假設指“失效極少是由兩個或兩個以上的缺陷同時發生引起的”。在邊界值分析中,單缺陷假設即選取測試用例時僅僅使得一個變量取極值,其他變量均取正常值。

多缺陷假設則是指“失效是由兩個或兩個以上缺陷同時作用引起的”,要求在選取測試用例時同時讓多個變量取極值。

4、邊界值測試數據類型

類型包括:數值、速度、字符、地址、位置、尺寸、數量、空間……

邊界值

測試用例的設計思路

字符

起始-1個字符/結束+1個字符

假設一個文本輸入區域允許輸入1個到255個 字符,輸入1個和255個字符作為有效等價類;輸入0個和256個字符作為無效等價類,這幾個數值都屬於邊界條件值。

數值

最小值-1/最大值+1

假設某軟件的數據輸入域要求輸入5位的數據值,可以使用10000作為最小值、99999作為最大值;然后使用剛好小於5位和大於5位的 數值來作為邊界條件。

空間

小於空余空間一點/大於滿空間一點

例如在用U盤存儲數據時,使用比剩余磁盤空間大一點(幾KB)的文件作為邊界條件。

以上類型的邊界值應該在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、 最短/最長、 空/滿等情況下用邊界值作為測試數據

5、內部邊界值分析

在多數情況下,邊界值條件是基於應用程序的功能設計而需要考慮的因素,可以從軟件的規格說明或常識中得到,也是最終用戶可以很容易發現問題的。然而,在測試用例設計過程中,某些邊界值條件是不需要呈現給用戶的,或者說用戶是很難注意到的,但同時確實屬於檢驗范疇內的邊界條件,稱為內部邊界值條件或子邊界值條件。

內部邊界值條件主要有下面幾種:

51、數值的邊界值檢驗:計算機是基於二進制進行工作的,因此,軟件的任何數值運算都有一定的范圍限制。

范圍或值

位(bit)

0 或 1

字節(byte)

0 ~ 255

字(word)

0~65535(單字)或 0~4294967295(雙字)

千(K)

1024

兆(M)

1048576

吉(G)

1073741824

5.2字符的邊界值檢驗:在計算機軟件中,字符也是很重要的表示元素,其中ASCII和Unicode是常見的編碼方式。如下列出了一些常用字符對應的ASCII碼值。

字符

ASCII碼值

空 (null)

0

空格 (space)

32

可輸入的字符

33~126

0~9

48~57

A~Z

65~90

a~z

97~122

5.3其它邊界值檢驗:在不同的行業應用領域,依據硬件和軟件的標准不同而具有各自特定的邊界值。如下列出部分手機相關的邊界值

硬件設備

范圍或值

手機鋰電池電壓

工作電壓:3.6~4.2V;

保護電壓:2.5~3V不等

手機正常使用溫度

-25°C~+60°C

6、邊界值測試介紹

6.1基本邊界值測試

有n個輸入變量,設計測試用例使得一個變量在數據有效區內取最大值、略小於最大值、正常值、略大於最小值和最小值。如下圖所示,兩個變量X1,X2。它們的有效取值區間分別為[c,d],[a,b]。

image

對於有n個輸入變量的程序,基本邊界值分析的測試用例個數為4n+1

邊界值測試分析采用了可靠性理論的單缺陷假設。

優點:簡便易行;生成測試數據的成本很低

局限性:測試用例不充分;不能發現測試變量之間的依賴關系;不考慮含義和性質;

結論:只能作為初步測試用例使用

6.2健壯性測試

健壯性是指在異常情況下,軟件還能正常運行的能力。健壯性考慮的主要部分是預期輸出,而不是輸入。健壯性測試是邊界值分析的一種簡單擴展。除了變量的5 個邊界分析取值還要考慮略超過最大值(max)和略小於最小值(min)時的情況。健壯性測試的最大價值在於觀察處理異常情況,它是檢測軟件系統容錯性的重要手段。如下圖所示。

PS:軟件容錯性的度量:從非法輸入中恢復;健壯性有兩層含義:容錯能力和恢復能力

image

對於有n個輸入變量的程序,健壯性測試的測試用例個數為6n+1

6.3最壞情況測試

最壞情況測試拒絕單缺陷假設,它關心的是當多個變量取極值時出現的情況。最壞情況測試中,對每一個輸入變量首先進行包含最小值、略高於最小值、正常值、略低於最大值、最大值等5個元素集合的測試,然后對這些集合進行笛卡爾積計算,以生成測試用例。最壞情況測試將意味着更大工作量。如下圖所示。

image

對於有n個輸入變量的程序,最壞情況測試的測試用例個數為5^n

最壞情況與基本邊界值分析的比較

  • 基本邊界值分析測試用例是最壞情況測試用例的真子集
  • 最壞情況測試顯然更徹底
  • 最壞情況測試工作量大得多,變量函數的最壞情況測試會產生5的n次方個測試用例,邊界值分析只產生4n+1個測試用例

image

6.4健壯性最壞情況測試

健壯最壞情況假設對每一個變量首先進行最小值、略小於最小值的值、略高於最小值的值、正常值、最大值、略高於最大值的值、略低於最大值的值等7個元素的集合。然后對這些集合進行笛卡爾積運算,以生成測試用例。如下圖所示。

image

對於有n個輸入變量的程序,健壯最壞情況測試的測試用例個數為7^n

6.5特殊值測試

  • 邊界值分析假定n個變量是互相獨立的,沒有考慮這些變量之間的互相依賴關系;
  • 特殊值測試使用領域知識、使用類似程序的經驗開發用例的特殊值。
  • 特點:最直觀、最不一致、具有高度主觀性
  • 特殊值測試特別依賴測試人員的能力
  • 雖然特殊值測試是高度主觀性,但是能更有效地發現問題

例如:2月28日、2月29日

6.6隨機測試

  • 隨機測試的基本思想

不是永遠選取有界變量的最小值、略高於最小值、正常值、略低於最大值和最大值,而是使用隨機數生成器選出測試用例

  • 隨機測試的一種實現方法

有界變量a≤X≤b值的一個VisualBasic應用程序生成的X,滿足下式:

X=Int(b-a+1)*Rnd+a

函數Int返回浮點數的整數部分

函數Rnd生成區間[0,1]內的隨機數

7、基於邊界值分析方法選擇測試用例的原則

1)如果輸入條件規定了值的范圍,則應取剛達到這個范圍的邊界的值,以及剛剛超越這個范圍邊界的值作為測試輸入數據。

例如,如果程序的規格說明中規定:

"重量在10公斤至50公斤范圍內的郵件,其郵費計算公式為……"。作為測試用例,我們應取10及50,還應取10.01,49.99,9.99及50.01等。

2)如果輸入條件規定了值的個數,則用最大個數,最小個數,比最小個數少一,比最大個數多一的數作為測試數據。

例如,一個輸入文件應包括1~255個記錄,則測試用例可取1和255,還應取0及256等。

3)將規則1)和2)應用於輸出條件,即設計測試用例使輸出值達到邊界值及其左右的值。

例如,某程序的規格說明要求計算出"每月保險金扣除額為0至1165.25元",其測試用例可取0.00及1165.24、還可取一0.01及1165.26等。

再如一程序屬於情報檢索系統,要求每次“最少顯示1條、最多顯示4條情報摘要”,這時我們應考慮的測試用例包括1和4,還應包括0和5等。

4)如果程序的規格說明給出的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最后一個元素作為測試用例。

5)如果程序中使用了一個內部數據結構,則應當選擇這個內部數據結構的邊界上的值作為測試用例。

6)分析規格說明,找出其它可能的邊界條件。

8、邊界值分析法實例分析

現有一個學生標准化考試批閱試卷,產生成績報告的程序。其規格說明如下:程序的輸入文件由一些有80個字符的記錄組成,如右圖所示,所有記錄分為3組:

image

標題:這一組只有一個記錄,其內容為輸出成績報告的名字。

試卷各題標准答案記錄:每個記錄均在第80個字符處標以數字"2"。該組的第一個記錄的第1至第3個字符為題目編號(取值為1一999)。第10至第59個字符給出第1至第50題的答案(每個合法字符表示一個答案)。該組的第2,第3……個記錄相應為第51至第100,第101至第150,…題的答案。

每個學生的答卷描述:該組中每個記錄的第80個字符均為數字"3"。每個學生的答卷在若干個記錄中給出。如甲的首記錄第1至第9字符給出學生姓名及學號,第10至第59字符列出的是甲所做的第1至第50題的答案。若試題數超過50,則第2,第3……紀錄分別給出他的第51至第100,第101至第150……題的解答。然后是學生乙的答卷記錄。

學生人數不超過200,試題數不超過999。

程序的輸出有4個報告:
    a)按學號排列的成績單,列出每個學生的成績、名次。
    b)按學生成績排序的成績單。
    c)平均分數及標准偏差的報告。
    d)試題分析報告。按試題號排序,列出各題學生答對的百分比。

分別考慮輸入條件和輸出條件,以及邊界條件。給出右表所示的輸入條件及相應的測試用例。

image


免責聲明!

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



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