軟件測試項(xiàng)目課件04黑盒測試_第1頁
軟件測試項(xiàng)目課件04黑盒測試_第2頁
軟件測試項(xiàng)目課件04黑盒測試_第3頁
軟件測試項(xiàng)目課件04黑盒測試_第4頁
軟件測試項(xiàng)目課件04黑盒測試_第5頁
已閱讀5頁,還剩65頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件測試

技術(shù)案例教程

第四章黑盒測試

2主要內(nèi)容1.黑盒測試概念

2.等價(jià)類測試3.邊界值分析法4.決策表5.因果圖6.正交試驗(yàn)法7.錯(cuò)誤推測法8.項(xiàng)目案例34.1黑盒測試概念

黑盒測試(Black-boxTesting)軟件輸入輸出又叫功能測試,數(shù)據(jù)驅(qū)動(dòng)測試或基于規(guī)格說明的測試。44.1黑盒測試概念

黑盒測試的目標(biāo)黒盒測試試圖發(fā)現(xiàn)以下類型的錯(cuò)誤:功能錯(cuò)誤或遺漏;接口錯(cuò)誤;接口所使用的數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤;行為或性能錯(cuò)誤;初始化和終止錯(cuò)誤54.1黑盒測試概念

黑盒測試過程需求說明產(chǎn)生被測程序測試結(jié)果輸出比較64.1黑盒測試概念

黑盒測試方法黑盒測試的測試方法邊界值分析等價(jià)類劃分基于決策表的測試因果圖正交試驗(yàn)錯(cuò)誤推測

74.2等價(jià)類測試問題引入為保證軟件產(chǎn)品的質(zhì)量,我們需要進(jìn)行完備的測試;但這是不現(xiàn)實(shí)的,因?yàn)椋狠斎肓刻筝敵鼋Y(jié)果太多軟件實(shí)現(xiàn)途徑太多等價(jià)類劃分法是一種典型的黑盒測試方法,它完全不考慮程序的內(nèi)部結(jié)構(gòu),只根據(jù)程序規(guī)格說明書對(duì)輸入范圍進(jìn)行劃分,把所有可能的輸入數(shù)據(jù),即程序輸入域劃分為若干個(gè)互不相交的子集,稱為等價(jià)類,然后從每個(gè)等價(jià)類中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例,進(jìn)行測試。84.2等價(jià)類測試等價(jià)類定義等價(jià)類是輸入域的某個(gè)子集合,而所有的等價(jià)類的并集是整個(gè)輸入域。在子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤是等效的。等價(jià)類的特點(diǎn)完備性:整個(gè)輸入域提供一種形式的完備性無冗余性:若互不相交則可保證一種形式的無冗余性有效等價(jià)類:對(duì)于程序的規(guī)格說明來說,是合理的、有意義的輸入數(shù)據(jù)所構(gòu)成的集合無效等價(jià)類:對(duì)于程序的規(guī)格說明來說,是不合理的、沒有意義的輸入數(shù)據(jù)所構(gòu)成的集合94.2等價(jià)類測試確定等價(jià)類的原則(1)如果輸入條件規(guī)定了取值范圍或值的個(gè)數(shù)就可確定一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類例如:輸入學(xué)生成績,范圍是0到100;104.2等價(jià)類測試確定等價(jià)類的原則(2)輸入條件規(guī)定了輸入值的集合或是規(guī)定了“必須如何”的條件,則可確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類例如:“標(biāo)識(shí)符以字母開頭”114.2等價(jià)類測試確定等價(jià)類的原則(3)如果輸入條件是一個(gè)布爾量,則可以確立一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。124.2等價(jià)類測試確定等價(jià)類的原則(4)如果規(guī)定了輸入數(shù)據(jù)的一組值,且程序要對(duì)每一個(gè)輸入值分別進(jìn)行處理,要對(duì)每一個(gè)規(guī)定的輸入值確立一個(gè)有效等價(jià)類,而對(duì)于這組值之外的所有值確立一個(gè)無效等價(jià)類。例:輸入條件說明學(xué)歷可為:???、本科、碩士、博士四種之一。134.2等價(jià)類測試確定等價(jià)類的原則(5)如果規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則,可確定一個(gè)有效等價(jià)類和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則)。例如:用戶名必須是字母144.2等價(jià)類測試確定等價(jià)類的原則(6)如已劃分的等價(jià)類各元素在程序中的處理方式不同,則應(yīng)將此等價(jià)類進(jìn)一步劃分成更小的等價(jià)類。例如:輸入三條邊,判斷三角形的形狀154.2等價(jià)類測試等價(jià)類測試用例設(shè)計(jì)(1)為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號(hào)。(2)設(shè)計(jì)一個(gè)新的測試用例,使其盡可能多地覆蓋尚未被覆蓋地有效等價(jià)類,重復(fù)這一步,直到所有的有效等價(jià)類都被覆蓋為止。(3)設(shè)計(jì)一個(gè)新的測試用例,使其僅覆蓋一個(gè)尚未被覆蓋的無效等價(jià)類,重復(fù)這一步,直到所有的無效等價(jià)類都被覆蓋為止。164.2等價(jià)類測試舉例:三角形問題三角形問題是軟件測試中最經(jīng)典的一個(gè)例子。輸入三個(gè)整數(shù)a、b和c分別作為三角形的3條邊,通過程序判斷由這3條邊構(gòu)成的三角形類型是:等邊三角形、等腰三角形、一般三角形或非三角形(不能構(gòu)成一個(gè)三角形)。174.2等價(jià)類測試分析問題中給出和隱含的對(duì)輸入條件的要求:

條件1:整數(shù)條件2:三個(gè)數(shù)條件3:非零數(shù)

條件4:正數(shù)條件5:兩邊之和大于第三邊條件6:等腰條件7:等邊

184.2等價(jià)類測試如果a、b、c滿足條件(1)~(4),則輸出下列四種情況之一:如果不滿足條件(5),則程序輸出為“非三角形”。如果三條邊相等即滿足條件(7),則程序輸出為“等邊三角形”。如果只有兩條邊相等、即滿足條件(6),則程序輸出為“等腰三角形”。如果三條邊都不相等,則程序輸出為“一般三角形”。194.2等價(jià)類測試輸入條件有效等價(jià)類編號(hào)無效等價(jià)類編號(hào)三個(gè)正整數(shù)正整數(shù)1一邊為非正整數(shù)a為非正整數(shù)10b為非正整數(shù)11c為非正整數(shù)12兩邊為非正整數(shù)a,b為非正整數(shù)13a,c為非正整數(shù)14b,c為非正整數(shù)15三邊均為非正整數(shù)16三個(gè)數(shù)2只輸入一個(gè)數(shù)只給a17只給b18只給c19只輸入兩個(gè)數(shù)只給a,b20只給a,c21只給b,c22未輸入數(shù)23三角形的等價(jià)類204.2等價(jià)類測試輸入條件有效等價(jià)類編號(hào)無效等價(jià)類編號(hào)構(gòu)成一般三角形a+b>c,且a≠b≠c3a+b<c24a+b=c25a+c>b,且a≠b≠c4a+c<b26a+c=b27b+c>a,且a≠b≠c5b+c<a28b+c=a29構(gòu)成等腰三角形a=b,a≠c,且兩邊之和大于第三邊6a=c,a≠b,且兩邊之和大于第三邊7b=c,a≠b,且兩邊之和大于第三邊8構(gòu)成等邊三角形a=b=c9三角形的等價(jià)類214.3邊界值分析法1.邊界值分析邊界值分析(BoundaryValueAnalysis)邊界值分析關(guān)注輸入空間的邊界,并從中標(biāo)識(shí)測試用例?;驹礤e(cuò)誤更可能出現(xiàn)在輸入變量的極值附近。224.3邊界值分析法常見的邊界值舉例對(duì)16-bit的整數(shù)而言32767和-32768是邊界屏幕上光標(biāo)在最左上、最右下位置報(bào)表的第一行和最后一行數(shù)組元素的第一個(gè)和最后一個(gè)C++語言中,intA[10]:A[0]…A[9]

循環(huán)的第0次、第1次和倒數(shù)第2次、最后一次234.3邊界值分析法邊界值分析的基本思想在最小值、略高于最小值、正常值、略低于最大值和最大值處取輸入變量值表示方法min、min+、nom、max-、和max例如:涉及兩個(gè)變量的函數(shù)x1,x2X1的取值x1min,x1min+,x1nom,x1max-,x1maxX2的取值x2min,x2min+,x2nom,x2max-,x2max244.3邊界值分析法邊界值分析的取值254.3邊界值分析法邊界值分析測試用例邊界值分析獲得測試用例的方法:使所有變量取正常值,只使一個(gè)變量取極值;對(duì)于一個(gè)n變量函數(shù),邊界值分析會(huì)產(chǎn)生4n+1個(gè)測試用例。264.3邊界值分析法X1取值:x1min,x1min+,x1nom,x1max-,x1maxX2取值:x2min,x2min+,x2nom,x2max-,x2max兩個(gè)變量函數(shù)的邊界值分析測試用例

