第2部分:軟件測(cè)試技術(shù)_第1頁
第2部分:軟件測(cè)試技術(shù)_第2頁
第2部分:軟件測(cè)試技術(shù)_第3頁
第2部分:軟件測(cè)試技術(shù)_第4頁
第2部分:軟件測(cè)試技術(shù)_第5頁
已閱讀5頁,還剩165頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1軟件測(cè)試方法和技術(shù)是多種多樣的,可以從不同的角度加以分類從測(cè)試是否針對(duì)系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)算法的角度來看,可分為黑盒測(cè)試和白盒測(cè)試從是否需要執(zhí)行被測(cè)軟件的角度,可分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試軟件測(cè)試方法2兩種測(cè)試方法從不同的角度出發(fā),反映了軟件的不同側(cè)面,也適用于不同的開發(fā)環(huán)境黑盒測(cè)試:基于軟件設(shè)計(jì)規(guī)范設(shè)計(jì)測(cè)試用例白盒測(cè)試:基于代碼覆蓋情況設(shè)計(jì)測(cè)試用例eg.排水系統(tǒng)測(cè)試方法-黑盒與白盒3白盒測(cè)試(WHITE-BOXTESTING)也稱結(jié)構(gòu)測(cè)試、邏輯驅(qū)動(dòng)測(cè)試。此方法把測(cè)試對(duì)象看做一個(gè)透明的盒子,它允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。通過在不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測(cè)試又稱為邏輯測(cè)試。白盒測(cè)試的主要方法有邏輯驅(qū)動(dòng)、基路測(cè)試等。第4章白盒測(cè)試4軟件人員使用白盒測(cè)試方法,主要想對(duì)程序模塊進(jìn)行如下的檢查:對(duì)程序模塊的所有獨(dú)立的執(zhí)行路徑至少測(cè)試一次;對(duì)所有的邏輯判定,取“真”與取“假”的兩種情況都至少測(cè)試一次;在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體;測(cè)試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性等。白盒測(cè)試的作用5對(duì)一個(gè)具有多重選擇和循環(huán)嵌套的程序,不同的路徑數(shù)目可能是天文數(shù)字。給出一個(gè)小程序的流程圖,它包括了一個(gè)執(zhí)行20次的循環(huán)。包含的不同執(zhí)行路徑數(shù)達(dá)520條,對(duì)每一條路徑進(jìn)行測(cè)試需要1毫秒,假定一年工作365×24小時(shí),要想把所有路徑測(cè)試完,需3170年。白盒測(cè)試615sideA=atoi(argv[1]);16sideB=atoi(argv[2]);17sideC=atoi(argv[3]);1819If((sideA==sideB)&&(sideA==sideC))20{21s=0.5*(sideA+sideB+sideC);22Area=sqrt(s/(s-sideA)*(s-sideB)*(s-sideC));23printf(“area=%g\n”,Area);24}25else26puts(“notanequilateraltriangle”);27return0;28}Figure1.CodeUnderTest白盒測(cè)試技術(shù)S=0.5×(SideA+SideB+SideC)Area=[S(S-SideA)(S-SideB)(S-SideC)]1/2白盒測(cè)試7TrueDirectGraph TestCase1 TestCase2 Inputs: Inputs: SideA=2 SideA=3 SideB=2 SideB=4 SideC=2 SideC=5Entrance1516171921222326ExitTrueFalseEntrance1516171921222326ExitFalseEntrance15161719ExitFalse26212223TrueActualOutput ActualOutputArea=1.73205 notequilateraltriangle白盒測(cè)試技術(shù)白盒測(cè)試8

語句覆蓋判定覆蓋條件覆蓋

判定-條件覆蓋條件組合覆蓋邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計(jì)測(cè)試用例的技術(shù)。它屬白盒測(cè)試范疇。4.1邏輯覆蓋9例(A>1)

and

(B==0)(A==2)

or

(X>1)X=X/AX=X+1TTFFabdce

四條路徑101、語句覆蓋

使程序中每個(gè)語句至少執(zhí)行一次。選擇足夠的測(cè)試用例,使得程序中每個(gè)語句至少都能被執(zhí)行一次.

開始(A>1)AND(B==0)(A==2)OR(X>1)返回X=X/AX=X+1FFTTabdce只需設(shè)計(jì)一個(gè)測(cè)試用例:

輸入數(shù)據(jù):A=2,

B=0,

X=4

即達(dá)到了語句覆蓋。語句覆蓋是最弱的邏輯覆蓋(如:AND寫成OR,X>1寫成

X<1,查不出來)112、

判定覆蓋(分支覆蓋)

使每個(gè)判定的真假分支都至少執(zhí)行一次。選擇足夠的測(cè)試用例,使得程序中的每一個(gè)分支至少都執(zhí)行一次.開始(A>1)AND(B==0)(A==2)OR(X>1)返回X=X/AX=X+1FFTTabdce可設(shè)計(jì)兩組測(cè)試用例:A=3,B=0,X=3

可覆蓋c、d分支

A=2,B=1,X=1

可覆蓋b、e分支

兩組測(cè)試用例可覆蓋所有判定的真假分支

判定覆蓋仍是弱的邏輯覆蓋,只覆蓋了全部路徑的一半。123、條件覆蓋使每個(gè)判定的每個(gè)條件的可能取值至少執(zhí)行一次。執(zhí)行足夠的測(cè)試用例,使得判定中的每個(gè)條件獲得各種可能的結(jié)果.開始(A>1)AND(B==0)(A==2)OR(X>1)返回X=X/AX=X+1FFTTabdce滿足條件:T1,T1,T2,T2T3,T3T4,T4第一判定表達(dá)式:設(shè)條件A>1取真記為T1

T1

條件B=0取真記為T2

T2第二判定表達(dá)式:設(shè)條件A=2取真記為T3

T3

條件X>1取真記為T4

T413測(cè)試用例通過滿足的覆蓋ABX路徑條件分支103abeT1,T2,T3,T4b,e211abeT1,T2,T3,T4b,e

兩個(gè)測(cè)試用例覆蓋了四個(gè)條件八種可能取值。未覆蓋c、d分支,不滿足判定覆蓋的要求.

條件覆蓋不一定包含判定覆蓋判定覆蓋也不一定包含條件覆蓋144、判定/條件覆蓋

選取足夠多的測(cè)試用例,使判斷中的每個(gè)條件的所有可能取值至少執(zhí)行一次,同時(shí)每個(gè)判斷本身的所有可能判斷結(jié)果至少執(zhí)行一次.開始(A>1)AND(B==0)(A==2)OR(X>1)返回X=X/AX=X+1FFTTabdce滿足條件:T1,T1,T2,T2T3,T3T4,T415測(cè)試用例通過滿足的條件覆蓋ABX路徑分支204aceT1,T2,T3,T4c,e111abdT1,T2,T3,T4b,d能同時(shí)滿足判定、條件兩種覆蓋標(biāo)準(zhǔn)的取值165、條件組合覆蓋所有可能的條件取值組合至少執(zhí)行一次

A>1,B=0A>1,B≠0A≯1,B=0A≯1,B≠0A=2,X>1A=2,X≯1A≠2,X>1A≠2,X≯1測(cè)試用例通過滿足的覆蓋ABX路徑條件分支204aceT1,T2,T3,T4c,e211abeT1,T2,T3,T4b,e102abdT1,T2,T3,T4b,d111abdT1,T2,T3,T4b,d176、修正條件判定覆蓋每一個(gè)程序模塊的入口、出口都至少被調(diào)用一次;每個(gè)條件對(duì)于判定的結(jié)果值是獨(dú)立的。

借助于表達(dá)式語法分析樹進(jìn)行測(cè)試用例的分析和設(shè)計(jì):

中間內(nèi)部結(jié)點(diǎn):二元/一元操作符葉子結(jié)點(diǎn):變量/常量Eg.A∪B∩C

