1 黑盒測試之邊界值測試概要課件_第1頁
1 黑盒測試之邊界值測試概要課件_第2頁
1 黑盒測試之邊界值測試概要課件_第3頁
1 黑盒測試之邊界值測試概要課件_第4頁
1 黑盒測試之邊界值測試概要課件_第5頁
已閱讀5頁,還剩99頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第4章黑盒測試第4章黑盒測試4.1邊界值測試4.2等價類測試4.3基于判定表的測試4.4因果圖4.5其他黑盒測試方法4.6綜合案例4.7本章小結第4章黑盒測試第4章黑盒測試4.1常用測試技術常用測試技術黑盒測試方法是在程序接口上進行測試,主要是為了發現以下錯誤:是否有不正確或遺漏了的功能?在接口上,輸入能否正確地接受?能否輸出正確的結果?是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤?性能上是否能夠滿足要求?是否有初始化或終止性錯誤?黑盒測試方法是在程序接口上進行測試,主要是為了發現以下錯不深入代碼細節的測試方法稱為黑盒測試。軟件測試員充當客戶來使用。軟件輸入輸出黑盒測試(Blackboxtesting)也稱功能測試或數據驅動測試,它是已知產品所應具有的功能,通過測試來檢測每個功能是否都正常使用。黑盒測試—戴上眼罩測試軟件這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求規格說明書,檢查程序的功能是否符合它的功能說明。不深入代碼細節的測試方法稱為黑盒測試。軟件輸入輸出黑盒測試(黑盒測試技術概述黑盒測試技術概述黑盒測試過程黑盒測試過程例:測試計算器的功能例:測試計算器的功能黑盒測試的特點黑盒測試的特點黑盒測試的優缺點黑盒測試的優缺點第4章1黑盒測試之邊界值測試概要課件黑盒測試的難點黑盒測試的難點測試內點測試外點被測試子域邊界值分析法軟件邊界與懸崖很類似測試內點測試外點被測試邊界值分析法軟件邊界與懸崖很類似 4.1邊?界?值?測?試

任何一個程序都可以看做是一個函數,程序的輸入構成函數的定義域,程序的輸出構成函數的值域。人們從長期的測試工作經驗得知,大量的錯誤是發生在定義域或值域(輸出)的邊界上,而不是在其內部。對于軟件缺陷,有句諺語形容得很恰當,即“缺陷遺漏在角落里,聚集在邊界上”。

4.1邊?界?值?測?試

任何一個程序都可以看比如,在做三角形計算時,要輸入三角形的三個邊長A、B和C。這三個數值應當滿足A>0、B>0、C>0、A+B>C、A+C>B、B+C>A,才能構成三角形。但如果把六個不等式中的任何一個大于號“>”錯寫成大于等于號“≥”,那就不能構成三角形。問題常常出現在容易被疏忽的邊界附近。類似的例子還有很多,如計數器常常“少記一次”;循環條件應該是“≤”時錯誤地寫成了“<”;數組下標越界(在C語言中數組下標是從零開始,可能錯誤地認為是從1開始,從而使最后一個元素的下標越界)等。

邊界值分析關注的是輸入空間的邊界,從中標識測試用例。邊界值測試背后的基本原理是錯誤更可能出現在輸入變量的極值附近。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。

比如,在做三角形計算時,要輸入三角形的三個邊長A、B和C邊界值設計原則(1)如果輸入條件規定了值的范圍,則應取剛達到這個范圍的邊界的值,以及剛剛超越這個范圍邊界的值作為測試輸入數據。例如,如果程序的規格說明中規定:“重量在10公斤至50公斤范圍內的郵件,其郵費計算公式為…

”。作為測試用例,我們應取10及50,還應取10.01,49.99,9.99及50.01等。邊界值設計原則(1)如果輸入條件規定了值的范圍,則應取剛達(2)如果輸入條件規定了值的個數,則用最大個數、最小個數、比最小個數少一、比最大個數多一的數作為測試數據。例如,一個輸入文件應包括1-255個記錄,則測試用例可取1和255,還應取0及256等。(2)如果輸入條件規定了值的個數,則用最大個數、最(3)將規則1和2應用于輸出條件,即設計測試用例使輸出值達到邊界值及其左右的值。例如,一程序屬于情報檢索系統,要求每次”最少顯示1條、最多顯示4條情報摘要”,這時我們應考慮的測試用例包括1和4,還應包括0和5等。再如,一個學生成績管理系統規定,只能查詢95-98級大學生的各科成績,可以設計測試用例,使得查詢范圍內的某一屆或四屆學生的學生成績,還需設計查詢94級、99級學生成績的測試用例(不合理輸出等價類)。(3)將規則1和2應用于輸出條件,即設計測試用例使(4)如果程序的規格說明給出的輸入域或輸出域是有序集合(如順序文件、線性表等),則應選取集合的第一個元素和最后一個元素作為測試用例。

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

例如,如果程序中定義了一個數組,其元素下標的下界是0,上界是100,那么應選擇達到這個數組下標邊界的值,如0與100,作為測試用例。(6)分析規格說明,找出其他可能的邊界條件。(4)如果程序的規格說明給出的輸入域或輸出域是有序集合(如順常見的邊界值常見的邊界值4.1.1邊界條件

邊界條件就是一些特殊情況。一般的,在條件C下,軟件執行一種操作,對任意小的值σ,條件C+σ或C-σ會執行另外的操作,則C就是一個邊界。

在多數情況下,邊界條件是基于應用程序的功能設計而需要考慮的因素,可以從軟件的規格說明或常識中得到。比如程序要對學生成績進行處理,要求輸入數據的范圍是[0,100],則很明顯輸入條件的邊界是0和100。

然而,在測試用例設計過程中,某些邊界條件是不需要呈現給用戶的,或者說用戶是很難注意到的,但同時確實屬于檢驗范疇內的邊界條件,稱為內部邊界條件或次邊界條件。

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

4.1.1邊界條件

邊界條件就是一些特殊情況。一般的1.數值的邊界值

計算機是基于二進制進行工作的,因此,軟件的任何數值運算都有一定的范圍限制。比如一個字節由8位組成,一個字節所能表達的數值范圍是[0,255]。表4-1-1列出了計算機中常用數值的范圍。

1.數值的邊界值

計算機是基于二進制進行工作的,因此第4章1黑盒測試之邊界值測試概要課件2.字符的邊界值

在計算機軟件中,字符也是很重要的表示元素。其中ASCII和Unicode是常見的編碼方式。表4-1-2中列出了一些常用字符對應的ASCII碼值。如果要測試文本輸入或文本轉換的軟件,在定義數據區間包含哪些值時,就可以參考ASCII碼表,找出隱含的邊界條件。

2.字符的邊界值

在計算機軟件中,字符也是很重要的表第4章1黑盒測試之邊界值測試概要課件3.其他邊界條件

有一些邊界條件容易被人忽略,比如在文本框中不是沒有輸入正確的信息,而是根本就沒有輸入任何內容,然后就按“確認”按鈕。這種情況常常被遺忘或忽視了,但在實際使用中卻時常發生。因此在測試時還需要考慮程序對默認值、空白、空值、零值、無輸入等情況的反應。

在進行邊界值測試時,如何確定邊界條件的取值呢?一般情況下,確定邊界值應遵循以下幾條原則:

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

3.其他邊界條件

有一些邊界條件容易被人忽略,比如在(2)如果輸入條件規定了值的個數,則用最大個數、最小個數、比最小個數少一、比最大個數多一的數作為測試數據。

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

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

(5)分析規格說明,找出其他可能的邊界條件。

(2)如果輸入條件規定了值的個數,則用最大個數、最小個4.1.2邊界值分析

為便于理解,以下討論涉及兩個輸入變量x1和x2的函數F。假設x1和x2分別在下列范圍內取值:a≤x1≤b;c≤x2≤d。

函數F的輸入空間如圖4-1-1所示。矩形陰影中的任何一點都是函數F的有效輸入。4.1.2邊界值分析

為便于理解,以下討論涉及兩個輸圖4-1-1兩個變量函數的輸入域

圖4-1-1兩個變量函數的輸入域

邊界值分析的基本思想是使用輸入變量的最小值、略大于最小值、正常值、略小于最大值和最大值設計測試用例。通常我們用min、min+、nom、max-和max來表示。

當一個函數或程序有兩個及兩個以上的輸入變量時,就需要考慮如何組合各變量的取值。我們可根據可靠性理論中的單缺陷假設和多缺陷假設來考慮。邊界值分析的基本思想是使用輸入變量的最小值、略大于最小值

單缺陷假設,即被測對象只要在某個輸入條件的某個邊界出錯,則在任何包含改輸入條件的某個邊界的情況下一定會出錯,那么測試時僅覆蓋輸入條件的單個邊界點即可,無需測試多個輸入條件取邊界測試數據的情況。因此,單缺陷假設的策略是在任何一個測試用例中,有且只能有一個輸入條件的取值為邊界鄰域內的測試數據,其他輸入條件應取正常值(一般為相鄰邊界點之間的中值)。 單缺陷假設,即被測對象只要在某個輸入條件的某個邊界出錯,則

單缺陷假設是指“失效極少是由兩個或兩個以上的缺陷同時發生引起的”。依據單缺陷假設來設計測試用例,只讓一個變量取邊界值,其余變量取正常值。多缺陷假設是指“失效是由兩個或兩個以上缺陷同時作用引起的”。因此依據多缺陷假設來設計測試用例,要求在選取測試用例時同時讓多個變量取邊界值。單缺陷假設是指“失效極少是由兩個或兩個以上的缺陷同時發生引

在邊界值分析中,用到了單缺陷假設,即選取測試用例時僅僅使得一個變量取極值,其他變量均取正常值。對于有兩個輸入變量的程序P,其邊界值分析的測試用例如下:

{<x1nom,x2min>,<x1nom,x2min+>,<x1nom,x2nom>,<x1nom,x2max->,<x1nom,x2max>,<x1min,x2nom>,<x1min+,x2nom>,<x1max-,x2nom>,<x1max,x2nom>}

對于有兩個輸入變量的程序P,其邊界值分析的測試用例在圖中的位置如圖4-1-2所示。在邊界值分析中,用到了單缺陷假設,即選取測試用例時僅僅使圖4-1-2兩個變量函數的邊界值分析圖4-1-2兩個變量函數的邊界值分析

例如,有一個二元函數f(x,y),要求輸入變量x,y分別滿足:x∈[1,12],y∈[1,31]。采用邊界值分析法設計測試用例,可以選擇下面一組測試數據:{<1,15>,<2,15>,<11,15>,<12,15>,<6,15>,<6,1>,<6,2>,<6,30>,<6,31>}。

對于一個含有n個輸入變量的程序,使除一個以外的所有變量取正常值,剩余的一個變量依次取最小值、略大于最小值、正常值、略小于最大值和最大值,并對每個變量重復進行。因此,對于有n個輸入變量的程序,邊界值分析會產生4n+1個測試用例。例如,有一個二元函數f(x,y),要求輸入變量x,y分別

例如,有一個三元函數f(x,y,z),其中x∈[0,100],y∈[1,12],z∈[1,31],對該函數采用邊界值分析法設計的測試用例將會得到13個測試用例,根據邊界分析的原理,可得到下列測試數據:{<50,6,1>,<50,6,2>,<50,6,30>,<50,6,31>,<50,1,15>,<50,2,15>,<50,11,15>,<50,12,15>,<0,6,15>,<1,6,15>,<99,6,15>,<100,6,15>,<50,6,15>}。

例如,有一個三元函數f(x,y,z),其中x∈[0,舉例:三角形問題舉例:三角形問題邊界值分析優缺點邊界值分析優缺點4.1.3健壯性邊界測試

健壯性是指在異常情況下,軟件還能正常運行的能力。健壯性可衡量軟件對于規范要求以外的輸入情況的處理能力。所謂健壯的系統,是指對于規范要求以外的輸入能夠判斷出這個輸入不符合規范要求,并能有合理的處理方式的系統。軟件設計的健壯與否直接反映了分析設計和編碼人員的水平。

健壯性邊界測試是邊界值分析的一種簡單擴展。在使用該方法設計測試用例時,既要考慮有效輸入,又要考慮無效的輸入。除了按照邊界值分析方法選取的五個取值(min、min+、nom、max-、max)外,還要選取略小于最小值(min-)和略大于最大值(max+)的取值,以觀察輸入變量超過邊界時程序會有什么表現。對于有兩個變量的程序P,其健壯性測試的測試用例如圖4-1-3所示。4.1.3健壯性邊界測試

健壯性是指在異常情況下,軟圖4-1-3兩個變量函數的健壯性測試用例

圖4-1-3兩個變量函數的健壯性測試用例對于一個含有n個輸入變量的程序,進行健壯性邊界測試時,使除一個以外的所有變量取正常值,使剩余的那個變量依次取略小于最小值、最小值、略大于最小值、正常值、略小于最大值、最大值和略大于最大值,并對每個變量重復進行。因此其健壯性測試會產生6n+1個測試用例。

對于一個含有n個輸入變量的程序,進行健壯性邊界測試時,使例如,有一個二元函數f(x,y),要求輸入變量x,y分別滿足:x∈[0,100],y∈[1000,3000],對其進行健壯性測試,則需要設計13個測試用例。根據健壯性測試的原理,可以得到下面一組測試數據:{<-1,1500>,<0,1500>,<1,1500>,<50,1500>,<99,1500>,<100,1500>,<101,1500>,<50,999>,<50,1000>,<50,1001>,<50,2999>,<50,3000>,<50,3001>}。

健壯性測試最關心的是預期的輸出,而不是輸入。健壯性測試的最大價值在于觀察處理異常情況,它是檢測軟件系統容錯性的重要手段。

例如,有一個二元函數f(x,y),要求輸入變量x,y分別4.1.5案例

1.三角形問題

輸入三個整數a、b、c,分別作為三角形的三條邊,通過程序判斷這三條邊是否能構成三角形。如果能構成三角形,則判斷三角形的類型(等邊三角形、等腰三角形、一般三角形)。要求輸入三個整數a、b、c,必須滿足以下條件:1≤a≤100;1≤b≤100;1≤c≤100。請用邊界值分析法設計測試用例。4.1.5案例

1.三角形問題

輸入三個整數a

用邊界值分析法設計測試用例,按照下列步驟進行:

1)分析各變量取值

邊界值分析的基本思想是使用輸入變量的最小值、略大于最小值、正常值、略小于最大值和最大值設計測試用例。因此a、b、c的邊界取值是:1、2、50、99、100。

2)測試用例數

有n個變量的程序,其邊界值分析會產生4n+1個測試用例。這里有3個變量,因此會產生13個測試用例。

用邊界值分析法設計測試用例,按照下列步驟進行:

1)3)設計測試用例