{<x1nom,x2min>,<x1nom,x2min+>,<x1nom,x2nom>,<x1nom,x2max->,<x1nom,x2max>,<x1min,x2nom>,<x1min+,x2nom>,<x1max-,x2nom>,<x1max,x2nom>}兩個(gè)變量函數(shù)邊界值分析測試用例274.3邊界值分析法X2兩個(gè)變量函數(shù)邊界值分析測試用例284.3邊界值分析法舉例:三角形問題三角形問題描述三條邊a,b,c取整數(shù)值,且各邊的取值范圍是:[1,200]邊界值分析設(shè)計(jì)測試用例每條邊的取值:1,2,100,199,200測試用例數(shù)目:4n+1三角形問題(n=3):用例數(shù)為13294.3邊界值分析法練習(xí):NextDate函數(shù)輸入條件1≤月份≤121≤日期≤31假定1912≤年≤2050請用邊界值分析設(shè)計(jì)測試用例304.3邊界值分析法2.健壯性測試健壯性是指在異常情況下,軟件還能正常運(yùn)行的能力。健壯性有兩層含義:容錯(cuò)能力恢復(fù)能力314.3邊界值分析法健壯性測試的基本思想健壯性測試是邊界值分析的一種簡單擴(kuò)展,除了使用五個(gè)邊界值分析取值,還要采用:一個(gè)略超過最大值(max+)的取值一個(gè)略小于最小值(min-)的取值324.3邊界值分析法X2兩個(gè)變量函數(shù)的健壯性測試用例334.3邊界值分析法3.最壞情況測試最壞情況測試的基本思想邊界值測試分析采用了可靠性理論的單缺陷假設(shè)最壞情況測試拒絕這種假設(shè),關(guān)心當(dāng)多個(gè)變量取極值時(shí)會(huì)出現(xiàn)什么情況?344.3邊界值分析法最壞情況測試用例設(shè)計(jì)方法對(duì)每一個(gè)變量首先進(jìn)行包含最小值、略高于最小值、正常值、略低于最大值、最大值五個(gè)元素集合的測試,然后對(duì)這些集合進(jìn)行笛卡爾積計(jì)算,以生成測試用例。一個(gè)變量個(gè)數(shù)為n的函數(shù)的最壞情況測試會(huì)產(chǎn)生5n個(gè)測試用例。354.3邊界值分析法兩變量函數(shù)的最壞情況測試用例X2364.3邊界值分析法邊界值分析法的測試運(yùn)用

1.三角形問題的邊界值分析測試用例設(shè)計(jì)

測試用例abc預(yù)期輸出Test1Test2Test3Test4Test560606050506060605050126099100等腰三角形等腰三角形等邊三角形等腰三角形非三角形Test6Test7Test8Test960605050129910060605050等腰三角形等腰三角形等腰三角形非三角形Test10Test11Test12Test1312991006060505060605050等腰三角形等腰三角形等腰三角形非三角形374.3邊界值分析法2.加法器邊界值測試用例設(shè)計(jì)

加法器程序計(jì)算兩個(gè)1~100之間整數(shù)的和。對(duì)于加法器程序,根據(jù)輸入要求可將輸入空間劃分為三個(gè)等價(jià)類,即1個(gè)有效等價(jià)類(1~100之間),兩個(gè)無效等價(jià)類(<1,>100)。但這種等價(jià)類劃分不是很完善,我們只考慮了輸入數(shù)據(jù)的取值范圍,而沒有考慮輸入數(shù)據(jù)的類型,我們認(rèn)為輸入應(yīng)為整數(shù),但用戶輸入什么都有可能。384.3邊界值分析法邊界值分析法的測試運(yùn)用為此,我們可綜合考慮輸入數(shù)據(jù)的取值范圍和類型劃分等價(jià)類,其結(jié)果如下表所示。