(借助于表達(dá)式語法分析樹進(jìn)行分析)18修正條件判定覆蓋測(cè)試數(shù)據(jù)設(shè)計(jì)方法及案例對(duì)于一個(gè)給定的表達(dá)式語法分析樹,遍歷完此樹即可達(dá)到修正判定覆蓋。步驟:首先選擇一個(gè)條件(即子句,作為待考察因素/測(cè)試子句),然后從此子句的葉子結(jié)點(diǎn)往上一直走到該語法樹的根節(jié)點(diǎn),再?gòu)母?jié)點(diǎn)到其他的每個(gè)子句(葉子節(jié)點(diǎn))。在遍歷樹的過程中,若給定子句的父節(jié)點(diǎn)是or,則其兄弟結(jié)點(diǎn)的值必須是false;是and,則必須是true;是not,則其父節(jié)點(diǎn)的值是not結(jié)點(diǎn)上值的反值。如此重復(fù)下去,直至遍歷完成。Eg.A∪B∩C若B作為測(cè)試子句,則A應(yīng)為false,C應(yīng)為true同理,若A作為測(cè)試子句,則B應(yīng)為false,C為true若C作為測(cè)試子句,則A、B的取值保證A∪B為真即可19發(fā)現(xiàn)錯(cuò)誤的能力標(biāo)準(zhǔn)含義1(弱)語句覆蓋每條語句至少執(zhí)行一次2判定覆蓋每一判定的每個(gè)分支至少執(zhí)行一次3條件覆蓋每一判定中的每個(gè)條件,分別按“真”、“假”至少各執(zhí)行一次4判定/條件覆蓋同時(shí)滿足判定覆蓋和條件覆蓋的要求5(強(qiáng))條件組合覆蓋求出判定中所有條件的各種可能組合值,每一可能的條件組合至少執(zhí)行一次

邏輯覆蓋測(cè)試的5種標(biāo)準(zhǔn)

204.2路徑測(cè)試路徑測(cè)試就是設(shè)計(jì)足夠的測(cè)試用例,覆蓋程序中所有可能的路徑。

測(cè)試用例

通過路徑

覆蓋條件【(2,0,4),(2,0,3)】ace

【(1,1,1),(1,1,1)】abd【(1,1,2),(1,1,3)】abe

【(3,0,3),(3,0,1)】acd21案例:P99

條件測(cè)試路徑選擇

當(dāng)程序中判定多于一個(gè)時(shí),形成的分支結(jié)構(gòu)可以分為兩類:嵌套型分支結(jié)構(gòu)和連鎖型分支結(jié)構(gòu)。對(duì)于連鎖型分支結(jié)構(gòu),若有n個(gè)判定語句,需要有2n個(gè)測(cè)試用例,覆蓋它的2n條路徑。對(duì)于嵌套型分支結(jié)構(gòu),若有n個(gè)判定語句,需要n+1個(gè)測(cè)試用例;22循環(huán)測(cè)試路徑選擇循環(huán)分為4種不同類型:簡(jiǎn)單循環(huán)、連鎖循環(huán)、嵌套循環(huán)和非結(jié)構(gòu)循環(huán)。

(1)簡(jiǎn)單循環(huán)①零次循環(huán):從循環(huán)入口到出口

②一次循環(huán):檢查循環(huán)初始值

③二次循環(huán):檢查2次循環(huán)

④m次循環(huán):檢查多次循環(huán)

⑤最大次數(shù)循環(huán)、比最大次數(shù)多一次、少一次的循環(huán)。23例:求數(shù)組中的最小值k=i;for(j=i+1;j<=n;j++)

if(A[j]<A[k])k=j;

24k=i;j=i+1;j<=n?A[j]<A[k]?j++fdcabek=jYN測(cè)試用例選擇26

對(duì)最內(nèi)層循環(huán)做簡(jiǎn)單循環(huán)的全部測(cè)試。所有其它層的循環(huán)變量置為最小值;

②逐步外推,對(duì)其外面一層循環(huán)進(jìn)行測(cè)試。測(cè)試時(shí)保持所有外層循環(huán)的循環(huán)變量取最小值,所有其它嵌套內(nèi)層循環(huán)的循環(huán)變量取“典型”值;

③反復(fù)進(jìn)行,直到所有各層循環(huán)測(cè)試完畢。④對(duì)全部各層循環(huán)同時(shí)取最小循環(huán)次數(shù),或者同時(shí)取最大循環(huán)次數(shù)(2)

嵌套循環(huán)2728(3)連鎖循環(huán)

如果各個(gè)循環(huán)互相獨(dú)立,則可以用與簡(jiǎn)單循環(huán)相同的方法進(jìn)行測(cè)試。但如果幾個(gè)循環(huán)不是互相獨(dú)立的,則需要使用測(cè)試嵌套循環(huán)的辦法來處理。(4)非結(jié)構(gòu)循環(huán)

這一類循環(huán)應(yīng)該使用結(jié)構(gòu)化程序設(shè)計(jì)方法重新設(shè)計(jì)測(cè)試用例。

29基本路徑測(cè)試基本路徑測(cè)試方法把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),程序中的循環(huán)體最多只執(zhí)行一次。簡(jiǎn)化循環(huán)路徑循環(huán)使路徑數(shù)量急劇增長(zhǎng)簡(jiǎn)化無論循環(huán)的形式和實(shí)際執(zhí)行循環(huán)體的次數(shù)多少,只考慮循環(huán)0次和1次兩種情況進(jìn)入循環(huán)體一次跳出循環(huán)體30基本路徑測(cè)試思路在程序控制流圖的基礎(chǔ)上,分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,設(shè)計(jì)測(cè)試用例的方法。設(shè)計(jì)出的測(cè)試用例要保證在測(cè)試中,程序的每一個(gè)可執(zhí)行語句至少要執(zhí)行一次。311.程序的控制流圖符號(hào)○為控制流圖的一個(gè)結(jié)點(diǎn),表示一個(gè)或多個(gè)無分支的PDL語句或源程序語句。箭頭為邊,表示控制流的方向。32在選擇或多分支結(jié)構(gòu)中,分支的匯聚處應(yīng)有一個(gè)匯聚結(jié)點(diǎn)。邊和結(jié)點(diǎn)圈定的區(qū)域叫做區(qū)域,當(dāng)對(duì)區(qū)域計(jì)數(shù)時(shí),圖形外的區(qū)域也應(yīng)記為一個(gè)區(qū)域。如果判斷中的條件表達(dá)式是由一個(gè)或多個(gè)邏輯運(yùn)算符(OR,AND,...)

連接的復(fù)合條件表達(dá)式,則需改為一系列只有單個(gè)條件的嵌套的判斷。3334352.程序環(huán)路復(fù)雜性程序的環(huán)路復(fù)雜性給出了程序基本路徑集中的獨(dú)立路徑條數(shù),這是確保程序中每個(gè)可執(zhí)行語句至少執(zhí)行一次所必需的測(cè)試用例數(shù)目的上界。環(huán)路復(fù)雜度V(G)=P+1(P:判定節(jié)點(diǎn)數(shù))從控制流圖來看,一條獨(dú)立路徑是至少包含有一條在其它獨(dú)立路徑中從未有過的邊的路徑。36例如,在圖示的控制流圖中,一組獨(dú)立的路徑是

path1:1-11

path2:1-2-3-4-5-10-1-11

path3:1-2-3-6-8-9-10-1-11

path4:1-2-3-6-7-9-10-1-11路徑path1,path2,path3,path4組成了控制流圖的一個(gè)基本路徑集。373.基本路徑測(cè)試法的操作步驟導(dǎo)出控制流圖計(jì)算環(huán)路復(fù)雜度確定基本路徑集生成測(cè)試用例38結(jié)構(gòu)測(cè)試案例分析求數(shù)組中的最小值

k=i;for(j=i+1;j<=n;j++){if(A[j]<A[k])k=j;}k=i;j=i+1j<=n?A[j]<A[k]?k=jj++acbdef39基本路徑測(cè)試340測(cè)試用例用例編號(hào)輸入預(yù)期輸出循環(huán)inA[i]A[i+1]路徑k10111ac1211212abefc1311221abdfc241疑問測(cè)試用例是否足夠?循環(huán)測(cè)試是否足夠?在結(jié)構(gòu)復(fù)雜,測(cè)試用例數(shù)非常多的情況下,這些測(cè)試用例已經(jīng)可以滿足測(cè)試,但并不具有充分性如何達(dá)到充分性?

