軟件測試與質(zhì)量保證課件 第7章 黑盒測試方法_第1頁
軟件測試與質(zhì)量保證課件 第7章 黑盒測試方法_第2頁
軟件測試與質(zhì)量保證課件 第7章 黑盒測試方法_第3頁
軟件測試與質(zhì)量保證課件 第7章 黑盒測試方法_第4頁
軟件測試與質(zhì)量保證課件 第7章 黑盒測試方法_第5頁
已閱讀5頁,還剩127頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第7章黑盒測試方法

軟件測試與質(zhì)量保證本章內(nèi)容黑盒測試技術(shù)概述等價類劃分邊界值分析決策表法因果圖法正交實驗法2軟件測試方法3軟件測試方法白盒測試靜態(tài)測試其他動態(tài)測試按是否運行系統(tǒng)劃分按是否查看源代碼劃分隨機測試黑盒測試冒煙測試回歸測試等價類劃分法錯誤推測法因果圖法邊界值分析法組合分析法手工測試自動化測試按是否使用自動化工具劃分邏輯覆蓋法基本路徑測試法黑盒測試技術(shù)黑盒測試,也稱為功能測試或基于規(guī)格說明書的測試。黑盒測試的思想——著眼于外部特征,不管內(nèi)部實現(xiàn)。需求規(guī)格說明書是黑盒測試的主要輸入。4黑盒測試技術(shù)黑盒測試的目的,主要是為發(fā)現(xiàn)以下幾種類型的錯誤:軟件功能能不能按照需求規(guī)格說明書的規(guī)定正常工作或有功能遺漏;數(shù)據(jù)結(jié)構(gòu)和外部數(shù)據(jù)庫訪問錯誤;性能上的錯誤,如兼容性、效率等方面的問題;人機交互錯誤(界面問題)等;程序初始化和終止方面的錯誤等。5黑盒測試的原理黑盒測試的原理如下圖所示:6被測單元輸入接口輸出接口驅(qū)動程序/測試員樁模塊A樁模塊B調(diào)用返回調(diào)用返回獲取輸出數(shù)據(jù)輸入測試數(shù)據(jù)有效的黑盒測試數(shù)據(jù)7正常數(shù)據(jù)——在用戶需求范圍內(nèi)的、具有代表性的測試數(shù)據(jù),目的是檢驗系統(tǒng)的正常處理功能如何邊緣數(shù)據(jù)——界于正常數(shù)據(jù)和錯誤數(shù)據(jù)之間的數(shù)據(jù),目的是檢驗系統(tǒng)處理能力的極限情況。錯誤數(shù)據(jù)——與系統(tǒng)輸入規(guī)范不符的數(shù)據(jù),以及凡是可能引發(fā)異常的數(shù)據(jù),目的是檢測輸入篩選、錯誤處理等程序分支黑盒測試的優(yōu)點黑盒測試與軟件如何實現(xiàn)無關(guān),如果實現(xiàn)發(fā)生變化,黑盒測試用例仍然可用(可重用性,面向回歸測試)例如:一模塊實現(xiàn)對學(xué)生考試成績的排序可以使用冒泡法排序、交換法排序、或者....用例設(shè)計可以與軟件的實現(xiàn)同時進行,加快了軟件測試與開發(fā)的速度8黑盒測試的缺點只能找到缺陷,難以查找錯誤的具體原因。沒有清晰的需求規(guī)格說明書,測試用例很難被設(shè)計。相比白盒測試,測試用例產(chǎn)生遺漏或冗余的可能性大大增加9黑盒測試的特點從理論上講,黑盒測試只有采用窮舉法輸入測試,把所有可能的輸入都作為測試情況考慮,才能查出所有的錯誤。實際上測試情況是無窮多的,完全測試是不可能的?!锻昝罍y試》中weinberg舉了一個權(quán)限驗證開后門的例子。假如你是某系統(tǒng)的開發(fā)人員,為維測方便,在程序中加了一個后門,比如當(dāng)輸入:z+10空格+l+10個空格+l+10個空格、再重復(fù)10次,無論密碼是什么,均可以成功進入。那么我們?nèi)绾卧O(shè)計黑盒測試用例滿足“最盡可能少的測試用例去發(fā)現(xiàn)盡可能多的軟件缺陷”呢?10黑盒測試用例設(shè)計方法包括:等價類劃分法邊界值分析法因果圖法基于決策表的測試法功能圖法判定表組成法正交實驗設(shè)計法......11本章內(nèi)容黑盒測試技術(shù)概述等價類劃分邊界值分析決策表法因果圖法正交實驗法12等價類測試等價類的思想:物以類聚人以群分歸納抽象總結(jié)13等價類測試我們希望進行完備的測試.同時又希望避免冗余。許多測試用例表明,大量冗余和嚴(yán)重漏洞并存。等價類劃分法的意圖,是將不能窮舉的測試過程進行合理分類,以設(shè)計出來具有完整性和代表性的測試用例。例如,設(shè)計一個判斷等邊三角形的測試用例:如果選擇三元組(5,5,5)作為輸入,就沒有必要再設(shè)置諸如(6,6,6)和(100,100,100)這樣的測試用例了對于發(fā)現(xiàn)程序中的故障來說,等價類中的每個元素是等效的。14什么是等價類?如何設(shè)計測試輸入數(shù)據(jù),有兩個條件非常重要:整個數(shù)據(jù)的集合,必須具有形式上的正確性和完備性;不同的數(shù)據(jù)子集,必須互不相交(形式上無冗余性)。符合這樣條件的集合就是等價類。等價類測試的思想,就是通過每個等價類中的一個或有限個元素設(shè)計測試用例。所有等價類的并集對應(yīng)整個輸入域-----提供完備性等價類的互不相交-----保證無冗余性15等價類劃分法的過程在等價類劃分法設(shè)計測試用例的過程中,需要使用兩個過程:分類和抽象。分類:將輸入(出)域按照相同特性或者類似功能進行分類,即把所有可能的輸入數(shù)據(jù),按照輸入域劃分成若干部分(子集)。抽象:在各個子類中抽象出相同特性并用實例來表征這個特性。這樣,就可以從每一個子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例。16有效等價類與無效等價類有效等價類和無效等價類定義如下:有效等價類——滿足需求規(guī)格說明中的約束,即有效的、有意義的輸入數(shù)據(jù)所構(gòu)成的集合。得到有效等價類,就可以檢驗程序是否滿足規(guī)格說明所規(guī)定的功能和性能。無效等價類——不滿足需求規(guī)格說明中的約束,即無效的、錯誤的輸入數(shù)據(jù)構(gòu)成的集合。使用無效等價類,可以鑒別程序異常情況的處理,保障在輸入錯誤的時候能有異常保護,這樣才能保證軟件的可靠性。17常用的等價類劃分原則(1)按區(qū)間劃分如果規(guī)格說明規(guī)定了輸入條件的取值范圍或值的數(shù)量,則可以確定一個有效等價類和兩個無效等價類。例如:如果軟件規(guī)格說明“學(xué)生允許選修5到8門課……”,則一個有效等價類可取“選課5到8門”,無效等價類可取“選課不足5門”和“選課超過8門”。18你所做的系統(tǒng)中哪些功能模塊滿足按區(qū)間劃分常用的等價類劃分原則(2)按數(shù)值劃分如果規(guī)格說明規(guī)定了輸入數(shù)據(jù)的一組值(假定n個),并且程序要對每一個輸入值分別處理的情況下,可確立n個有效等價類和1個無效等價類。例:輸入條件說明學(xué)歷可為:???、本科、碩士、博士四種之一,則分別取這四個值作為四個有效等價類,另外把四種學(xué)歷之外的任何學(xué)歷作為無效等價類。19你所做的系統(tǒng)中哪些功能模塊滿足按數(shù)值劃分常用的等價類劃分原則(3)按數(shù)值集合劃分如果規(guī)格說明規(guī)定了輸入值的集合,則可以確定1個有效等價類和1個無效等價類。例如,某程序要求輸入為TOM、DICK或HARRY這些名字之一,那么定義一個有效等價類(采用有效名字之一)和一個無效等價類(采用有效名字之外的名字,如JOE)。20你所做的系統(tǒng)中哪些功能模塊滿足按數(shù)值集合劃分常用的等價類劃分原則(4)按限制條件或規(guī)則劃分如果規(guī)格說明規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則或限制條件,則可以確立1個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。例如,若某個輸入條件說明了一個必須成立的情況(如輸入數(shù)據(jù)必須是數(shù)字),則可劃分一個有效等價類(輸入數(shù)據(jù)是數(shù)字)和一個無效等價類(輸入數(shù)據(jù)為非數(shù)字)。21你所做的系統(tǒng)中哪些功能模塊滿足按限制條件或規(guī)則劃分常用的等價類劃分原則(5)細分等價類在確知已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價類進一步的劃分為更小的等價類。22輸入條件有效等價類無效等價類………………等價類表實例需求是:對用戶輸入的分?jǐn)?shù)進行評級,其中90到100為A,80-89為B,70-79為C,60-69為D,60以下為E。輸入分?jǐn)?shù)要求必須是正整數(shù)或0。根據(jù)分析得出以下等價類劃分?23輸入條件有效等價類無效等價類分?jǐn)?shù)0-5960-6970-7980-8990-100空負數(shù)大于100的數(shù)小數(shù)含字母的字符串實例如果開發(fā)一個針對未成年人心理咨詢平臺的軟件,里面有關(guān)于家庭類型的分類:家庭類型={正常家庭、單親家庭,重組家庭、隔代家庭}該分類全嗎?24函數(shù)F的功能擴展25有兩個變量x1和x2的函數(shù)F。如果函數(shù)F實現(xiàn)為一個程序,則輸入兩個變量x1和x2會有一些(可能未規(guī)定)邊界:

a≤x1≤d區(qū)間為[a,b),[b,c),[c,d]e≤x2≤g區(qū)間為[e,f),[f,g]abegcdfx1x2弱一般等價類測試弱一般等價類測試是基于單缺陷假設(shè)的;弱一般等價類測試通過使用一個測試用例中的每個等價類(區(qū)間)的一個變量實現(xiàn)。26abegcdf強一般等價類測試強一般等價類測試是基于多缺陷假設(shè)的;等價類笛卡兒積的每個元素對應(yīng)的測試用例;27abegcdf弱健壯等價類測試對于有效輸入,使用每個有效類的一個值(就像我們在所謂弱一般等價類測試中所做的一樣。)對于無效輸入,測試用例將擁有一個無效值,并保持其余的值都是有效的28abegcdf強健壯等價類測試所有等價類笛卡兒積的每個元素中獲得測試用例29abegcdf等價類劃分法示意圖30弱一般等價類測試用例強一般等價類測試用例弱健壯等價類測試用例強健壯等價類測試用例有效等價類有效等價類含無效等價類含無效等價類使用等價類設(shè)計測試用例的要點為每個等價類規(guī)定惟一的編號。設(shè)計一個新的測試用例,盡可能多地覆蓋尚未被覆蓋的有效等價類,重復(fù)這一步,直到測試用例覆蓋了所有的有效等價類。設(shè)計一個新的測試用例,使其覆蓋并且只覆蓋一個還沒有被覆蓋的無效等價類。重復(fù)這一步,直至測試用例覆蓋了所有的無效等價類。31編號操作數(shù)取值所屬等價類11—100之間的整數(shù)有效等價類2小于1的整數(shù)無效等價類13大于100的整數(shù)無效等價類24小數(shù)無效等價類35字母或漢字無效等價類46特殊字符無效等價類57空格無效等價類68空值無效等價類71個有效等價類、7個無效等價類等價類測試用例設(shè)計示例測試一個加法器。約束:兩個操作數(shù)的取值范圍是1—100的整數(shù)。32思考:該測試用例全面嗎?不全面。無效等價類沒有被全部覆蓋到。編號操作數(shù)1操作數(shù)2預(yù)期結(jié)果所屬等價類134043有效等價類20-1提示出錯無效等價類13102123提示出錯無效等價類2表加法器測試用例1分析:還有多少無效等價類?見下表:加法器的有效等價類和無效等價類編號操作數(shù)取值所屬等價類11—100之間的整數(shù)有效等價類2小于1的整數(shù)無效等價類13大于100的整數(shù)無效等價類24小數(shù)無效等價類35字母或漢字無效等價類46特殊字符無效等價類57空格無效等價類68空值無效等價類7重新設(shè)計加法器的測試用例:編號操作數(shù)1操作數(shù)2預(yù)期結(jié)果所屬等價類134043有效等價類20-1提示出錯無效等價類13102123提示出錯無效等價類241.20.8提示出錯無效等價類35A好提示出錯無效等價類46¥@提示出錯無效等價類57空格空格提示出錯無效等價類68空值空值提示出錯無效等價類7表加法器測試用例2思考:“出錯信息”怎樣提示?出錯:請輸入1—100之間的整數(shù)。等價類劃分的測試運用:三角形類型假定3個輸入a、b和c在1~100之間取值,三角形問題可以更詳細地描述為:輸入3個整數(shù)a、b和c分別作為三角形的三條邊,要求a、b和c必須滿足以下條件:Con1.1≤a≤100Con2.1≤b≤100Con3.1≤c≤100Con4.a(chǎn)<b+cCon5.b<a+cCon6.c<a+b輸入三個整數(shù)a、b和c分別作為三角形的3條邊,通過程序判斷由這3條邊構(gòu)成的三角形類型是:等邊三角形、等腰三角形、一般三角形或非三角形。等價類劃分的測試運用(續(xù))程序輸出是由這3條邊構(gòu)成的三角形類型:等邊三角形、等腰三角形、一般三角形或非三角形。如果a、b和c滿足Con1、Con2和Con3,則輸出下列4種情況之一:如果不滿足條件Con4、Con5和Con6中有一個,則程序輸出為“非三角形”。如果三條邊相等,則程序輸出為“等邊三角形”。如果恰好有兩條邊相等,則程序輸出為“等腰三角形”。如果三條邊都不相等,則程序輸出為“一般三角形”。顯然,這四種情況相互排斥。輸