加法器等價(jià)類編號(hào)輸入條件所屬類別編號(hào)輸入條件所屬類別11~100之間整數(shù)有效等價(jià)類5非數(shù)值(字母)無效等價(jià)類2<1整數(shù)無效等價(jià)類6非數(shù)值(特殊字符)無效等價(jià)類3>100整數(shù)無效等價(jià)類7非數(shù)值(空格)無效等價(jià)類4小數(shù)無效等價(jià)類8非數(shù)值(空白)無效等價(jià)類394.3邊界值分析法

加法器邊界測試用例測試用例輸入數(shù)據(jù)預(yù)期輸出加數(shù)1加數(shù)2和Test115051Test225052Test39950149Test410050150Test550151Test650252Test75099149Test850100150Test9050提示“請輸入1~100間的整數(shù)”Test10500提示“請輸入1~100間的整數(shù)”Test1110150提示“請輸入1~100間的整數(shù)”Test1250101提示“請輸入1~100間的整數(shù)”Test130.250提示“請輸入1~100間的整數(shù)”404.3邊界值分析法

加法器邊界測試用例測試用例輸入數(shù)據(jù)預(yù)期輸出加數(shù)1加數(shù)2和Test14500.2提示“請輸入1~100間的整數(shù)”Test15A50提示“請輸入1~100間的整數(shù)”Test1650A提示“請輸入1~100間的整數(shù)”Test17@50提示“請輸入1~100間的整數(shù)”Test1850@提示“請輸入1~100間的整數(shù)”Test19空格50提示“請輸入1~100間的整數(shù)”Test2050空格提示“請輸入1~100間的整數(shù)”Test2150提示“請輸入1~100間的整數(shù)”Test2250提示“請輸入1~100間的整數(shù)”414.4決策表1.決策表的原理決策表決策表(DecisionTable)是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的工具。在程序設(shè)計(jì)發(fā)展的初期,決策表被當(dāng)作編寫程序的輔助工具。424.4決策表2.決策表的組成條件樁(ConditionStub)列出問題的所有條件動(dòng)作樁(ActionStub)列出可能采取的操作條件項(xiàng)(ConditionEntity)列出條件樁的取值動(dòng)作項(xiàng)(ActionEntity)列出條件項(xiàng)各種取值下應(yīng)該采取的動(dòng)作434.4決策表決策表的組成444.4決策表規(guī)則任何一個(gè)條件組合的特定取值及其相應(yīng)要執(zhí)行的操作稱為規(guī)則;在決策表中貫穿條件項(xiàng)和動(dòng)作項(xiàng)的一列就是一條規(guī)則;決策表中列出多少組條件取值,也就有多少條規(guī)則,即條件項(xiàng)和動(dòng)作項(xiàng)有多少列。454.4決策表決策表建立步驟①確定規(guī)則的個(gè)數(shù);假如有n個(gè)條件,每個(gè)條件有兩個(gè)取值(0,1),則有2n

種規(guī)則;②列出所有的條件樁和動(dòng)作樁;③填入條件項(xiàng);④填入動(dòng)作項(xiàng),得到初始決策表;⑤簡化,合并相似規(guī)則(相同動(dòng)作)。464.4決策表規(guī)則合并規(guī)則合并就是決策表的簡化。有兩條或多條規(guī)則具有相同的動(dòng)作,并且其條件項(xiàng)之間存在著極為相似的關(guān)系,就可以將規(guī)則合并。474.4.1決策表(1)兩條規(guī)則合并成一條條件項(xiàng)“—”表示與取值無關(guān)。484.4決策表?xiàng)l件項(xiàng)“—”在邏輯上包含其它的條件。(2)兩條規(guī)則的進(jìn)一步合并494.4決策表例:維修機(jī)器問題問題描述:“……對(duì)于功率大于50馬力的機(jī)器,并且維修記錄不全或已運(yùn)行10年以上的機(jī)器,應(yīng)給予優(yōu)先的維修處理……”請建立決策表。504.4決策表例:維修機(jī)器問題(續(xù))(1)列出所有的條件樁和動(dòng)作樁條件樁C1:功率大于50馬力嗎?C2:維修記錄不全嗎?C3:運(yùn)行超過10年嗎?動(dòng)作樁A1:進(jìn)行優(yōu)先處理A2:作其他處理514.4決策表例:維修機(jī)器問題(續(xù))(2)確定規(guī)則個(gè)數(shù)輸入條件個(gè)數(shù):3;每個(gè)條件的取值:“是”或“否”;規(guī)則個(gè)數(shù):2*2*2=8;