用邊界值分析法設計測試用例就是使一個變量取邊界值(分別取最小值、略大于最小值、正常值、略小于最大值和最大值),其余變量取正常值,然后對每個變量重復進行。本例用邊界值分析法設計的測試用例見表4-1-3。

3)設計測試用例

用邊界值分析法設計測試用例就是使第4章1黑盒測試之邊界值測試概要課件

2.NextDate函數

程序有三個輸入變量month、day、year(month、day和year均為整數值,并且滿足條件:1≤month≤12、1≤day≤31,1900≤year≤2050),分別作為輸入日期的月份、日、年份,通過程序可以輸出該輸入日期在日歷上下一天的日期。例如,輸入為2005年11月29日,則該程序的輸出為2005年11月30日。請用健壯性測試法設計測試用例。

2.NextDate函數

程序有三個輸入變量mont

用健壯性測試法設計測試用例,按照下列步驟進行:

1)分析各變量的取值

健壯性測試時,各變量分別取:略小于最小值、最小值、略大于最小值、正常值、略小于最大值、最大值和略大于最大值。

month取-1,1,2,6,11,12,13。

day取-1,1,2,15,30,31,32。

year取1899,1900,1901,1975,2049,2050,2051。

用健壯性測試法設計測試用例,按照下列步驟進行:

1)

2)測試用例數

有n個變量的程序,其邊界值分析會產生6n+1個測試用例。這里有3個變量,因此會產生19個測試用例。

3)設計測試用例

設計測試用例見表4-1-4。2)測試用例數

有n個變量的程序,其邊界值分析會產第4章1黑盒測試之邊界值測試概要課件不難看出,有大量測試用例涉及簡單日期計算和無效日期處理,冗余較為嚴重,其閏月的情況

(2月月末的日期)完全沒有測試到,肯定存在漏洞。然而,邊界值測試關注的是邊界,只能以最少的測試用例保證覆蓋所有可能的邊界,就不應視作冗余和漏洞,而從特殊值值的角度所觀察到的冗余和漏洞在等價類測試和基于決策表的測試中將通過等價劃分及相似用例的合并策略來予以避免。不難看出,有大量測試用例涉及簡單日期計算和無效日期NextDate函數的復雜性來源于兩個方面:一是輸入域的復雜性(即輸入變量之間邏輯關系的復雜性);二是確定閏年的規則。但是在進行健壯性測試時,沒有考慮輸入變量之間的邏輯關系,也沒有考慮和閏年相關的問題,因此在設計測試用例時存在遺漏問題,比如判斷閏年相關的日期:2008.2.29、1999.2.28等。