測(cè)試2次循環(huán)42測(cè)試用例(較充分)用例編號(hào)輸入輸出循環(huán)inA[i]A[i+1]A[i+2]路徑k10111ac1211212abefc1311221abdfc24213123abefbefc15213213abdfbefc26213231abefbdfc37213321abdfbdfc3434.最少測(cè)試用例數(shù)計(jì)算對(duì)于具體的程序,至少要設(shè)計(jì)多少測(cè)試用例?估算最少測(cè)試用例數(shù)幫助執(zhí)行測(cè)試有助于估算測(cè)試的時(shí)間44454.3靜態(tài)白盒測(cè)試4.3.1代碼檢查法代碼檢查方式桌面檢查代碼審查走查代碼檢查項(xiàng)目代碼檢查規(guī)則缺陷檢查表編碼規(guī)范464.3.2靜態(tài)結(jié)構(gòu)分析法測(cè)試工具函數(shù)調(diào)用關(guān)系圖、模塊控制流圖eg.LogiscopeP834.3.3靜態(tài)質(zhì)量度量參考資料:/p-29310738424.html474849505152535455564.4白盒測(cè)試綜合策略先靜后動(dòng)先結(jié)構(gòu)分析,再動(dòng)態(tài)檢測(cè)不同階段,測(cè)試側(cè)重點(diǎn)不同57黑盒測(cè)試(BLACK-BOXTESTING)也稱功能測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試把程序看作一個(gè)不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試,只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用。黑盒測(cè)試方法主要有等價(jià)類劃分、邊界值分析、錯(cuò)誤推測(cè)、場(chǎng)景法、因-果圖、正交實(shí)驗(yàn)法等,主要針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試。5黑盒測(cè)試58

黑盒測(cè)試方法是在程序接口上進(jìn)行測(cè)試,主要是為了發(fā)現(xiàn)以下錯(cuò)誤:是否有不正確或遺漏了的功能?輸入能否正確地接受?能否輸出正確的結(jié)果?是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(例如數(shù)據(jù)庫文件)訪問錯(cuò)誤?性能上是否能夠滿足要求?是否有初始化或終止性錯(cuò)誤?

黑盒測(cè)試的作用59

從理論上講,黑盒測(cè)試只有采取窮舉輸入測(cè)試,把所有可能的輸入都作為測(cè)試情況考慮,才能查出程序中所有的錯(cuò)誤,實(shí)際上測(cè)試情況有無窮多個(gè),人們不僅要測(cè)試所有合法的輸入,還要對(duì)那些不合法的但是可能的輸入進(jìn)行測(cè)試。這樣看來,完全測(cè)試是不可能的,所以我們要進(jìn)行有針對(duì)性的測(cè)試,通過制定測(cè)試案例指導(dǎo)測(cè)試的實(shí)施,保證軟件測(cè)試有計(jì)劃,有步驟,有組織的進(jìn)行。黑盒測(cè)試的作用60黑盒測(cè)試流程規(guī)范(Specification)生成測(cè)試用例測(cè)試用例被測(cè)軟件輸出生成預(yù)期的輸出結(jié)果規(guī)范(Specification)預(yù)期的輸出結(jié)果比較和分析正確/錯(cuò)誤61

(中科院軟件研究所2000年碩士研究生統(tǒng)考題)設(shè)要對(duì)一個(gè)自動(dòng)飲料售貨機(jī)軟件進(jìn)行黑盒測(cè)試。該軟件的規(guī)格說明如下:

“有一個(gè)處理單價(jià)為1元5角錢的盒裝飲料的自動(dòng)售貨機(jī)軟件。若投入1元5角硬幣,按下“可樂”、“雪碧”或“紅茶”按鈕,相應(yīng)的飲料就送出來。若投入的是2元硬幣,在送出飲料的同時(shí)退還5角硬幣?!?/p>

(1)試?yán)靡蚬麍D法,建立該軟件的因果圖;

(2)設(shè)計(jì)測(cè)試該軟件的全部測(cè)試用例。

黑盒測(cè)試---舉例625.1.1等價(jià)類劃分等價(jià)類劃分是一種典型的黑盒測(cè)試方法,使用這一方法時(shí),完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說明來設(shè)計(jì)測(cè)試用例。等價(jià)類劃分方法把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分,然后從每一部分中選取少數(shù)有代表性的數(shù)據(jù)作為測(cè)試用例。63步驟劃分等價(jià)類(列出等價(jià)類表)選取測(cè)試用例劃分等價(jià)類

等價(jià)類是指某個(gè)輸入域的子集合。在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的。測(cè)試某等價(jià)類的代表值就等價(jià)于對(duì)這一類其它值的測(cè)試。64等價(jià)類的劃分有兩種不同的情況:

有效等價(jià)類:是指對(duì)于程序的規(guī)格說明來說,是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。

無效等價(jià)類:是指對(duì)于程序的規(guī)格說明來說,是不合理的,無意義的輸入數(shù)據(jù)構(gòu)成的集合。在設(shè)計(jì)測(cè)試用例時(shí),要同時(shí)考慮有效等價(jià)類和無效等價(jià)類的設(shè)計(jì)。65劃分等價(jià)類的原則。

(1)

如果輸入條件規(guī)定了取值范圍,或值的個(gè)數(shù),則可以確立一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類。

66例如,在程序的規(guī)格說明中,對(duì)輸入條件有一句話:

“……

項(xiàng)數(shù)可以從1到999……”

則有效等價(jià)類是“1≤項(xiàng)數(shù)≤999”兩個(gè)無效等價(jià)類是“項(xiàng)數(shù)<1”或“項(xiàng)數(shù)>999”。在數(shù)軸上表示成:67

(2)

如果輸入條件規(guī)定了輸入值的集合,或者是規(guī)定了“必須如何”的條件,這時(shí)可確立一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。例:在Pascal語言中對(duì)變量標(biāo)識(shí)符規(guī)定為“以字母打頭的……串”。那么所有以字母打頭的構(gòu)成有效等價(jià)類,而不在此集合內(nèi)(不以字母打頭)的歸于無效等價(jià)類。68

(3)

如果輸入條件是一個(gè)布爾量,則可以確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。

(4)

如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序要對(duì)每個(gè)輸入值分別進(jìn)行處理。這時(shí)可為每一個(gè)輸入值確立一個(gè)有效等價(jià)類,此外針對(duì)這組值確立一個(gè)無效等價(jià)類,它是所有不允許的輸入值的集合。例:輸入條件說明學(xué)歷可為:學(xué)士、碩士、博士三種之一,則分別取這三個(gè)值作為三個(gè)有效等價(jià)類,另外把三種學(xué)歷之外的任何學(xué)歷作為無效等價(jià)類69(5)

如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可以確立一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則)。例:Pascal語言規(guī)定“一個(gè)語句必須以分號(hào)‘;’結(jié)束”。這時(shí),可以確定一個(gè)有效等價(jià)類“以‘;’結(jié)束”,若干個(gè)無效等價(jià)類“以‘:’結(jié)束”、“以‘,’結(jié)束”、“以‘

’結(jié)束”、“以LF結(jié)束”等。70確立測(cè)試用例

在確立了等價(jià)類之后,建立等價(jià)類表,列出所有劃分出的等價(jià)類。71再?gòu)膭澐殖龅牡葍r(jià)類中按以下原則選擇測(cè)試用例:

(1)

為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一編號(hào);

(2)

設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未被覆蓋的有效等價(jià)類,重復(fù)這一步,直到所有的有效等價(jià)類都被覆蓋為止;

(3)

設(shè)計(jì)一個(gè)新的測(cè)試用例,使其僅覆蓋一個(gè)尚未被覆蓋的無效等價(jià)類,重復(fù)這一步,直到所有的無效等價(jià)類都被覆蓋為止。72

用等價(jià)類劃分法設(shè)計(jì)測(cè)試用例的實(shí)例

在某一PASCAL語言版本中規(guī)定:“標(biāo)識(shí)符是由字母開頭,后跟字母或數(shù)字的任意組合構(gòu)成。有效字符數(shù)為8個(gè),最大字符數(shù)為80個(gè)。” 并且規(guī)定:“標(biāo)識(shí)符必須先說明,再使用?!?/p>

“在同一說明語句中,標(biāo)識(shí)符至少必須有一個(gè)?!?/p>

73用等價(jià)類劃分方法,建立輸入等價(jià)類表:74下面選取了9個(gè)測(cè)試用例,它們覆蓋了所有的等價(jià)類。

①VARx,T1234567:REAL;

BEGINx:=5.414;

T1234567:=2.732;

...…(1),(2),(4),(8),(9),(12),(14)

②VAR:REAL;

(3)

③VARx,:REAL;(5)

75④VART12345678:REAL;

(6)⑤VART12345......:REAL;

(7)

多于80個(gè)字符⑥VART$:CHAR;

(10)⑦VARGOTO:INTEGER;

(11)⑧VAR2T:REAL;