三個

數(shù)有效等價類編號無效等價類編號整數(shù)1一邊為非整數(shù)二邊為非整數(shù)三邊均為非整數(shù)567三個數(shù)2只有一條邊只有二條邊多余三條邊89101≤a≤1001≤b≤1001≤c≤1003一邊為零二邊為零三邊為零111213一邊

<零二邊

<零三邊

<零141516一邊

>100二邊

>100三邊

>100171819a<b+cb<a+cc<a+c4a≥b+cb≥a+cc≥a+c202122三角形問題的等價類(輸入域):測試用例Test1=(3,4,5)便可覆蓋有效等價類1-4。測試用例輸入a,b,c期望輸出覆蓋等價類Test21.5,4,5提示“請輸入1~100之間的整數(shù)”5Test33.5,2.5,5提示“請輸入1~100之間的整數(shù)”6Test42.5,4.5,5.5提示“請輸入1~100之間的整數(shù)”7Test53提示“請輸入三條邊長”8Test64,5提示“請輸入三條邊長”9Test72,3,4,5提示“請輸入三條邊長”10Test83,0,8提示“邊長不能為0”11Test90,6,0提示“邊長不能為0”12Test100,0,0提示“邊長不能為0”13Test11-3,4,6提示“邊長不能為負”14Test122,-7,-5提示“邊長不能為負”15Test13-3,-5,-7提示“邊長不能為負”16Test14101,4,8提示“請輸入1~100之間的整數(shù)”17Test153,101,101提示“請輸入1~100之間的整數(shù)”18Test16101,101,101提示“請輸入1~100之間的整數(shù)”19Test1720,4,5提示“請輸入滿足是三角形的整數(shù)”20Test184,20,5提示“請輸入滿足是三角形的整數(shù)”21Test194,5,20提示“請輸入滿足是三角形的整數(shù)”22等價類劃分的測試運用(續(xù))從輸出域定義等價類,三角形問題有四種可能輸出:等邊三角形,等腰三角形,一般三角形和非三角形。利用這些信息從輸出(值域)劃分等價類為:①R1={<a,b,c>:邊為a,b,c的等邊三角形}②R2={<a,b,c>:邊為a,b,c的等腰三角形}③R3={<a,b,c>:邊為a,b,c的一般三角形}④R4={<a,b,c>:邊a,b,c不能形成三角形}測試用例abc預(yù)期輸出Test1555等邊三角形Test2223等腰三角形Test3345一般三角形Test4412非三角形三角形問題的4個等價類測試用例課堂練習(xí):劃分系統(tǒng)的等價類并設(shè)計測試用例汽車銷售系統(tǒng)中的某款汽車價格計算的規(guī)格說明:汽車價格的起點是:基準(zhǔn)價(baseprice)減去折扣(discount),其中基準(zhǔn)價是汽車的基本價格,折扣是銷售商給予的在基準(zhǔn)價基礎(chǔ)上的價格折扣。增加特殊設(shè)備的特殊價格(specialprice)和附加設(shè)備的附加價格(extraprice)。如果選擇了3個或更多的附加設(shè)備(這些設(shè)備不包括在特殊設(shè)備中),這些附加設(shè)備可以有10%的折扣。如果選擇了5個或更多的附加設(shè)備,這些附加設(shè)備的折扣可以增加到15%。銷售商提供的折扣只針對基準(zhǔn)價,附加設(shè)備的折扣只能用在附加設(shè)備上。這些折扣不能相互疊加。下面是某編碼人員寫C函數(shù)計算總的價格。doublecalculate_price(doublebaseprice,doublespecialprice,doubleextraprice,intextras,doublediscount)40本章內(nèi)容黑盒測試技術(shù)概述等價類劃分邊界值分析決策表法因果圖法正交實驗法41邊界邊界是容易出現(xiàn)問題與爭議的區(qū)域42邊界值測試邊界值分析法(BoundaryValueAnalysis)就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。無數(shù)的測試實踐表明,大量的故障往往發(fā)生在輸入定義域或輸出值域的邊界上,而不是在其內(nèi)部。因此,針對各種邊界情況設(shè)計測試用例,通常會取得很好的測試效果。43邊界值測試軟件測試中,邊界檢驗的情況很多,常見類型:數(shù)字、字符、位置、質(zhì)量、大小、速度、方位、尺寸、空間等;這些類型的邊界值應(yīng)該在最大/最小,首位/末尾,上/下,最快/最慢,最高/最低,最短/最長,空/滿等情況下。思考:如果一個加法器可實現(xiàn)對任意int型(4字節(jié))整數(shù)的加法,考慮對其進行測試的邊界值。44邊界值測試測試人員必須對軟件特性的邊界值進行詳細的分析和測試,才能保證測試的完整性。在實際的測試中,經(jīng)常會把等價類測試法和邊界值分析法結(jié)合使用,設(shè)計測試用例。45邊界值測試邊界值分析法,是對輸入的邊界值進行測試。在測試過程中,錯誤大都發(fā)生在輸入范圍的邊界上。在測試用例設(shè)計中,需要對輸入的條件進行分析,并提取其中的邊界值,通過對這些邊界值的測試來查出更多的錯誤。46邊界值測試邊界值分析利用輸入變量的最小值(min),稍大于最小值(min+),域內(nèi)任意值(nom),稍小于最大值(max-),最大值(max)來設(shè)計測試用例。即通過使所有變量取正常值,只使一個變量分別取最小值、略高于最小值、略低于最大值和最大值47邊界值測試為便于理解邊界值,這里討論一個有兩個變量x1和x2的程序P。假設(shè)輸入變量x1和x2在下列范圍內(nèi)取值:a≤x1≤b,c≤x2≤d。48如果考慮邊界值分析,加法器(1-100的數(shù))測試用例擴展如下表。編號操作數(shù)1操作數(shù)2預(yù)期結(jié)果備注134043有效等價類2-4-1提示出錯無效等價類13106123提示出錯無效等價類241.20.8提示出錯無效等價類35A好提示出錯無效等價類46¥@提示出錯無效等價類57空格空格提示出錯無效等價類68空值空值提示出錯無效等價類79112下界10224下界加111100100200上界129999198上界減1表加法器測試用例課堂練習(xí):應(yīng)用邊界值測試設(shè)計測試用例汽車銷售系統(tǒng)中的某款汽車價格計算的規(guī)格說明:汽車價格的起點是:基準(zhǔn)價(baseprice)減去折扣(discount),其中基準(zhǔn)價是汽車的基本價格,折扣是銷售商給予的在基準(zhǔn)價基礎(chǔ)上的價格折扣。增加特殊設(shè)備的特殊價格(specialprice)和附加設(shè)備的附加價格(extraprice)。如果選擇了3個或更多的附加設(shè)備(這些設(shè)備不包括在特殊設(shè)備中),這些附加設(shè)備可以有10%的折扣。如果選擇了5個或更多的附加設(shè)備,這些附加設(shè)備的折扣可以增加到15%。銷售商提供的折扣只針對基準(zhǔn)價,附加設(shè)備的折扣只能用在附加設(shè)備上。這些折扣不能相互疊加。下面是某編碼人員寫C函數(shù)計算總的價格。doublecalculate_price(doublebaseprice,doublespecialprice,doubleextraprice,intextras,doublediscount)50附加條件:基本價格在80,000到140,000元之間特殊價格在1000到10,000元之間最多可有25個可能的附加選擇,價格在200到4000元之間經(jīng)銷商給出的最大折扣為25%邊界值測試思考:邊界值測試只測邊界值嗎?邊界值測試范圍:下界、上界;下界減一、下界加一;上界減一、上界加一。51健壯性測試邊界值測試通常直接應(yīng)用于健壯(容錯)性測試,最有意義的部分不是輸入,而是預(yù)期的輸出,觀察對例外情況如何處理。健壯性是指在異常情況下,軟件還能正常運行的能力。健壯性有兩層含義:容錯能力恢復(fù)能力52健壯性測試的基本思想健壯性測試是邊界值分析的一種簡單擴展,除了使用五個邊界值分析取值,還要過采用:一個略超過最大值(max+)的取值一個略小于最小值(min-)的取值53健壯性測試兩個變量函數(shù)的健壯性測試用例54X2健壯性測試的討論健壯性測試最有意思的部分不是輸入而是預(yù)期的輸出