NextDate函數的復雜性來源于兩個方面:一是輸第4章1黑盒測試之邊界值測試概要課件第4章黑盒測試第4章黑盒測試4.1邊界值測試4.2等價類測試4.3基于判定表的測試4.4因果圖4.5其他黑盒測試方法4.6綜合案例4.7本章小結第4章黑盒測試第4章黑盒測試4.1常用測試技術常用測試技術黑盒測試方法是在程序接口上進行測試,主要是為了發現以下錯誤:是否有不正確或遺漏了的功能?在接口上,輸入能否正確地接受?能否輸出正確的結果?是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤?性能上是否能夠滿足要求?是否有初始化或終止性錯誤?黑盒測試方法是在程序接口上進行測試,主要是為了發現以下錯不深入代碼細節的測試方法稱為黑盒測試。軟件測試員充當客戶來使用。軟件輸入輸出黑盒測試(Blackboxtesting)也稱功能測試或數據驅動測試,它是已知產品所應具有的功能,通過測試來檢測每個功能是否都正常使用。黑盒測試—戴上眼罩測試軟件這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求規格說明書,檢查程序的功能是否符合它的功能說明。不深入代碼細節的測試方法稱為黑盒測試。軟件輸入輸出黑盒測試(黑盒測試技術概述黑盒測試技術概述黑盒測試過程黑盒測試過程例:測試計算器的功能例:測試計算器的功能黑盒測試的特點黑盒測試的特點黑盒測試的優缺點黑盒測試的優缺點第4章1黑盒測試之邊界值測試概要課件黑盒測試的難點黑盒測試的難點測試內點測試外點被測試子域邊界值分析法軟件邊界與懸崖很類似測試內點測試外點被測試邊界值分析法軟件邊界與懸崖很類似 4.1邊?界?值?測?試

任何一個程序都可以看做是一個函數,程序的輸入構成函數的定義域,程序的輸出構成函數的值域。人們從長期的測試工作經驗得知,大量的錯誤是發生在定義域或值域(輸出)的邊界上,而不是在其內部。對于軟件缺陷,有句諺語形容得很恰當,即“缺陷遺漏在角落里,聚集在邊界上”。

4.1邊?界?值?測?試

任何一個程序都可以看比如,在做三角形計算時,要輸入三角形的三個邊長A、B和C。這三個數值應當滿足A>0、B>0、C>0、A+B>C、A+C>B、B+C>A,才能構成三角形。但如果把六個不等式中的任何一個大于號“>”錯寫成大于等于號“≥”,那就不能構成三角形。問題常常出現在容易被疏忽的邊界附近。類似的例子還有很多,如計數器常常“少記一次”;循環條件應該是“≤”時錯誤地寫成了“<”;數組下標越界(在C語言中數組下標是從零開始,可能錯誤地認為是從1開始,從而使最后一個元素的下標越界)等。

邊界值分析關注的是輸入空間的邊界,從中標識測試用例。邊界值測試背后的基本原理是錯誤更可能出現在輸入變量的極值附近。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。

比如,在做三角形計算時,要輸入三角形的三個邊長A、B和C邊界值設計原則(1)如果輸入條件規定了值的范圍,則應取剛達到這個范圍的邊界的值,以及剛剛超越這個范圍邊界的值作為測試輸入數據。例如,如果程序的規格說明中規定:“重量在10公斤至50公斤范圍內的郵件,其郵費計算公式為…

”。作為測試用例,我們應取10及50,還應取10.01,49.99,9.99及50.01等。邊界值設計原則(1)如果輸入條件規定了值的范圍,則應取剛達(2)如果輸入條件規定了值的個數,則用最大個數、最小個數、比最小個數少一、比最大個數多一的數作為測試數據。例如,一個輸入文件應包括1-255個記錄,則測試用例可取1和255,還應取0及256等。(2)如果輸入條件規定了值的個數,則用最大個數、最(3)將規則1和2應用于輸出條件,即設計測試用例使輸出值達到邊界值及其左右的值。例如,一程序屬于情報檢索系統,要求每次”最少顯示1條、最多顯示4條情報摘要”,這時我們應考慮的測試用例包括1和4,還應包括0和5等。再如,一個學生成績管理系統規定,只能查詢95-98級大學生的各科成績,可以設計測試用例,使得查詢范圍內的某一屆或四屆學生的學生成績,還需設計查詢94級、99級學生成績的測試用例(不合理輸出等價類)。(3)將規則1和2應用于輸出條件,即設計測試用例使(4)如果程序的規格說明給出的輸入域或輸出域是有序集合(如順序文件、線性表等),則應選取集合的第一個元素和最后一個元素作為測試用例。

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

例如,如果程序中定義了一個數組,其元素下標的下界是0,上界是100,那么應選擇達到這個數組下標邊界的值,如0與100,作為測試用例。(6)分析規格說明,找出其他可能的邊界條件。(4)如果程序的規格說明給出的輸入域或輸出域是有序集合(如順常見的邊界值常見的邊界值4.1.1邊界條件

邊界條件就是一些特殊情況。一般的,在條件C下,軟件執行一種操作,對任意小的值σ,條件C+σ或C-σ會執行另外的操作,則C就是一個邊界。

在多數情況下,邊界條件是基于應用程序的功能設計而需要考慮的因素,可以從軟件的規格說明或常識中得到。比如程序要對學生成績進行處理,要求輸入數據的范圍是[0,100],則很明顯輸入條件的邊界是0和100。

然而,在測試用例設計過程中,某些邊界條件是不需要呈現給用戶的,或者說用戶是很難注意到的,但同時確實屬于檢驗范疇內的邊界條件,稱為內部邊界條件或次邊界條件。

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

4.1.1邊界條件

邊界條件就是一些特殊情況。一般的1.數值的邊界值

計算機是基于二進制進行工作的,因此,軟件的任何數值運算都有一定的范圍限制。比如一個字節由8位組成,一個字節所能表達的數值范圍是[0,255]。表4-1-1列出了計算機中常用數值的范圍。

1.數值的邊界值

計算機是基于二進制進行工作的,因此第4章1黑盒測試之邊界值測試概要課件2.字符的邊界值

在計算機軟件中,字符也是很重要的表示元素。其中ASCII和Unicode是常見的編碼方式。表4-1-2中列出了一些常用字符對應的ASCII碼值。如果要測試文本輸入或文本轉換的軟件,在定義數據區間包含哪些值時,就可以參考ASCII碼表,找出隱含的邊界條件。

2.字符的邊界值

在計算機軟件中,字符也是很重要的表第4章1黑盒測試之邊界值測試概要課件3.其他邊界條件

有一些邊界條件容易被人忽略,比如在文本框中不是沒有輸入正確的信息,而是根本就沒有輸入任何內容,然后就按“確認”按鈕。這種情況常常被遺忘或忽視了,但在實際使用中卻時常發生。因此在測試時還需要考慮程序對默認值、空白、空值、零值、無輸入等情況的反應。

在進行邊界值測試時,如何確定邊界條件的取值呢?一般情況下,確定邊界值應遵循以下幾條原則:

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

3.其他邊界條件

有一些邊界條件容易被人忽略,比如在(2)如果輸入條件規定了值的個數,則用最大個數、最小個數、比最小個數少一、比最大個數多一的數作為測試數據。

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

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

(5)分析規格說明,找出其他可能的邊界條件。

(2)如果輸入條件規定了值的個數,則用最大個數、最小個4.1.2邊界值分析

為便于理解,以下討論涉及兩個輸入變量x1和x2的函數F。假設x1和x2分別在下列范圍內取值:a≤x1≤b;c≤x2≤d。

函數F的輸入空間如圖4-1-1所示。矩形陰影中的任何一點都是函數F的有效輸入。4.1.2邊界值分析

為便于理解,以下討論涉及兩個輸圖4-1-1兩個變量函數的輸入域

圖4-1-1兩個變量函數的輸入域

邊界值分析的基本思想是使用輸入變量的最小值、略大于最小值、正常值、略小于最大值和最大值設計測試用例。通常我們用min、min+、nom、max-和max來表示。

當一個函數或程序有兩個及兩個以上的輸入變量時,就需要考慮如何組合各變量的取值。我們可根據可靠性理論中的單缺陷假設和多缺陷假設來考慮。邊界值分析的基本思想是使用輸入變量的最小值、略大于最小值

單缺陷假設,即被測對象只要在某個輸入條件的某個邊界出錯,則在任何包含改輸入條件的某個邊界的情況下一定會出錯,那么測試時僅覆蓋輸入條件的單個邊界點即可,無需測試多個輸入條件取邊界測試數據的情況。因此,單缺陷假設的策略是在任何一個測試用例中,有且只能有一個輸入條件的取值為邊界鄰域內的測試數據,其他輸入條件應取正常值(一般為相鄰邊界點之間的中值)。 單缺陷假設,即被測對象只要在某個輸入條件的某個邊界出錯,則

單缺陷假設是指“失效極少是由兩個或兩個以上的缺陷同時發生引起的”。依據單缺陷假設來設計測試用例,只讓一個變量取邊界值,其余變量取正常值。多缺陷假設是指“失效是由兩個或兩個以上缺陷同時作用引起的”。因此依據多缺陷假設來設計測試用例,要求在選取測試用例時同時讓多個變量取邊界值。單缺陷假設是指“失效極少是由兩個或兩個以上的缺陷同時發生引

在邊界值分析中,用到了單缺陷假設,即選取測試用例時僅僅使得一個變量取極值,其他變量均取正常值。對于有兩個輸入變量的程序P,其邊界值分析的測試用例如下:

{<x1nom,x2min>,<x1nom,x2min+>,<x1nom,x2nom>,<x1nom,x2max->,<x1nom,x2max>,<x1min,x2nom>,<x1min+,x2nom>,<x1max-,x2nom>,<x1max,x2nom>}

對于有兩個輸入變量的程序P,其邊界值分析的測試用例在圖中的位置如圖4-1-2所示。在邊界值分析中,用到了單缺陷假設,即選取測試用例時僅僅使圖4-1-2兩個變量函數的邊界值分析圖4-1-2兩個變量函數的邊界值分析

例如,有一個二元函數f(x,y),要求輸入變量x,y分別滿足:x∈[1,12],y∈[1,31]。采用邊界值分析法設計測試用例,可以選擇下面一組測試數據:{<1,15>,<2,15>,<11,15>,<12,15>,<6,15>,<6,1>,<6,2>,<6,30>,<6,31>}。

對于一個含有n個輸入變量的程序,使除一個以外的所有變量取正常值,剩余的一個變量依次取最小值、略大于最小值、正常值、略小于最大值和最大值,并對每個變量重復進行。因此,對于有n個輸入變量的程序,邊界值分析會產生4n+1個測試用例。例如,有一個二元函數f(x,y),要求輸入變量x,y分別

例如,有一個三元函數f(x,y,z),其中x∈[0,100],y∈[1,12],z∈[1,31],對該函數采用邊界值分析法設計的測試用例將會得到13個測試用例,根據邊界分析的原理,可得到下列測試數據:{<50,6,1>,<50,6,2>,<50,6,30>,<50,6,31>,<50,1,15>,<50,2,15>,<50,11,15>,<50,12,15>,<0,6,15>,<1,6,15>,<99,6,15>,<100,6,15>,<50,6,15>}。

例如,有一個三元函數f(x,y,z),其中x∈[0,舉例:三角形問題舉例:三角形問題邊界值分析優缺點邊界值分析優缺點4.1.3健壯性邊界測試

健壯性是指在異常情況下,軟件還能正常運行的能力。健壯性可衡量軟件對于規范要求以外的輸入情況的處理能力。所謂健壯的系統,是指對于規范要求以外的輸入能夠判斷出這個輸入不符合規范要求,并能有合理的處理方式的系統。軟件設計的健壯與否直接反映了分析設計和編碼人員的水平。

健壯性邊界測試是邊界值分析的一種簡單擴展。在使用該方法設計測試用例時,既要考慮有效輸入,又要考慮無效的輸入。除了按照邊界值分析方法選取的五個取值(min、min+、nom、max-、max)外,還要選取略小于最小值(min-)和略大于最大值(max+)的取值,以觀察輸入變量超過邊界時程序會有什么表現。對于有兩個變量的程序P,其健壯性測試的測試用例如圖4-1-3所示。4.1.3健壯性邊界測試

健壯性是指在異常情況下,軟圖4-1-3兩個變量函數的健壯性測試用例

圖4-1-3兩個變量函數的健壯性測試用例對于一個含有n個輸入變量的程序,進行健壯性邊界測試時,使除一個以外的所有變量取正常值,使剩余的那個變量依次取略小于最小值、最小值、略大于最小值、正常值、略小于最大值、最大值和略大于最大值,并對每個變量重復進行。因此其健壯性測試會產生6n+1個測試用例。

對于一個含有n個輸入變量的程序,進行健壯性邊界測試時,使例如,有一個二元函數f(x,y),要求輸入變量x,y分別滿足:x∈[0,100],y∈[1000,3000],對其進行健壯性測試,則需要設計13個測試用例。根據健壯性測試的原理,可以得到下面一組測試數據:{<-1,1500>,<0,1500>,<1,1500>,<50,1500>,<99,1500>,<100,1500>,<101,1500>,<50,999>,<50,1000>,<50,1001>,<50,2999>,<50,3000>,<50,3001>}。

健壯性測試最關心的是預期的輸出,而不是輸入。健壯性測試的最大價值在于觀察處理異常情況,它是檢測軟件系統容錯性的重要手段。

例如,有一個二元函數f(x,y),要求輸入變量x,y分別4.1.5案例

1.三角形問題

輸入三個整數a、b、c,分別作為三角形的三條邊,通過程序判斷這三條邊是否能構成三角形。如果能構成三角形,則判斷三角形的類型(等邊三角形、等腰三角形、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論