(13)⑨VARPAR:REAL;

(15)

BEGIN......

PAP:=SIN(5.14*0.8)/6;76練習(xí)1

某報(bào)表處理系統(tǒng)要求用戶輸入處理報(bào)表的日期,日期限制在2003年1月至2008年12月,即系統(tǒng)只能對(duì)該段期間內(nèi)的報(bào)表進(jìn)行處理,如日期不在此范圍內(nèi),則顯示輸入錯(cuò)誤信息。系統(tǒng)日期規(guī)定由年、月的6位數(shù)字字符組成,前四位代表年,后兩位代表月。

如何用等價(jià)類劃分法設(shè)計(jì)測(cè)試用例,

來測(cè)試程序的日期檢查功能?77第一步:等價(jià)類劃分輸入條件有效等價(jià)類無效等價(jià)類

報(bào)表日期的類型及長(zhǎng)度6位數(shù)字字符(1)有非數(shù)字字符(4)少于6個(gè)數(shù)字字符(5)多于6個(gè)數(shù)字字符(6)年份范圍在2003~2008之間(2)小于2003(7)大于2008(8)月份范圍在1~12之間(3)“報(bào)表日期”輸入條件的等價(jià)類表小于1(9)大于12(10)78第二步:為有效等價(jià)類設(shè)計(jì)測(cè)試用例

測(cè)試數(shù)據(jù)期望結(jié)果覆蓋范圍200306等價(jià)類(1)(2)(3)輸入有效對(duì)表中編號(hào)為1,2,3的3個(gè)有效等價(jià)類用一個(gè)測(cè)試用例覆蓋:(1)6位數(shù)字字符(2)年在2003~2008之間(3)月在1~12之間79第三步:為每一個(gè)無效等價(jià)類設(shè)至少設(shè)計(jì)一個(gè)測(cè)試用例

測(cè)試數(shù)據(jù)期望結(jié)果覆蓋范圍003MAY等價(jià)類(4)輸入無效20035等價(jià)類(5)輸入無效2003005等價(jià)類(6)輸入無效200105等價(jià)類(7)輸入無效200905等價(jià)類(8)輸入無效200300等價(jià)類(9)輸入無效200313等價(jià)類(10)輸入無效不能出現(xiàn)相同的測(cè)試用例本例的10個(gè)等價(jià)類至少需要8個(gè)測(cè)試用例80練習(xí)2

對(duì)招干考試系統(tǒng)“輸入學(xué)生成績(jī)”子模塊設(shè)計(jì)測(cè)試錄入準(zhǔn)考證號(hào)的測(cè)試用例。準(zhǔn)考證號(hào)數(shù)據(jù)格式定義:共6位數(shù)字組成,其中第一位為專業(yè)代號(hào):1-行政專業(yè),2-法律專業(yè),3-財(cái)經(jīng)專業(yè)后5位為考生順序號(hào),編碼范圍為:行政專業(yè)準(zhǔn)考證號(hào)碼為:110001~111215

法律專業(yè)準(zhǔn)考證號(hào)碼為:210001~212006

財(cái)經(jīng)專業(yè)準(zhǔn)考證號(hào)碼為:310001~314015

準(zhǔn)考證號(hào)碼的等價(jià)類劃分

有效等價(jià)類:

(1)110001~111215(2)210001~212006(3)310001~314015

無效等價(jià)類:

(4)-

~110000(5)111216~210000(6)212007~31000(7)314016~+81練習(xí)3根據(jù)下面給出的規(guī)格說明,利用等價(jià)類劃分的方法,給出足夠的測(cè)試用例。“一個(gè)程序讀入3個(gè)整數(shù),把這三個(gè)數(shù)值看作一個(gè)三角形的3條邊的長(zhǎng)度值。這個(gè)程序要打印出信息,說明這個(gè)三角形是不等邊的、是等腰的、還是等邊的。”

82舉例輸入條件有效等價(jià)類無效等價(jià)類是否三角形的三條邊(A>0),(1)(B>0),(2)(C>0),(3)(A+B>C),(4)(B+C>A),(5)(A+C>B),(6)(A≤0),(7)(B≤0),(8)(C≤0),(9)(A+B≤C),(10)(B+C≤A),(11)(A+C≤B),(12)是否等腰三角形(A=B),(13)(B=C),(14)(C=A),(15)(A≠B)and(B≠C)and(C≠A)(16)是否等邊三角形(A=B)and(B=C)and(C=A)(17)(A≠B),(18)(B≠C),(19)(C≠A),(20)83舉例序號(hào)【A,B,C】覆蓋等價(jià)類輸出1【3,4,5】(1),(2),(3),(4),(5),(6)一般三角形2【0,1,2】(7)不能構(gòu)成三角形3【1,0,2】(8)4【1,2,0】(9)5【1,2,3】(10)6【1,3,2】(11)7【3,1,2】(12)8【3,3,4】(1),(2),(3),(4),(5),(6),(13)等腰三角形9【3,4,4】(1),(2),(3),(4),(5),(6),(14)10【3,4,3】(1),(2),(3),(4),(5),(6),(15)11【3,4,5】(1),(2),(3),(4),(5),(6),(16)非等腰三角形12【3,3,3】(1),(2),(3),(4),(5),(6),(17)等邊三角形13【3,4,4】(1),(2),(3),(4),(5),(6),(14),(18)非等邊三角形14【3,4,3】(1),(2),(3),(4),(5),(6),(15),(19)15【3,3,4】(1),(2),(3),(4),(5),(6),(13),(20)845.1.2邊界值分析邊界值分析也是一種黑盒測(cè)試方法,是對(duì)等價(jià)類劃分方法的補(bǔ)充。人們從長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)得知,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。85比如,在做三角形計(jì)算時(shí),要輸入三角形的三個(gè)邊長(zhǎng):A、B和C。我們應(yīng)注意到這三個(gè)數(shù)值應(yīng)當(dāng)滿足

A>0、B>0、C>0、

A+B>C、A+C>B、B+C>A,才能構(gòu)成三角形。但如果把六個(gè)不等式中的任何一個(gè)大于號(hào)“>”錯(cuò)寫成大于等于號(hào)“≥”,那就不能構(gòu)成三角形。問題恰出現(xiàn)在容易被疏忽的邊界附近。86邊界值分析不僅考慮輸入條件,還要考慮輸出空間產(chǎn)生的測(cè)試情況這里所說的邊界是指,相當(dāng)于輸入等價(jià)類和輸出等價(jià)類而言,稍高于其邊界值及稍低于其邊界值的一些特定情況。使用邊界值分析方法設(shè)計(jì)測(cè)試用例,首先應(yīng)確定邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于,或剛剛小于邊界的值做為測(cè)試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值做為測(cè)試數(shù)據(jù)。

87

邊界條件類型

如果軟件測(cè)試問題包含確定的邊界,那么數(shù)據(jù)類型可能是:數(shù)值字符位置數(shù)量速度地址尺寸……還要考慮數(shù)據(jù)類型的特征:第一個(gè)/最后一個(gè)最小值/最大值開始/完成空/滿最慢/最快相鄰/最遠(yuǎn)超過/在內(nèi)……88輸入條件報(bào)表日期的類型及長(zhǎng)度1個(gè)數(shù)字字符5個(gè)數(shù)字字符7個(gè)數(shù)字字符有1個(gè)非數(shù)字字符全部是非數(shù)字字符6個(gè)數(shù)字字符顯示出錯(cuò)顯示出錯(cuò)顯示出錯(cuò)顯示出錯(cuò)顯示出錯(cuò)輸入有效日期范圍月份范圍“報(bào)表日期(6位數(shù)字字符)”邊界值分析法測(cè)試用例測(cè)試用例說明測(cè)試數(shù)據(jù)期望結(jié)果選取理由52003520030052005.5MAY---200305月份為1月月份為12月月份<1月份>12200301200312200300200313200301200812200300200813輸入有效輸入有效顯示出錯(cuò)顯示出錯(cuò)輸入有效輸入有效顯示出錯(cuò)顯示出錯(cuò)在有效范圍邊界上選取數(shù)據(jù)僅有1個(gè)合法字符比有效長(zhǎng)度少1比有效長(zhǎng)度多1只有1個(gè)非法字符6個(gè)非法字符類型及長(zhǎng)度均有效最小日期最大日期剛好小于最小日期剛好大于最大日期最小月份最大月份剛好小于最小月份剛好大于最大月份89有效等價(jià)類和用來測(cè)試getNumDaysInMonth()方法所選的有效輸入