功率大于50馬力嗎維修記錄不全嗎運(yùn)行超過10年嗎524.4決策表例:維修機(jī)器問題(續(xù))12345678條件功率大于50馬力嗎?YYYYNNNN維修記錄不全嗎?YYNNYYNN運(yùn)行超過10年嗎?YNYNYNYN動(dòng)作進(jìn)行優(yōu)先處理作其他處理(3)填入條件項(xiàng);利用集合的笛卡爾積計(jì)算條件項(xiàng)的取值534.4決策表例:維修機(jī)器問題(續(xù))12345678條件功率大于50馬力嗎?YYYYNNNN維修記錄不全嗎?YYNNYYNN運(yùn)行超過10年嗎?YNYNYNYN動(dòng)作進(jìn)行優(yōu)先處理

作其他處理

(4)填入動(dòng)作項(xiàng);1,2合并,5,7合并,6,8合并544.4決策表例:維修機(jī)器問題(續(xù))(5)化簡;(1)(2)(3)(4)(5)條件功率大于50馬力嗎?YYYNN維修記錄不全嗎?YNN——運(yùn)行超過10年嗎?—YNYN動(dòng)作進(jìn)行優(yōu)先處理

作其他處理

554.5因果圖1.因果圖分析法前面介紹的等價(jià)類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯(lián)系,相互組合等。考慮輸入條件之間的相互組合,可能會(huì)產(chǎn)生一些新的情況。但要檢查輸入條件的組合不是一件容易的事情,即使把所有輸入條件劃分成等價(jià)類,他們之間的組合情況也相當(dāng)多。因此必須考慮采用一種適合于描述對(duì)于多種條件的組合,相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來考慮設(shè)計(jì)測試用例。這就需要利用因果圖(邏輯模型)。因果圖分析法最終生成的是判定表,適合于檢查程序輸入條件的各種組合情況。564.5因果圖2.因果圖的基本符號(hào)

恒等c1e1e1=1c1=1e1=0c1=0非c1e1e1=0c1=1e1=1c1=0574.5因果圖

或c1e1c2c3e1=1c1=1或c2=1或c3=1否則e1=0與e1c2e1=1c1=1且c2=1否則e1=0c1584.5因果圖輸入條件的約束594.5因果圖輸入條件的約束(續(xù))604.5因果圖3.利用因果圖設(shè)計(jì)測試用例(1)分析程序規(guī)格說明的描述中,哪些是原因,哪些是結(jié)果原因常常是輸入條件或是輸入條件的等價(jià)類;結(jié)果是輸出條件;(2)分析軟件規(guī)格說明的語義,并將其表示成連接各個(gè)原因與各個(gè)結(jié)果的“因果圖”(3)在因果圖上使用若干個(gè)特殊的符號(hào)標(biāo)明約束條件(4)把因果圖轉(zhuǎn)換成判定表(5)把判定表中每一列表示的情況寫成測試用例614.5因果圖舉例:軟件規(guī)格說明書第一列字符必須是A或B,第二列字符必須是一個(gè)數(shù)字,在此情況下進(jìn)行文件的修改但如果第一列字符不正確,則給出信息L如果第二列字符不是數(shù)字,則給出信息M624.5因果圖原因和結(jié)果原因

1------第一列字符是A;2------第一列字符是B;3------第二列字符是一數(shù)字結(jié)果

21------修改文件;22------給出信息L;23------給出信息M;634.5因果圖具有約束的因果圖11是中間節(jié)點(diǎn);考慮到原因1和原因2不可能同時(shí)為1,因此在因果圖上施加E約644.5因果圖根據(jù)因果圖建立判定表圖

12345678原因(條件)11111000021100110031010101011

111100動(dòng)作(結(jié)果)22

00001121

10100023

010101654.5因果圖把判定表的每一列拿出來作為依據(jù),設(shè)計(jì)測試用例

12345678原因(條件)11111000021100110031010101011

111100動(dòng)作(結(jié)果)22

00001121

10100023

010101測試用例

A6AaB9BPC5HY

A0A@B1B*H4E%664.6正交實(shí)驗(yàn)設(shè)計(jì)方法利用因果圖來設(shè)計(jì)測試用例時(shí),作為輸入條件的原因與輸出結(jié)果之間的

溫馨提示

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

評(píng)論

0/150

提交評(píng)論