健壯性測試的主要價值是觀察異常情況的處理

軟件質(zhì)量要素的衡量標(biāo)準(zhǔn):軟件的容錯性軟件容錯性的度量:從非法輸入中恢復(fù)55健壯性測試56健壯性測試的測試用例個數(shù)

一個變量個數(shù)為n的函數(shù)的健壯性測試會產(chǎn)生多少個測試用例??思考:最壞情況測試最壞情況測試的基本思想邊界值測試分析采用了可靠性理論的單缺陷假設(shè)

最壞情況測試拒絕這種假設(shè),關(guān)心當(dāng)多個變量取極值時會出現(xiàn)什么情況?57最壞情況測試用例設(shè)計方法對每一個變量首先進行包含最小值、略高于最小值、正常值、略低于最大值、最大值五個元素集合的測試,然后對這些集合進行笛卡爾積計算,以生成測試用例。一個變量個數(shù)為n的函數(shù)的最壞情況測試會產(chǎn)生5n個測試用例。58健壯性測試兩變量函數(shù)的最壞情況測試用例59X2最壞情況與邊界值分析的比較基本邊界值分析測試用例是最壞情況測試用例的真子集

最壞情況測試顯然更徹底最壞情況測試工作量大得多n變量函數(shù)的最壞情況測試會產(chǎn)生5n個測試用例邊界值分析只產(chǎn)生4n+1個測試用例60最壞情況測試舉例一三角形問題三條邊a,b,c取整數(shù)值,且各邊的取值范圍是:[1,200]最壞情況測試用例每條邊的取值:1,2,100,199,200測試用例數(shù)目:5n