有效等價(jià)類一個(gè)月有31天,非閏年19017(七月)一個(gè)月有31天,閏年19047(七月)一個(gè)月有30天,非閏年19016(六月)一個(gè)月有30天,閏年19046(六月)一個(gè)月為28或29天,非閏年19012(二月)月份輸入值年份輸入值一個(gè)月為28或29天,閏年2(二月)190490用來測(cè)試getNumDaysInMonth()方法的附加邊界值等價(jià)類可以被400整除的閏年20002(二月)可以被100整除的非閏年19002(二月)非正數(shù)無效月份12910正數(shù)無效月份131513月份輸入值年份輸入值915.1.3錯(cuò)誤推測(cè)法人們也可以靠經(jīng)驗(yàn)和直覺推測(cè)程序中可能存在的各種錯(cuò)誤,從而有針對(duì)性地編寫檢查這些錯(cuò)誤的例子。這就是錯(cuò)誤推測(cè)法。錯(cuò)誤推測(cè)法的基本想法是:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)它們選擇測(cè)試用例。92錯(cuò)誤推測(cè)法根據(jù)經(jīng)驗(yàn)、直覺和預(yù)感來進(jìn)行測(cè)試?yán)阂欢ㄒ紤]建立處理下列等價(jià)類:缺省值空白空值零值無輸入條件重復(fù)信息(eg.用戶名已存在)在已經(jīng)找到軟件缺陷的地方再找找

93現(xiàn)在的軟件幾乎都是用事件觸發(fā)來控制流程的,事件觸發(fā)時(shí)的情景便形成了場(chǎng)景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。這種在軟件設(shè)計(jì)方面的思想也可引入到軟件測(cè)試中,可以比較生動(dòng)地描繪出事件觸發(fā)時(shí)的情景,有利于測(cè)試設(shè)計(jì)者設(shè)計(jì)測(cè)試用例,同時(shí)使測(cè)試用例更容易理解和執(zhí)行。提出這種測(cè)試思想的是Rational公司,并在RUP2000中文版當(dāng)中有其詳盡的解釋和應(yīng)用。用例場(chǎng)景用來描述流經(jīng)用例的路徑,從用例開始到結(jié)束遍歷這條路徑上所有基本流和備選流。5.1.4場(chǎng)景法94場(chǎng)景法:基本流和備選流右圖中經(jīng)過用例的每條路徑都用基本流和備選流來表示,直黑線表示基本流,是經(jīng)過用例的最簡(jiǎn)單的路徑。備選流用不同的彩色表示,一個(gè)備選流可能從基本流開始,在某個(gè)特定條件下執(zhí)行,然后重新加入基本流中(如備選流1和3);也可能起源于另一個(gè)備選流(如備選流2),或者終止用例而不再重新加入到某個(gè)流(如備選流2和4)。95場(chǎng)景法:基本流和備選流按照上圖中每個(gè)經(jīng)過用例的路徑,可以確定以下不同的用例場(chǎng)景:場(chǎng)景1基本流場(chǎng)景2基本流備選流1場(chǎng)景3基本流備選流1備選流2場(chǎng)景4基本流備選流3場(chǎng)景5基本流備選流3備選流1場(chǎng)景6基本流備選流3備選流1備選流2場(chǎng)景7基本流備選流4場(chǎng)景8基本流備選流3備選流4注:為方便起見,場(chǎng)景5、6和8只考慮了備選流3循環(huán)執(zhí)行一次的情況。965.1.5因果圖因果圖的適用范圍

如果在測(cè)試時(shí)必須考慮輸入條件的各種組合,可使用一種適合于描述對(duì)于多種條件的組合、相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來設(shè)計(jì)測(cè)試用例,這就需要利用因果圖。

因果圖方法最終生成的就是判定表。它適合于檢查程序輸入條件的各種組合情況。97用因果圖生成測(cè)試用例的基本步驟

(1)

分析軟件規(guī)格說明描述中

哪些是原因

(即輸入條件或輸入條件的等價(jià)類)及哪些是結(jié)果

(即輸出條件)

并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識(shí)符。

(2)

分析軟件規(guī)格說明描述中的語義,找出原因與結(jié)果之間,原因與原因之間對(duì)應(yīng)的是什么關(guān)系?

根據(jù)這些關(guān)系,畫出因果圖。

98

(3)

由于語法或環(huán)境限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn)。為表明這些特殊情況,在因果圖上用一些記號(hào)標(biāo)明約束或限制條件。

(4)

把因果圖轉(zhuǎn)換成判定表。

(5)

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

99因果圖設(shè)計(jì)方法

通常在因果圖中,用Ci表示原因,用Ei表示結(jié)果,其基本符號(hào)如下圖所示。Ci和Ei均可取值“0”和“1”,“0”表示某狀態(tài)不出現(xiàn),“1”表示某狀態(tài)出現(xiàn)。因果圖的基本符號(hào)如下:CiEi恒等Ci=1,Ei=1;Ci=0,Ei=0;Ci(a)(b)Ei非Ci=1,Ei=0;Ci=0,Ei=1;100因果圖設(shè)計(jì)方法(d)與C1,C2,C3全=1,Ei=1;

C1,C2,C3有一個(gè)以上=0,Ei=0;C1C2C3Ei(c)C1C2C3Ei或C1,C2,C3有一個(gè)以上=1,Ei=1;C1,C2,C3全=0,Ei=0;101因果圖設(shè)計(jì)方法

為了表示原因與原因之間、結(jié)果與結(jié)果之間可能存在的約束條件,在因果圖中可以附加一些表示約束條件的符號(hào)。從輸入(原因)考慮有4種約束:如圖(a)(b)(c)(d)從輸出(結(jié)果)考慮:還有1種約束,如圖(e)(a)互斥:a和b同時(shí)只能有一個(gè)為1,但可以都為0abac(b)E

包含:a、b、c中至少有一個(gè)為1Ib102因果圖設(shè)計(jì)方法(c)要求:若a=1,則要求b也要=1;其它不約束abab(e)R

強(qiáng)制(屏蔽):a=1,強(qiáng)制b=0;其它不約束M(d)abO唯一:a和b有且僅有一個(gè)為1103

例如,有一個(gè)處理單價(jià)為5角錢的飲料的自動(dòng)售貨機(jī)軟件測(cè)試用例的設(shè)計(jì)。其規(guī)格說明如下:

若投入5角錢或1元錢的硬幣,押下〖橙汁〗或〖啤酒〗的按鈕,則相應(yīng)的飲料就送出來。若售貨機(jī)沒有零錢找,則一個(gè)顯示〖零錢找完〗的紅燈亮,這時(shí)在投入1元硬幣并押下按鈕后,飲料不送出來而且1元硬幣也退出來;若有零錢找,則顯示〖零錢找完〗的紅燈滅,在送出飲料的同時(shí)退還5角硬幣?!?04(1)分析這一段說明,列出原因和結(jié)果

原因:1.

售貨機(jī)有零錢找

2.

投入1元硬幣

5.

投入5角硬幣

4.

押下橙汁按鈕

5.

押下啤酒按鈕 建立中間結(jié)點(diǎn),表示處理中間狀態(tài)

11.

投入1元硬幣且押下飲料按鈕

12.

押下〖橙汁〗或〖啤酒〗的按鈕

15.

應(yīng)當(dāng)找5角零錢并且售貨機(jī)有零錢找

14.

錢已付清

105

結(jié)果:21.

售貨機(jī)〖零錢找完〗燈亮

22.

退還1元硬幣

25.

退還5角硬幣

24.

送出橙汁飲料

25.

送出啤酒飲料

(2)畫出因果圖。所有原因結(jié)點(diǎn)列在左 邊,所有結(jié)果結(jié)點(diǎn)列在右邊。

(3)

由于2與3,4與5不能同時(shí)發(fā)生,

分別加上約束條件E。

(4)因果圖

(5)轉(zhuǎn)換成判定表106

107

108練習(xí)4某電力公司有A、B、C、D四類收費(fèi)標(biāo)準(zhǔn),并規(guī)定:居民用電<100度/月按A類收費(fèi)≥100度/月按B類收費(fèi)動(dòng)力用電<10000度/月,非高峰,B類收費(fèi)≥10000度/月,非高峰,C類收費(fèi)

<10000度/月,高峰,C類收費(fèi)≥10000度/月,高峰,D類收費(fèi)109組合條件條件(原因)

動(dòng)作(結(jié)果)ABC123123456101100011000110000100001104101050011D000110010000測(cè)試用例110為判定表每一列設(shè)計(jì)一個(gè)測(cè)試用例:1列居民電,90度/月A2列居民電,110度/月B3列動(dòng)力電,非高峰,8000度/月B4列動(dòng)力電,非高峰,1.2萬度/月C5列動(dòng)力電,高峰,0.9萬度/月C6列動(dòng)力電,高峰,1.1萬度/月D

條件測(cè)試用例預(yù)期結(jié)果組合(輸入數(shù)據(jù))(輸出動(dòng)作)1115.1.6正交實(shí)驗(yàn)法1、正交測(cè)試用例設(shè)計(jì)簡(jiǎn)介正交測(cè)試用例設(shè)計(jì)又稱為組合實(shí)驗(yàn)法,利用因果圖來設(shè)計(jì)測(cè)試用例時(shí),作為輸入條件的原因與輸出結(jié)果之間的因果關(guān)系,有時(shí)很難從軟件需求規(guī)格說明中得到。往往因果關(guān)系非常龐大,以至于據(jù)此因果圖而得到的測(cè)試用例數(shù)目多的驚人,給軟件測(cè)試帶來沉重的負(fù)擔(dān),為了有效地,合理地減少測(cè)試的工時(shí)與費(fèi)用,可利用正交實(shí)驗(yàn)設(shè)計(jì)方法進(jìn)行測(cè)試用例的設(shè)計(jì)。正交實(shí)驗(yàn)設(shè)計(jì)方法是依據(jù)伽羅瓦(Galois,1811-1832,法國(guó)數(shù)學(xué)家))理論,從大量的測(cè)試數(shù)據(jù)(測(cè)試用例)中挑選適量的,有代表性的點(diǎn)(測(cè)試用例),從而合理地安排測(cè)試的一種科學(xué)實(shí)驗(yàn)設(shè)計(jì)方法。1122、正交試驗(yàn)法的使用原因

(A)測(cè)試需求對(duì)某人進(jìn)行查詢,假設(shè)查詢某個(gè)人時(shí)有三個(gè)查詢條件:根據(jù)“姓名”進(jìn)行查詢根據(jù)“身份證號(hào)碼”查詢根據(jù)“手機(jī)號(hào)碼”查詢113正交試驗(yàn)法的使用原因(續(xù))

(B)全部測(cè)試

分析上述測(cè)試需求,有3個(gè)被測(cè)元素,我們稱為因素,每個(gè)因素有兩個(gè)取值(填寫,不填寫),我們稱取值為因子,所以全部的測(cè)試用例個(gè)數(shù)是2*2*2=8,參見下表。序號(hào)姓名身份證號(hào)碼手機(jī)號(hào)碼10002011300141005110601070118111114正交試驗(yàn)法的使用原因(續(xù))

(C)利用正交表測(cè)試,參見下表。(D)正交表測(cè)試,再補(bǔ)充一條可疑測(cè)試用例得到的結(jié)果,參見下表。序號(hào)姓名身份證號(hào)碼手機(jī)號(hào)碼1000201131014110序號(hào)姓名身份證號(hào)碼手機(jī)號(hào)碼100020113101411051111153、因素和因子的概念(A)什么是因素(Factor)在一項(xiàng)測(cè)試中,凡欲考察的變量稱為因素(變量)。(B)什么是因子(Level)在測(cè)試范圍內(nèi),因素被考察的值稱為因子(變量的取值)。

(C)什么是正交試驗(yàn)設(shè)計(jì)

正交試驗(yàn)設(shè)計(jì)是研究多因素、多因子的一種設(shè)計(jì)方法,它是根據(jù)正交性從全面測(cè)試中挑選出部分有代表性的點(diǎn)進(jìn)行測(cè)試,這些有代表性的點(diǎn)具備了“均勻分散,齊整可比”的特點(diǎn),正交試驗(yàn)設(shè)計(jì)是一種基于正交表的、高效率、快速、經(jīng)濟(jì)的測(cè)試設(shè)計(jì)方法。1164、正交表的構(gòu)成

正交表是一整套規(guī)則的設(shè)計(jì)表格(Ln(tc)),L為正交表的代號(hào),n為測(cè)試的次數(shù),t為因子數(shù),c為因素?cái)?shù)/列數(shù),也就是可能安排最多的因素個(gè)數(shù)。例如L9(34),它表示需作9次測(cè)試,最多可觀察4個(gè)因素,每個(gè)因素均為3因子。(A)行數(shù)(Runs):正交表中的行的個(gè)數(shù),即測(cè)試的次數(shù)。(B)因素?cái)?shù)(Factors):正交表中列的個(gè)數(shù)。(C)因子數(shù)(Levels):任何單個(gè)因素能夠取得的值的最大個(gè)數(shù)。正交表中的包含的值為從0到數(shù)“因子數(shù)-1”或從1到“因子數(shù)”。(D)正交表的表示形式:Ln(tc)(因子數(shù)因素?cái)?shù))。一個(gè)正交表中也可以各列的水平數(shù)不相等,我們稱它為混合型正交表,如L8(4×24),此表的5列中,有1列為4因子,4列為2因子。1175、正交表的正交性

(A)整齊可比性在同一張正交表中,每個(gè)因素的每個(gè)因子出現(xiàn)的次數(shù)是完全相同的。由于在測(cè)試中每個(gè)因素的每個(gè)因子與其它因素的每個(gè)因子參與測(cè)試的機(jī)率是完全相同的,這就保證在各個(gè)因子中最大程度的排除了其它因素因子的干擾。因而,能最有效地進(jìn)行比較和作出展望,容易找到好的測(cè)試條件。例如:在兩因子正交表中,任何一列都有數(shù)碼“1”與“2”,且任何一列中它們出現(xiàn)的次數(shù)是相等的;如在三因子正交表中,任何一列都有“1”、“2”、“3”,且在任一列的出現(xiàn)數(shù)均相等。118正交表的正交性(續(xù))

(B)均衡分散性在同一張正交表中,任意兩列(兩個(gè)因素)的因子搭配(橫向形成的數(shù)字對(duì))是完全相同的。這樣就保證了測(cè)試條件均衡地分散在因素因子的完全組合之中,因而具有很強(qiáng)的代表性,容易得到好測(cè)試條件。例如在兩因子正交表中,任何兩列(同一橫行內(nèi))有序?qū)ψ庸灿?種:(1.1)、(1.2)、(2.1)、(2.2)。每種對(duì)數(shù)出現(xiàn)次數(shù)相等。在三因子情況下,任何兩列(同一橫行內(nèi))有序?qū)灿?種,1.1、1.2、1.3、2.1、2.2、2.3、3.1、3.2、3.3,且每對(duì)出現(xiàn)數(shù)也均相等。1196、正交表設(shè)計(jì)步驟

正交表設(shè)計(jì)的主要步驟如下:①確定因素?cái)?shù)(列數(shù))根據(jù)測(cè)試目的,選擇處理因素與不可忽略的交互作用,明確其共有多少個(gè)數(shù),如果對(duì)研究中的某些問題尚不太了解,列可多一些,但一般不宜過多。當(dāng)每個(gè)試驗(yàn)號(hào)無重復(fù),只有1個(gè)試驗(yàn)數(shù)據(jù)時(shí),可設(shè)2個(gè)或多個(gè)空白列,作為計(jì)算誤差項(xiàng)之用。②確定各因素的因子數(shù)根據(jù)測(cè)試目的,一般二因子(有、無)可作因素篩選用;也可適用于測(cè)試次數(shù)少、分批進(jìn)行的研究。三因子可觀察變化趨勢(shì),選擇最佳搭配;多因子能以一次滿足測(cè)試要求。120正交表設(shè)計(jì)步驟(續(xù))③選定正交表根據(jù)確定的列數(shù)(c)與因子數(shù)(t)選擇相應(yīng)的正交表。常用的正交表有L8(27)、L9(34)、L16(45)、L8(4x24)等。在行數(shù)為mn型的正交表中(m,n是正整數(shù)),測(cè)試次數(shù)(行數(shù))=因素?cái)?shù)x(每列因子數(shù)-1)+1,例如:L8(27),8=7x(2-1)+1,利用上述關(guān)系式可以從所要考察的因子數(shù)來決定最低的測(cè)試次數(shù),而選擇合適的正交表。例如要考察5個(gè)3因子及一個(gè)2因子,則起碼的測(cè)試次數(shù)為5x(3-1)+1x(2-1)+1=12(次),這就是說要在行數(shù)不小于12,而且既有2因子列又有3因子列的正交表中選擇,L18(2x37)適合。綜上所述,(a)需實(shí)際因素?cái)?shù)≥正交表因素?cái)?shù);實(shí)際因素的因子數(shù)≥正交表因素的因子數(shù)。(b)當(dāng)有2個(gè)或以上正交表可以被選擇時(shí),需選擇行數(shù)最少的正交表。121正交表設(shè)計(jì)步驟(續(xù))④把變量的值映射到表中。⑤把每一行各因素的取值組合做為一個(gè)測(cè)試用例。⑥補(bǔ)充上有價(jià)值的其它測(cè)試用例正交實(shí)驗(yàn)的正交表設(shè)計(jì)是正交設(shè)計(jì)的關(guān)鍵,它承擔(dān)著將各因素及交互作用合理安排到正交表的各列中的重要任務(wù),因此一個(gè)正交表設(shè)計(jì)就是一個(gè)設(shè)計(jì)方案。122示例1:因子數(shù)相同示例2:因子數(shù)相同,但在正交表中找不到相同的因素?cái)?shù)示例3:因子數(shù)不相同示例123