三角形問題(n=3):用例數(shù)為12561最壞情況測試舉例二NextDate的測試用例輸入條件1≤月份≤121≤日期≤311812≤年≤2017最壞情況測試用例設(shè)計月份取值:1,2,6,11,12日期取值:1,2,15,30,31年取值:1812,1813,1912,2016,201762健壯最壞情況測試對每一個變量,首先進行包含最小值、略高于最小值、正常值、略低于最大值、最大值五個元素集合的測試還要采用一個略超過最大值的取值,以及一個略小于最小值的取值。然后對這些集合進行笛卡爾積計算以生成測試用例。63健壯性測試兩變量函數(shù)的健壯最壞情況測試用例64本章內(nèi)容黑盒測試技術(shù)概述等價類劃分邊界值分析決策表法因果圖法正交實驗法65基于決策表的測試適用情況:在有些軟件中,如果存在著一些數(shù)據(jù)處理,而且某些操作是否實施依賴于多個邏輯條件的取值;在這些邏輯條件取值的組合所構(gòu)成的多種情況下,分別執(zhí)行不同的操作。什么是決策表?決策表是把作為條件的所有輸入的各種組合值以及對應(yīng)輸出值都羅列出來而形成的表格。它能夠?qū)?fù)雜的問題按照各種可能的情況全部列舉出來,簡明并避免遺漏。從20世紀(jì)60年代初以來,決策表一直被用來表示和分析復(fù)雜的邏輯關(guān)系,描述不同條件集合下采取行動的若干組合情況?;跊Q策表的測試

①條件樁:列出問題的所有條件。

③動作樁:列出問題規(guī)定可能采取的操作。

②條件項:針對條件樁給出的條件列出所有可能的取值。

④動作項:指出在條件項的各組取值情況下應(yīng)采取的動作?;跊Q策表的測試

規(guī)則

選項

12345678910111213141516問題能編寫程序?NNNNNNNNYYYYYYYY熟悉軟件工程?NNNNYYYYNNNNYYYY對書中內(nèi)容感興趣?NNYYNNYYNNYYNNYY理解書中內(nèi)容?NYNYNYNYNYNYNYNY建議學(xué)習(xí)C/C++語言

學(xué)習(xí)軟件工程

繼續(xù)閱讀

放棄學(xué)習(xí)

一本書的閱讀指南的決策表一條規(guī)則基于決策表的測試構(gòu)造決策表的步驟:(1)列出所有的條件樁和動作樁。(2)確定規(guī)則的個數(shù)。有n個條件的決策表有2n個規(guī)則(每個條件取真、假值)(3)填入條件項。(4)填入動作項,得到初始決策表。(5)簡化決策表,合并相似規(guī)則。若表中有兩條以上規(guī)則具有相同的動作,并且在條件項之間存在極為相似的關(guān)系,便可以合并。合并后的條件項用符號“-”表示,說明執(zhí)行的動作與該條件的取值無關(guān),稱為無關(guān)條件?;跊Q策表的測試

規(guī)則

選項

12345678910111213141516問題能編寫程序?NNNNNNNNYYYYYYYY熟悉軟件工程?NNNNYYYYNNNNYYYY對書中內(nèi)容感興趣?NNYYNNYYNNYYNNYY理解書中內(nèi)容?NYNYNYNYNYNYNYNY建議學(xué)習(xí)C/C++語言

學(xué)習(xí)軟件工程

繼續(xù)閱讀

放棄學(xué)習(xí)

一本書的閱讀指南的決策表基于決策表的測試

規(guī)則

選項

1,52,436,7,89,1110,1213,1415,16問題能編寫程序?NNNNYYYY熟悉軟件工程?-NNYNNYY對書中內(nèi)容感興趣?N-Y---NY理解書中內(nèi)容?NYN-NY--建議學(xué)習(xí)C/C++語言

學(xué)習(xí)軟件工程

繼續(xù)閱讀

放棄學(xué)習(xí)

化簡后的“閱讀指南”基于決策表的測試輸入三個整數(shù)a、b和c分別作為三角形的3條邊,通過程序判斷由這3條邊構(gòu)成的三角形類型是:等邊三角形、等腰三角形、一般三角形或非三角形(不能構(gòu)成一個三角形)。假定3個輸入a、b和c為整數(shù)取值,三角形問題可以更詳細地描述為:

舉例:三角形問題的決策表輸入3個整數(shù)a、b和c分別作為三角形的三條邊,要求a、b和c必須滿足以下條件:Con1.a(chǎn)<b+cCon2.b<a+cCon3.c<a+b基于決策表的測試(續(xù))程序輸出是由這3條邊構(gòu)成的三角形類型:等邊三角形、等腰三角形、一般三角形或非三角形。如果a、b和c滿足都是大于0的整數(shù),則輸出下列4種情況之一:①如果不滿足條件Con1、Con2和Con3中有一個,則程序輸出為“非三角形”。②如果三條邊相等,則程序輸出為“等邊三角形”。③如果恰好有兩條邊相等,則程序輸出為“等腰三角形”。④如果三條邊都不相等,則程序輸出為“一般三角形”。顯然,這四種情況相互排斥。舉例:三角形問題的決策表基于決策表的測試(續(xù))規(guī)則1-8規(guī)則9規(guī)則10規(guī)則11規(guī)則12規(guī)則13規(guī)則14規(guī)則15規(guī)則16條件:c1:a,b,c構(gòu)成三角形?c2:a=b?c3:a=c?c4:b=c?

N---

YYYY

YYYN

YYNY

YYNN

YNYY

YNYN

YNNY

YNNN動作:a1:非三角形a2:一般三角形a3:等腰三角形a4:等邊三角形a5:不可能

√√√√√√舉例:三角形問題的決策表基于決策表的測試基于決策表的測試76舉例:三角形問題的決策表用例IDabc預(yù)期輸出1412非三角形2142非三角形3123非三角形4555等邊三角形5???不可能6???不可能7223等腰三角形8???不可能9232等腰三角形10332等腰三角形11345一般三角形基于決策表的測試基于決策表測試的優(yōu)點和缺點優(yōu)點:

它能把復(fù)雜的問題按各種可能的情況一一列舉出來,簡明而易于理解,也可避免遺漏。缺點:不能表達重復(fù)執(zhí)行的動作,例如循環(huán)結(jié)構(gòu)。實例:航空服務(wù)

某航空公司有如下規(guī)定:中國去歐美的航線所有座位都有食物供應(yīng)。每個座位都可以播放電影中國去非歐美的國外航線都有食物供應(yīng),只有商務(wù)倉可以播放電影中國國內(nèi)的航班的商務(wù)倉有食物供應(yīng),但是不可以播放電影中國國內(nèi)的航班的經(jīng)濟倉除非飛行時間大于2小時就有食物供應(yīng),但是不可以播放電影

78實例:航空服務(wù)1、列出所有條件樁和動作樁等價類:

A1={航線為國外歐美航線}

A2={航線為國外非歐美航線}

A3={航線為國內(nèi)航線}

P1={艙位為經(jīng)濟艙}

P2={艙位為商務(wù)艙}

T1={飛行時間大于2小時}

T2={飛行時間不大于2小時}條件樁

C1:航線為{A1,A2,A3}之一

C2:艙位為{P1,P2}之一

C3:飛行時間為{T1,T2}之一79動作樁

A1:食物供應(yīng)

A2:電影播放實例:航空服務(wù)2、確定規(guī)則的個數(shù)

3x2x2=1280實例:航空服務(wù)填入條件項和動作項,得到初始決策表81實例:航空服務(wù)4、簡化決策表,合并相似規(guī)則82實例:航空服務(wù)5、根據(jù)決策表設(shè)計測試用例83本章內(nèi)容黑盒測試技術(shù)概述等價類劃分邊界值分析決策表法因果圖法正交實驗法84

因果圖法是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計測試用例的方法,它適合于檢查程序輸入條件的各種組合情況。因果圖法魚骨圖方法輸入與輸出關(guān)系在因果圖中使用4種符號分別表示4種因果關(guān)系。用直線連接左右節(jié)點,其中左節(jié)點Ci表示輸入狀態(tài)(原因),右節(jié)點ei表示輸出狀態(tài)(結(jié)果)。Ci和ei都可取值0或1,0表示某狀態(tài)不出現(xiàn),1表示某狀態(tài)出現(xiàn)。86恒等:若C1是1,則e1也是1,否則e1為0非:若C1是1,則e1是0,否則e1為1或:若C1或C2或C3是1,則e1是1,否則e1為0與:若C1和C2都是1,則e1是1,否則e1為0因果圖的基本符號輸入的約束關(guān)系在實際問題中,輸入狀態(tài)相互之間還可能存在某些依賴關(guān)系,我們稱之為約束。E約束(異):a和b中最多有一個可能為1,即a和b不能同時為1I約束(或):a、b和c中至少有一個必須是1,即a、b和c不能同時為0O約束(惟一):a和b中必須有一個且僅有一個為1R約束(要求):a是1時,b必須是1,即a是1時,b不能是0輸出的約束關(guān)系M約束(強制):若結(jié)果a是1,則結(jié)果b強制為0輸出狀態(tài)之間也往往存在約束,在因果圖中以特定的符號標(biāo)明這些約束。因果圖法測試用例的設(shè)計步驟確定軟件規(guī)格中的原因和結(jié)果分析規(guī)格說明中哪些是原因(即輸入條件),哪些是結(jié)果(即輸出條件),并給每個原因和結(jié)果賦予一個標(biāo)識符。確定原因和結(jié)果之間的邏輯關(guān)系分析軟件規(guī)格說明中的語義,找出原因與結(jié)果之間、原因與原因之間對應(yīng)的關(guān)系,根據(jù)這些關(guān)系畫出因果圖。確定因果圖中的各個約束由于語法或環(huán)境的限制,有些原因與原因之間、原因與結(jié)果之間的組合情況不可能出現(xiàn)。為表明這些特殊情況,在因果圖上用一些記號表明約束或限制條件。把因果圖轉(zhuǎn)換為決策表根據(jù)決策表設(shè)計測試用例90因果圖法生成測試用例實例(1)分析軟件規(guī)格說明書,找出原因和結(jié)果。

原因:c1:第一個字符是#c2:第一個字符是*c3:第二個字符是一個數(shù)字

結(jié)果:e1:給出信息Ne2:修改文件e3:給出信息M91輸入的第一個字符必須是#或*,第二個字符必須是一個數(shù)字,此情況下進行文件的修改;如果第一個字符不是#或*,則給出信息N,如果第二個字符不是數(shù)字,則給出信息M軟件規(guī)格說明書規(guī)定(1)分析軟件規(guī)格說明書,找出原因和結(jié)果

原因:c1:第一個字符是#,c2:第一個字符是*,c3:第二個字符是一個數(shù)字

結(jié)果:e1:給出信息N,e2:修改文件,e3:給出信息M92輸入的第一個字符必須是#或*,第二個字符必須是一個數(shù)字,此情況下進行文件的修改;如果第一個字符不是#或*,則給出信息N,如果第二個字符不是數(shù)字,則給出信息M(2)找出原因與結(jié)果之間的因果關(guān)系、原因與原因之間的約束關(guān)系,畫出因果圖。將原因和結(jié)果用相應(yīng)的邏輯符號連接起來,可得到其因果圖,其中編號為10的中間結(jié)點是導(dǎo)出結(jié)果的進一步原因。因為原因c1和c2不可能同時為1,即第一個字符不可能即是#又是*,在因果圖上可對其施加E約束,這樣便得到了具有約束的因果圖。因果圖法生成測試用例實例(3)將因果圖轉(zhuǎn)換成決策表9312345678條件:C111110000C211001100C31010101010111100動作:e1√√e2√√e3√√√不可能√√(1)分析軟件規(guī)格說明書,找出原因和結(jié)果

原因:c1:第一個字符是#,c2:第一個字符是*,c3:第二個字符是一個數(shù)字

結(jié)果:e1:給出信息N,e2:修改文件,e3:給出信息M因果圖法生成測試用例實例測試用例編號輸入數(shù)據(jù)預(yù)期輸出1#3修改文件2#A給出信息M3*6修改文件4*B給出信息M5A1給出信息N6GT給出信息N和信息M94(4)根據(jù)決策表設(shè)計測試用例的輸入數(shù)據(jù)和預(yù)期輸出(1)分析軟件規(guī)格說明書,找出原因和結(jié)果

原因:c1:第一個字符是#,c2:第一個字符是*,c3:第二個字符是一個數(shù)字

結(jié)果:e1:給出信息N,e2:修改文件,e3:給出信息M12345678條件:C111110000C211001100C31010101010111100動作:e1√√e2√√e3√√√不可能√√本章內(nèi)容黑盒測試技術(shù)概述等價類劃分邊界值分析決策表法因果圖法正交實驗法95正交實驗法為什么要采用正交試驗法?在許多應(yīng)用系統(tǒng)的測試工作中,不會象判斷三角形那樣簡單,輸入條件的因素很多,而且每個因素也不能簡單用“是”和“否”來回答。PowerPoint的打印,考慮4個因素,每個因素多個選項打印范圍分:全部、當(dāng)前幻燈片、給定范圍打印內(nèi)容分:幻燈片、講義、備注頁、大綱視圖打印顏色/灰度分:彩色、灰度、黑白打印效果分:幻燈片加框和幻燈片不加框。96測試組合會變得很多,如果按照傳統(tǒng)的測試方法,會導(dǎo)致很大的測試工作量