因子數(shù)相同:因子數(shù)(變量的取值)相同、因素?cái)?shù)(變量)剛好符合正交表。(A)測(cè)試需求對(duì)某人進(jìn)行查詢,假設(shè)查詢某個(gè)人時(shí)有三個(gè)查詢條件:根據(jù)“姓名”進(jìn)行查詢根據(jù)“身份證號(hào)碼”查詢根據(jù)“手機(jī)號(hào)碼”查詢1、示例1:因子數(shù)相同124(B)考慮查詢條件要么不填寫,要么填寫,此時(shí)可用正交表進(jìn)行設(shè)計(jì)(C)確定因素?cái)?shù)和因子

①有三個(gè)因素:姓名、身份證號(hào)、手機(jī)號(hào)碼②每個(gè)因素有兩個(gè)因子:姓名:填、不填身份證號(hào):填、不填手機(jī)號(hào)碼:填、不填(D)選擇正交表表中的因素?cái)?shù)>=3表中至少有三個(gè)因素的水平數(shù)>=2行數(shù)取最少的一個(gè)結(jié)果:L4(23)示例1:因子數(shù)相同(續(xù))125(E)正交表姓名:0—>填寫;1—>不填寫身份證號(hào):0—>填寫;1—>不填寫手機(jī)號(hào)碼:0—>填寫;1—>不填寫(F)用L4(23)設(shè)計(jì)的測(cè)試用例測(cè)試用例如下:1:填寫姓名、填寫身份證號(hào)、填寫手機(jī)號(hào)2:填寫姓名、不填身份證號(hào)、不填手機(jī)號(hào)3:不填姓名、填寫身份證號(hào)、不填手機(jī)號(hào)4:不填姓名、不填身份證號(hào)、填寫手機(jī)號(hào)增補(bǔ)測(cè)試用例5:不填姓名、不填身份證號(hào)、不填手機(jī)號(hào)示例1:因子數(shù)相同(續(xù))126(A)測(cè)試需求(B)確定因素和因子①有五個(gè)因素:音形碼、拼音碼、路名碼、行業(yè)類別和特征碼。②每個(gè)因素有兩個(gè)因子:

音形碼:填、不填拼音碼:填、不填路名碼:填、不填行業(yè)類別:填、不填特征碼:填、不填2、示例2:因子數(shù)相同,但在正交表中找不到相同的因素?cái)?shù)127(C)選擇正交表表中的因素?cái)?shù)>=5表中至少有五個(gè)因素的水平數(shù)>=2行數(shù)取最少的一個(gè)結(jié)果:L8(27)(D)正交表音形碼:1—>不填寫;2—>填寫拼音碼: 1—>不填寫;2—>填寫路名碼: 1—>不填寫;2—>填寫行業(yè)類別:1—>不填寫;2—>填寫特征碼: 1—>不填寫;2—>填寫帶入因子后得到示例2:因子數(shù)相同,但在正交表中找不到相同的因素?cái)?shù)(續(xù))128

(E)用L8(27)設(shè)計(jì)的測(cè)試用例音形碼不填、拼音碼不填、路名碼不填、行業(yè)類別不填、特征碼不填音形碼不填、拼音碼不填、路名碼不填、行業(yè)類別填寫、特征碼填寫音形碼不填、拼音碼填寫、路名碼填寫、行業(yè)類別不填、特征碼不填音形碼不填、拼音碼填寫、路名碼填寫、行業(yè)類別填寫、特征碼填寫音形碼填寫、拼音碼不填、路名碼填寫、行業(yè)類別不填、特征碼填寫音形碼填寫、拼音碼不填、路名碼填寫、行業(yè)類別填寫、特征碼不填音形碼填寫、拼音碼填寫、路名碼不填、行業(yè)類別不填、特征碼填寫音形碼填寫、拼音碼填寫、路名碼不填、行業(yè)類別填寫、特征碼不填示例2:因子數(shù)相同,但在正交表中找不到相同的因素?cái)?shù)(續(xù))129(A)測(cè)試需求假設(shè)有一個(gè)系統(tǒng)有5個(gè)獨(dú)立的變量(A,B,C,D,E)。變量A和B都有兩個(gè)取值(A1、A2和B1、B2)。變量C和D都有三個(gè)可能的取值(C1、C2、C3和D1、D2、D3)。變量E有六個(gè)可能的取值(E1、E2、E3、E4、E5、E6)。(B)確定因素和因子①有五個(gè)因素(變量):A、B、C、D和E。②兩個(gè)因素有兩個(gè)因子(變量的取值)、兩個(gè)因素有三個(gè)因子,一個(gè)因素有六個(gè)因子。A:A1、A2B:B1、B2C:C1、C2、C3D:D1、D2、D3E:E1、E2、E3、E4、E5、E63、示例3:因子數(shù)不相同130(C)選擇正交表表中的因素?cái)?shù)(變量)>=5表中有二個(gè)因素的因子(變量的取值)>=2另外二個(gè)因素的因子>=3另外一個(gè)因素的因子>=6從L49(78)、L18(36×61)中取行數(shù)最少的一個(gè)結(jié)果:L18(36×61)(D)正交表A:0—>A1,1—>A2;B:0—>B1,1—>B2;C:0—>C1,1—>C2,2—>C3;D:0—>D1,1—>D2,2—>D3;E:0—>E1,1—>E2,2—>E3,3—>E4,4—>E5,5—>E6;示例3:因子數(shù)不相同(續(xù))131(E)找到正交表L18(36×61)

。

因?yàn)樽兞恐挥?個(gè),所以在7列中需要?jiǎng)h除兩列,因?yàn)榈?個(gè)因素中含有6個(gè)因子能保證E的6個(gè)取值,所以不能刪除第7列,結(jié)論是刪除其它6列中的任意兩列均可。因子中出現(xiàn)不能帶入的值時(shí),將該因素的取值循環(huán)帶入。(F)用L18(36×61)設(shè)計(jì)的測(cè)試用例測(cè)試用例省略測(cè)試用例減少數(shù):216—>18加上一些可疑的情況(設(shè)為n個(gè))為18+n它比原來也少多了示例3:因子數(shù)不相同(續(xù))132

學(xué)創(chuàng)網(wǎng)案例分析

學(xué)創(chuàng)網(wǎng)后臺(tái),圖書管理/錄入圖書/添加圖書模塊進(jìn)行正交測(cè)試,界面參考如下圖。案例133(A)測(cè)試需求該模塊有有11個(gè)獨(dú)立的變量。(B)確定因素和因子①有11個(gè)因素(變量)。②9個(gè)因素有2個(gè)因子(變量的取值)、1個(gè)因素有3個(gè)因子,1個(gè)因素有4個(gè)因子。譯者:可填、可不填出版社:可填、可不填出版日期:可填、可不填I(lǐng)SBN:可填、可不填條形碼:可填、可不填是否折扣:可選、可不選版次:可填、可不填圖書簡(jiǎn)介:可填、可不填裝幀:平裝、精裝開本:8、16、32圖書分類:考試、輔導(dǎo)書、工具書、教材134(C)選擇正交表表中的因素?cái)?shù)(變量)>=11表中有9個(gè)因素的因子(變量的取值)>=21個(gè)因素的因子>=31個(gè)因素的因子>=4從L24