正交表的由來97古希臘是一個多民族的國家,國王在檢閱臣民時要求每個方隊中每行有一個民族代表,每列也要有一個民族的代表數(shù)學(xué)家在設(shè)計方陣時,以每一個拉丁字母表示一個民族,所以設(shè)計的方陣稱為拉丁方正交實驗法什么是n階拉丁方?用n個不同的拉丁字母排成一個n階方陣(n<26),如果每行的n個字母均不相同,每列的n個字母均不相同,則稱這種方陣為n*n拉丁方或n階拉丁方。每個字母在任一行、任一列中只出現(xiàn)一次。98正交實驗法什么是正交拉丁方?假設(shè)有兩個n階的拉丁方,如果將它們疊合在一起,恰好出現(xiàn)n2個不同的有序數(shù)對,則稱為這兩個拉丁方為互相正交的拉丁方,簡稱正交拉丁方。99正交實驗法依據(jù)Galois理論,從大量的(實驗)數(shù)據(jù)(測試?yán)┲刑暨x適量的、有代表性的點(條件組合),從而合理地安排實驗(測試)的一種科學(xué)實驗設(shè)計方法。就是從全面測試(完全組合)優(yōu)化為有代表性的測試(正交組合)。100正交實驗法正交實驗從大量的實驗點中挑選出適量的、有代表性的點,依據(jù)相應(yīng)的正交表,合理地安排實驗的一種科學(xué)的實驗設(shè)計方法有效地、合理地減少需進行的實驗數(shù)量相關(guān)概念:因子:有可能影響實驗指標(biāo)的條件因子的水平(或狀態(tài)):影響實驗因子的因素正交表:記為L次數(shù)(水平數(shù)因子數(shù)),例如L8(41×24)表示實驗次數(shù)為8,1個4水平的因子,4個2水平的因子。101選擇正交表已經(jīng)公布了很多正交表,可以從下面的渠道獲得正交表因特網(wǎng)/techsup/technote/ts723_Designs.txthttp://www.york.ac.uk/depts/maths/www.york.ac.uk/depts/maths/tables/orthogonal.htmnote/ts723_Designs.數(shù)理統(tǒng)計書籍相關(guān)軟件正交實驗法L4(23)因子因子的狀態(tài)正交實驗法L8(41×24)正交表特點正交表的性質(zhì)每一列中,不同的數(shù)字出現(xiàn)的次數(shù)相等任意兩列中數(shù)字的排列方式齊全而且均衡L8(41×24)均勻分散整齊可比正交實驗法示例:有5個因子A,B,C,D,E,其中:A因子的水平數(shù)為4,其水平分別為(A1、A2、A3、A4),另外四個因子的水平數(shù)為2,其中B因子的水平為(B1、B2),C因子的水平為(C1、C2),D因子的水平為(D1、D2),E因子的水平為(E1、E2),因此選用正交表為:L8(41×24)正交實驗法正交表可分為統(tǒng)一水平數(shù)正交表:表中各個因子的水平數(shù)是一樣的混合水平數(shù)正交表:表中的各個因子數(shù)的水平數(shù)不同測試思想根據(jù)被測軟件的規(guī)格說明書找出影響其功能實現(xiàn)的操作對象和外部因素,把它們當(dāng)作因子,而把各個因子的取值當(dāng)作狀態(tài),構(gòu)造出二元的因素分析表;然后,利用正交表進行各因子的狀態(tài)組合,構(gòu)造有效的測試輸入數(shù)據(jù)集正交表的因子對應(yīng)被測對象的測試因素因子的水平可以看成是各測試因素的取值。正交實驗法設(shè)計步驟依據(jù)被測對象說明構(gòu)造因子—狀態(tài)表加權(quán)篩選,生成因素分析表選取合適的正交表,生成測試數(shù)據(jù)集根據(jù)被測對象的特征,補充由正交表無法得到的測試用例構(gòu)造因子-狀態(tài)表案例,某系統(tǒng)的文件查詢功能如下描述:某系統(tǒng)文件查詢功能面向系統(tǒng)注冊用戶和非注冊用戶開放查詢條件有簡單查詢和高級查詢之分非注冊用戶只能查詢公開文件并且查詢結(jié)果只能在終端屏幕上顯示系統(tǒng)注冊用戶可以查詢公開文件和授權(quán)文件并且查詢結(jié)果可以輸出到指定的文件或在終端上顯示加權(quán)篩選步驟確定各因子/狀態(tài)的權(quán)值,參見下頁權(quán)值處理的活動圖計算權(quán)值將各個因子的權(quán)值(Wi)相加,計算權(quán)總和(SUM)將各個因子的權(quán)分別除以權(quán)總和,得到各因子的權(quán)比例ri采用因子數(shù)倒數(shù)的一半,即1/2n作為權(quán)比例標(biāo)準(zhǔn)值,將各個因子的權(quán)比例ri與1/2n比較,若ri>1/2n,則保留,否則舍去該因子加權(quán)篩選測試者是否曾經(jīng)給過因子及狀態(tài)的權(quán)值是否是否需要修改權(quán)值是否需要給出權(quán)值是否需要修改所有權(quán)值引用前次測試的權(quán)重新輸入所有因子和狀態(tài)的權(quán)值修改部分因子或狀態(tài)的權(quán)值輸入所有因子和狀態(tài)的權(quán)值用缺省值0作為因子和狀態(tài)的權(quán)值是否是否是否選擇正交表根據(jù)前面獲得的因子數(shù)和狀態(tài)數(shù)選擇正交表,選擇正交表可能遇到下面的情況因子數(shù)和水平數(shù)與正交表相吻合因子數(shù)和水平數(shù)與正交表不吻合,可以遵循下面的原則正交表的列數(shù)不能小于因子數(shù);正交表的水平數(shù)不能小于因子的最大狀態(tài)數(shù)。正交表的行數(shù)取最小值選擇正交表對于前面的例題由于有3個兩水平因子因此可以選用L4(23)選擇正交表

某系統(tǒng)有:5個獨立變量(A,B,C,D,E)變量A和B都有兩個取值(A1、A2)和(B1、B2)變量C和D都有三個可能的取值(C1、C2、C3)和(D1、D2、D3)變量E有六個可能的取值(E1、E2、E3、E4、E5、E6)選擇的正交表,必須滿足表中因子數(shù)>=5水平數(shù)2個因子的水平數(shù)>=22個因子的水平數(shù)>=31個因子的水平數(shù)>=6滿足上面條件的正交表有兩個:L49(78),L18(3661)取行數(shù)最小的L18(3661)選擇正交表L18(3661)正交表選擇正交表最終的結(jié)果A:0->A1,1->A2B:0->B1,1->B2C:0->C1,1->C2,2->C3D:0->D1,1->D2,2->D3E:0->E1,1->E2,2->E3,3->E4,4->E5,5->E6實例1員工號(ID)。員工姓名(Name)。員工郵件地址(MailAddress)信息系統(tǒng)中,員工信息查詢功能是常見的。例如,設(shè)有3個獨立的查詢條件,以獲得特定員工的個人信息實例2PowerPoint的打印,考慮4個因素,每個因素多個選項打印范圍分:全部、當(dāng)前幻燈片、給定范圍打印內(nèi)容分:幻燈片、講義、備注頁、大綱視圖打印顏色/灰度分:彩色、灰度、黑白打印效果分:幻燈片加框和幻燈片不加框。有4個因子,水平數(shù)(從2到4)是不相等的。由于水平數(shù)不等,采用包含和組合的方法選取合適的正交表公式表中的因子數(shù)>=4表中至少有4個因子的水平數(shù)>=2行數(shù)取最少的一個

118最后選中正交表公式:L16(45)

實例2(續(xù))L16(45)123451000002011113022224033335101236110327123018132109202311021320112201312231021330312143120315321301633021123451A1B1C1D102A1B2C2D213A1B3C3224A1B43335A2B1C2236A2B2C1327A2B33D118A2B4C3D209A3B1C33110A3B232011A3B3C1D2312A3B4C2

溫馨提示

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

評論

0/150

提交評論