(211×4×6)、L24(3×4×213)中取行數(shù)最少的一個(gè)結(jié)果:雖然兩個(gè)行數(shù)相同,但是選擇L24(3×4×213)更接近。(D)正交表譯者(E):可填(0)、可不填(1)出版社(F):可填(0)、可不填(1)出版日期(G):可填(0)、可不填(1)ISBN(H):可填(0)、可不填(1)條形碼(I):可填(0)、可不填(1)是否折扣(J):可選(0)、可不選(1)版次(K):可填(0)、可不填(1)圖書簡(jiǎn)介(L):可填(0)、可不填(1)裝幀(M):平裝(0)、精裝(1)開本(N):8(0)、16(1)、32(2)圖書分類(O):考試(0)、輔導(dǎo)書(1)、工具書(2)、教材(3)(E)找到正交表L24(3×4×213),其中刪掉4列A、B、C、D。135

靜態(tài)測(cè)試是尋找文檔、程序代碼中可能存在的錯(cuò)誤而不執(zhí)行程序代碼的過程。靜態(tài)測(cè)試可以手工進(jìn)行,也可以借助軟件工具自動(dòng)進(jìn)行。靜態(tài)測(cè)試技術(shù)具有以下特點(diǎn):靜態(tài)測(cè)試不必動(dòng)態(tài)地執(zhí)行程序,也就不必進(jìn)行測(cè)試用例設(shè)計(jì)和結(jié)果判斷等工作。靜態(tài)測(cè)試可以由人工進(jìn)行,充分發(fā)揮人的邏輯思維優(yōu)勢(shì),行之有效。靜態(tài)測(cè)試實(shí)施不需特別條件,容易開展。靜態(tài)測(cè)試在發(fā)現(xiàn)了錯(cuò)誤的同時(shí)也就定位了錯(cuò)誤,不需做額外的錯(cuò)誤定位工作。 靜態(tài)測(cè)試主要包括由人工進(jìn)行的軟件需求評(píng)審,軟件設(shè)計(jì)評(píng)審,代碼走查以及主要由軟件工具自動(dòng)進(jìn)行的工具輔助靜態(tài)分析。

靜態(tài)測(cè)試136

動(dòng)態(tài)測(cè)試:實(shí)際運(yùn)行被測(cè)程序,輸入相應(yīng)的測(cè)試用例,判定執(zhí)行結(jié)果是否符合要求,從而檢驗(yàn)程序的正確性、可靠性和有效性。動(dòng)態(tài)測(cè)試技術(shù)具有以下特點(diǎn):實(shí)際運(yùn)行被測(cè)試程序,取得程序運(yùn)行的真實(shí)情況、動(dòng)態(tài)情況,進(jìn)而進(jìn)行分析。必須生成測(cè)試數(shù)據(jù)來運(yùn)行程序,測(cè)試質(zhì)量依賴于測(cè)試數(shù)據(jù)。生成測(cè)試數(shù)據(jù),分析測(cè)試結(jié)果工作量大,使開展測(cè)試工作費(fèi)時(shí)、費(fèi)力。動(dòng)態(tài)測(cè)試中涉及多方面工作,人員多、設(shè)備多、數(shù)據(jù)多,要求有較好的管理和工作規(guī)程。動(dòng)態(tài)測(cè)試包括三部分核心內(nèi)容:生成測(cè)試數(shù)據(jù),執(zhí)行程序和驗(yàn)證程序的輸出結(jié)果。動(dòng)態(tài)測(cè)試137動(dòng)態(tài)測(cè)試適合層次:?jiǎn)卧獪y(cè)試集成測(cè)試系統(tǒng)測(cè)試用戶的驗(yàn)收測(cè)試回歸測(cè)試動(dòng)態(tài)測(cè)試138軟件測(cè)試方法測(cè)試用例選擇方法靜態(tài)測(cè)試動(dòng)態(tài)測(cè)試白盒測(cè)試調(diào)試、單元測(cè)試黑盒測(cè)試集成、系統(tǒng)、驗(yàn)收軟件測(cè)試方法與測(cè)試用例設(shè)計(jì)方法關(guān)系白盒測(cè)試檢查設(shè)計(jì)代碼走讀黑盒測(cè)試檢查產(chǎn)品說明書139測(cè)試方法組合靜態(tài)黑盒測(cè)試動(dòng)態(tài)黑盒測(cè)試靜態(tài)白盒測(cè)試動(dòng)態(tài)白盒測(cè)試140檢查產(chǎn)品說明書

---靜態(tài)黑盒測(cè)試產(chǎn)品說明書文檔(圖片/文字)實(shí)例(計(jì)算器)產(chǎn)品說明書的必要性一致性確保最終產(chǎn)品符合客戶要求(每個(gè)人對(duì)于產(chǎn)品外觀、功能和使用方式都有獨(dú)到的見解,必須統(tǒng)一)正確計(jì)劃測(cè)試量可以作為測(cè)試項(xiàng)目的書面材料141產(chǎn)品說明書產(chǎn)品說明書:無需執(zhí)行程序無需了解其建立途徑(P13:易用性研究、與客戶溝通、焦點(diǎn)人群、銷售收入等)盡早找出軟件缺陷如何測(cè)試產(chǎn)品說明書/需求?142如何測(cè)試產(chǎn)品說明書第一步:對(duì)產(chǎn)品說明書進(jìn)行高級(jí)審查設(shè)身處地為客戶著想、熟悉軟件應(yīng)用領(lǐng)域相關(guān)知識(shí)研究現(xiàn)有的標(biāo)準(zhǔn)和規(guī)范公司慣用語/約定、行業(yè)要求/國(guó)家標(biāo)準(zhǔn)、用戶界面、硬件等審查和測(cè)試同類軟件,用于檢查本產(chǎn)品的產(chǎn)品說明書規(guī)模、復(fù)雜性、測(cè)試性、質(zhì)量/可靠性先大局,再細(xì)節(jié);先整體,再局部。第二步:產(chǎn)品說明書的低級(jí)測(cè)試技術(shù)產(chǎn)品說明書屬性檢查清單完整、準(zhǔn)確、精確、一致、貼切、合理、代碼無關(guān)、可測(cè)試產(chǎn)品說明書用語檢查清單檢查對(duì)問題的描述是否準(zhǔn)確清晰143閉著眼睛測(cè)試軟件

---動(dòng)態(tài)黑盒測(cè)試1動(dòng)態(tài)黑盒測(cè)試隨意敲擊鍵盤尋找破綻/缺陷目標(biāo)明確的結(jié)構(gòu)化方法進(jìn)行測(cè)試窮舉測(cè)試不可能,選取典型的/具有代表性的數(shù)據(jù)進(jìn)行測(cè)試144動(dòng)態(tài)黑盒測(cè)試2通過測(cè)試和失敗測(cè)試通過測(cè)試:軟件能做什么失敗測(cè)試:采取各種手段搞垮軟件尋求缺陷eg.測(cè)試剛下線的汽車1453等價(jià)類劃分Windows文件名測(cè)試(P46)

windows文件名可以包含除了、/:*?“<>之外的字符;文件名長(zhǎng)度是1-255個(gè)。1464邊界值分析及錯(cuò)誤推測(cè)邊界條件、邊界類型、測(cè)試邊界線(P50)、次邊界條件、2的乘方(eg1M)、ASCII表、默認(rèn)、空白、空值、零值、無、重復(fù)/已存在數(shù)據(jù)、非法、錯(cuò)誤、不正確和垃圾數(shù)據(jù)1475通過狀態(tài)測(cè)試-1軟件狀態(tài):軟件當(dāng)前所處的情況或模式實(shí)例:畫圖板(P55)實(shí)例:word編輯器(未修改/修改)1485通過狀態(tài)測(cè)試–2軟件測(cè)試員必須測(cè)試程序的狀態(tài)及其轉(zhuǎn)換測(cè)試軟件的邏輯流程之問題建立狀態(tài)轉(zhuǎn)換圖所有狀態(tài)狀態(tài)間轉(zhuǎn)換條件進(jìn)入/退出狀態(tài)時(shí)需設(shè)置的信息及輸出結(jié)果減少要測(cè)試的狀態(tài)及轉(zhuǎn)換的數(shù)量(P58)狀態(tài)測(cè)試:測(cè)試狀態(tài)及其轉(zhuǎn)換并

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論