大三軟件測試方法stmt_第1頁
大三軟件測試方法stmt_第2頁
大三軟件測試方法stmt_第3頁
大三軟件測試方法stmt_第4頁
大三軟件測試方法stmt_第5頁
已閱讀5頁,還剩81頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件測試方法和技術(shù)

第2版

第3章軟件測試的方法謝紅薇Mobil:QQ:740393608

第2章回顧軟件缺陷是軟件質(zhì)量的對立面軟件缺陷(Bug)是什么驗(yàn)證和確認(rèn) 軟件測試的分類和階段

-單元、集成、系統(tǒng)(性能、適用性、兼容性…)、驗(yàn)收測試軟件測試的工作范疇

-策略、計(jì)劃、設(shè)計(jì)、執(zhí)行、報(bào)告、評估…

第3章軟件測試的方法3.1白盒測試方法3.2黑盒測試方法3.3靜態(tài)測試和動態(tài)測試3.4主動測試和被動測試3.5形式化測試方法3.6基于風(fēng)險(xiǎn)的測試3.7模糊測試方法3.8ALAC測試和隨機(jī)測試方法

方法論和具體方法從方法論看,更多體現(xiàn)了一種哲學(xué)的思想,例如辯證統(tǒng)一的方法,在測試中有許多對立統(tǒng)一體,如靜態(tài)測試和動態(tài)測試、白盒測試和黑盒測試、自動化測試和手工測試等。軟件測試的方法論來源于軟件工程的方法論,例如有面向?qū)ο蟮拈_發(fā)方法,就有面向?qū)ο蟮臏y試方法;有敏捷方法,就有和敏捷方法對應(yīng)的測試方法。

黑盒子和白盒子功能測試數(shù)據(jù)驅(qū)動測試結(jié)構(gòu)測試邏輯驅(qū)動測試

客戶需求事件驅(qū)動輸入輸出

靜態(tài)的和動態(tài)的主持人作者記錄員列席人員內(nèi)審員技術(shù)專業(yè)人員用戶代表不正式正式互審

走讀審查會議運(yùn)行程序

自動測試和手工測試手工模擬用戶操作

3.1白盒測試方法3.1.1語句覆蓋3.1.2判定覆蓋3.1.3條件覆蓋3.1.4判定條件覆蓋3.1.5條件組合覆蓋3.1.6路徑覆蓋3.1.7基本路徑測試法

白盒測試方法邏輯覆蓋:以程序的內(nèi)部邏輯結(jié)構(gòu)為基礎(chǔ),分為語句覆蓋、判定覆蓋、判定-條件覆蓋、條件組合覆蓋等基本路徑測試:在程序控制流程的基礎(chǔ)上,分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計(jì)測試用例。

3.1.1

語句覆蓋語句覆蓋法的基本思想是設(shè)計(jì)若干測試用例,運(yùn)行被測程序,使程序中的每個(gè)可執(zhí)行語句至少被執(zhí)行一次如果是順序結(jié)構(gòu),就是讓測試從頭執(zhí)行到尾如果有分支、條件和循環(huán),需要利用下面的方法,執(zhí)行足夠的測試覆蓋全部語句

3.1.2

判定覆蓋判定覆蓋法的基本思想是設(shè)計(jì)若干用例,運(yùn)行被測程序,使得程序中每個(gè)判斷的取真分支和取假分支至少經(jīng)歷一次,即判斷真假值均曾被滿足。一個(gè)判定往往代表著程序的一個(gè)分支,

所以判定覆蓋也被稱為分支覆蓋。

分支測試-example1

PROGRAMsom(maxint,N:INT)2 INTresult:=0;i:=0;3

IFN<04

THENN:=-N;5

WHILE(i<N)AND(result<=maxint)6

DO i:=i+1;7 result:=result+i;8

OD;9

IFresult<=maxint10

THENOUTPUT(result)11

ELSEOUTPUT(“toolarge”)12

END.

分支測試-continuedi:=i+1;result:=result+i;(i<N)and(result<=maxint)result<=maxintN<0N:=-N;output(result);output(toolarge);exitstartyesnonoyesyesnoN<0測試覆蓋全部語句:

maxint N10 -10 -1但沒有覆蓋所有分支;用例采取:maxint N10 30 -1則覆蓋全部分支(N>=0)result=0i=0

3.1.3

條件覆蓋條件覆蓋的基本思想是設(shè)計(jì)若干測試用例,執(zhí)行被測程序以后,要使每個(gè)判斷中每個(gè)條件的可能取值至少滿足一次。(i<N)and(result<=maxint)TrueFalseresult<=maxinti<NTrueFalse

條件測試目標(biāo):保證測試到每個(gè)邏輯條件取值為true

false簡單條件: (arel-opb)whererel-op={<,≤,=,≠,≥,>}(和NOT連用),即a≤b;NOT(a≤b)組合條件:由AND,OR連接的多個(gè)簡單條件,即(a>b)AND(c<d)關(guān)系表達(dá)式:(E1rel-opE2)其中E1

和E2

是算術(shù)表達(dá)式,即((a*b+c)>(a+b+c))測試發(fā)現(xiàn)的錯誤:布爾操作符

關(guān)系操作符布爾變量

–算術(shù)表達(dá)式布爾括弧

條件測試(2)域測試表達(dá)式E1

rel-opE2,測試E1

≧≦=<>≠E2如果E1

和E2

正確,發(fā)現(xiàn)rel-op的錯誤發(fā)現(xiàn)E1

或E2的錯誤,全面分析它們的不同如果某表達(dá)式含有n個(gè)變量,則

需要進(jìn)行2n

測試分支測試組合條件C,測試C為true和false分支、以及每個(gè)條件例如C=(a>b)AND(c<d)測試: a>bTRUE,FALSEc<dTRUE,FALSEC

TRUE,FALSETrueANDTrueT.AndF.,F.AndT.,

F.AndF.

條件測試的示例(i=result=0):maxintN

i<N

result<=maxint-11truefalse10falsetrue測試了所有條件但沒有覆蓋判定(decision)

條件覆蓋不等于判定覆蓋i:=i+1;result:=result+i;(i<N)and(result<=maxint)result<=maxintN<0N:=-N;output(result);output(toolarge);exitstartyesnonoyesyesno

3.1.4

判定條件覆蓋判定-條件覆蓋是判定和條件覆蓋設(shè)計(jì)方法的交集,即設(shè)計(jì)足夠的測試用例,使得判斷條件中的所有條件可能取值至少執(zhí)行一次,同時(shí),所有判斷的可能結(jié)果至少執(zhí)行一次測試用例取值條件具體取值條件判定條件通過路徑輸入:a=2,b=1,c=6輸出:a=2,b=1,c=5T1,T2,T3,T4a>0,b>0,

a>1,c>1M=.T.N=.T.P1(1-2-4)輸入:a=-1,b=-2,c=-3輸出:a=-1,b=-2,c=-5F1,F(xiàn)2,F(xiàn)3,F(xiàn)4a<=0,b<=0,a<=1,c<=1M=.F.N=.F.P4(1-3-5)

3.1.5

條件組合測試條件組合覆蓋的基本思想是設(shè)計(jì)足夠的測試用例,使得判斷中每個(gè)條件的所有可能至少出現(xiàn)一次,并且每個(gè)判斷本身的判定結(jié)果也至少出現(xiàn)一次。它與條件覆蓋的差別是它不是簡單地要求每個(gè)條件都出現(xiàn)“真”與“假”兩種結(jié)果,而是要求讓這些結(jié)果的所有可能組合都至少出現(xiàn)一次

示例(1)組合編號覆蓋條件取值判定條件取值判定-條件組合1T1,T2M=.T.a>0,b>0,M取真2T1,F(xiàn)2M=.F.a>0,b<=0,M取假3F1,T2M=.F.a<=0,b>0,M取假4F1,F(xiàn)2M=.F.a<=0,b<=0,M取假5T3,T4N=.T.a>1,c>1,N取真6T3,F(xiàn)4N=.T.a>1,c<=1,N取真7F3,T4N=.T.a<=1,c>1,N取真8F3,F(xiàn)4N=.F.a<=1,c<=1,N取假

示例(2)測試用例覆蓋條件覆蓋路徑覆蓋組合輸入:a=2,b=1,c=6輸出:a=2,b=1,c=5T1,T2,T3,T4P1(1-2-4)1,5輸入:a=2,b=-1,c=-2輸出:a=2,b=-1,c=-2T1,F(xiàn)2,T3,F(xiàn)4P3(1-3-4)2,6輸入:a=-1,b=2,c=3輸出:a=-1,b=2,c=6F1,T2,F(xiàn)3,T4P3(1-3-4)3,7輸入:a=-1,b=-2,c=-3輸出:a=-1,b=-2,c=-5F1,F(xiàn)2,F(xiàn)3,F(xiàn)4P4(1-3-5)4,8覆蓋了所有組合,但覆蓋路徑有限,1-2-5沒被覆蓋

3.1.6

路徑測試顧名思義,路徑覆蓋就是設(shè)計(jì)所有的測試用例,來覆蓋程序中的所有可能的執(zhí)行路徑。測試用例覆蓋路徑覆蓋條件覆蓋組合輸入:a=2,b=1,c=6輸出:a=2,b=1,c=5P1(1-2-4)T1,T2,T3,T41,5輸入:a=1,b=1,c=-3輸出:a=1,b=1,c=-2P2(1-2-5)T1,T2,F(xiàn)3,F(xiàn)41,8輸入:a=2,b=-1,c=-2輸出:a=2,b=-1,c=-2P3(1-3-4)T1,F(xiàn)2,T3,F(xiàn)42,6輸入:a=-1,b=2,c=3輸出:a=-1,b=2,c=6P3(1-3-4)F1,T2,F(xiàn)3,T43,7輸入:a=-1,b=-2,c=-3輸出:a=-1,b=-2,c=-5P4(1-3-5)F1,F(xiàn)2,F(xiàn)3,F(xiàn)44,8

3.1.7基本路徑測試依據(jù)代碼繪制流程圖確定流程圖的圈復(fù)雜度(cyclomaticcomplexity)確定線性獨(dú)立路徑的基本集合(basisset)設(shè)計(jì)測試用例覆蓋每條基本路徑

示例–源代碼Procedure:processrecords1. DoWhilerecordsremain2.

Read

record;3.

If

recordfield1=0Then4. storeinbuffer;5. incrementcounter;6.

ElseIf

recordfield2=0Then7. resetcounter;8.

Elsestoreinfile;9.

EndIf10.

EndIf11.

EndDoEnd

示例–流程圖1910112457836V(G)=4

基本路徑測試:流程圖簡化12,387694,51011

流程圖的圈復(fù)雜度V(G)=區(qū)域數(shù)量(由節(jié)點(diǎn)、連線包圍的區(qū)域,包括圖形外部區(qū)域)V(G)=連線數(shù)量-節(jié)點(diǎn)數(shù)量+2V(G)=簡單可預(yù)測節(jié)點(diǎn)數(shù)量+1圈復(fù)雜度(Cyclomaticcomplexity):代碼邏輯復(fù)雜度的

度量,提供了被測代碼的路徑數(shù)量。復(fù)雜度越高,出錯的概率越大V(G)modules

流程圖復(fù)雜度-例子V(G)=412,378694,51011Region1Region2Region3Region4

確定線性獨(dú)立的路徑集合

獨(dú)立路徑:

至少引入一系列新的處理語句或條件的任何路徑

基本集:

由獨(dú)立路徑構(gòu)成的集合

由基本集導(dǎo)出的測試用例,保證每行代碼語句至少被執(zhí)行一次基本集合不一定唯一

Path1:1-2-3-6-7-9-10-1-11示例:基本路徑測試用例

Path2:1-2-3-6-8-9-10-1-11Path3:1-2-3-4-5-10-1-11Path4:1-111910112458736

測試用例覆蓋集合中每條路徑基本路徑測試并不是測試所有路徑的組合,僅僅保證每條基本路徑被執(zhí)行一次

不需要活動圖,但最好繪制程序流程圖

計(jì)算每個(gè)邏輯測試,也就是布爾操作符數(shù)加1

最好每個(gè)單元都進(jìn)行基本路徑測試,對關(guān)鍵組件則是必要的

目標(biāo):在循環(huán)內(nèi)部及邊界上執(zhí)行測試循環(huán)測試-11.簡單循環(huán)(迭代次數(shù)n)

完全跳過循環(huán)

只經(jīng)過循環(huán)一次經(jīng)過循環(huán)兩次經(jīng)過循環(huán)m(m<n)次

分別經(jīng)過循環(huán)n-1,n,n+1次

循環(huán)測試-22.嵌套(Nested)循環(huán)在最里面的循環(huán)完成前面所述的簡單循環(huán)測試,同時(shí)設(shè)定外部循環(huán)的最小迭代次數(shù)逐步向外循環(huán)進(jìn)行直到所有循環(huán)被測試

循環(huán)測試-3其它非結(jié)構(gòu)循環(huán)重新設(shè)計(jì)!3.串行連接的循環(huán)獨(dú)立循環(huán)

可以分別看著簡單循環(huán)測試依賴性循環(huán)

可以看著是嵌套循環(huán)

3.2黑盒測試方法3.2.1等價(jià)類劃分法3.2.2邊界值分析法3.2.3判定表方法3.2.4因果圖法3.2.5正交試驗(yàn)法3.2.6功能圖法3.2.7錯誤推測法

3.2.1等價(jià)類劃分方法將程序可能的輸入數(shù)據(jù)分成若干個(gè)子集,從每個(gè)子集選取一個(gè)代表性的數(shù)據(jù)作為測試用例,等價(jià)類是某個(gè)輸入域的子集,在該子集中每個(gè)輸入數(shù)據(jù)的作用是等效的分為有效等價(jià)類和無效等價(jià)類。有效等價(jià)類是有意義的、合理的輸入數(shù)據(jù),可檢查程序是否實(shí)現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能。無效等價(jià)類與有效等價(jià)類的意義相反在分析需求規(guī)格說明的基礎(chǔ)上劃分等價(jià)類,列出等價(jià)類表設(shè)計(jì)測試用例時(shí),要同時(shí)考慮這兩種等價(jià)類。因?yàn)檐浖粌H要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗(yàn)。經(jīng)過正反的測試才能確保軟件具有更高的可靠性。allinputsi1i4i2i3

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

在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可以確立一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。在輸入條件是一個(gè)布爾量的情況下,可確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類確定等價(jià)類的方法(2)notmemberofsetmemberofsetBooleanNon-Boolean

確定等價(jià)類的方式(3)在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個(gè)),并且程序要對每一個(gè)輸入值分別處理的情況下,可確立n個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則)。個(gè)人月收入-x

稅率

x<=16000%1600<x<21005%500<=x<360010%3600<=x<660015%6600<=x<2160020%21600<=x<4160025%……>10160045%

等價(jià)類測試用例-Example等價(jià)類1:Integer等價(jià)類2:Decimalfraction等價(jià)類3:Negative等價(jià)類4:Invalidinput

根據(jù)等價(jià)類創(chuàng)建測試用例的步驟建立等價(jià)類表,列出所有劃分出的等價(jià)類:為每個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號;設(shè)計(jì)一個(gè)新的測試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價(jià)類重復(fù)c),最后使得所有有效等價(jià)類均被測試用例所覆蓋;設(shè)計(jì)一個(gè)新的測試用例,使其只覆蓋一個(gè)無效等價(jià)類。重復(fù)e)使所有無效等價(jià)類均被覆蓋。輸入條件有效等價(jià)類無效等價(jià)類………………

3.2.2邊界值分析方法程序的很多錯誤發(fā)生在輸入或輸出范圍的邊界上,因此針對各種邊界情況設(shè)置測試用例,可以發(fā)現(xiàn)不少程序缺陷。BVA–BoundaryValueAnalysis設(shè)計(jì)方法:確定邊界情況(輸入或輸出等價(jià)類的邊界)選取正好等于、剛剛大于或剛剛小于邊界值作為測試數(shù)據(jù)

確定邊界值的方法如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍邊界的值作為測試輸入數(shù)據(jù)。如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù)、最小個(gè)數(shù)、比最小個(gè)數(shù)少一、比最大個(gè)數(shù)多一的數(shù)作為測試數(shù)據(jù)。abab

確定邊界值的方法(2)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個(gè)元素和最后一個(gè)元素作為測試用例。如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例。TestcasesforABS(x):classx<0,arbitraryvalue: x=-10classx>=0,arbitraryvalue x=100classesx<0,x>=0,onboundary: x=0classesx<0,x>=0,belowandabove: x=-1,x=1

正常值(有效類):X1=123123邊界值:X2=12345邊界值:X3=1234567邊界值:X4=1邊界值:X5=0無效類的值:X6=-123123無效類的值:X7=asdasd其它?BVA示例2測試限制性用戶輸入:6位正整數(shù)

無效值:X8=000123

X9=asd123X10=Empty

BVA示例3Testcases:任意的正常值:隨機(jī)選擇幾個(gè)選項(xiàng)

邊界值:選擇所有選項(xiàng)

邊界值:一個(gè)都不選

邊界值:選擇一個(gè)選項(xiàng)

二進(jìn)制Term取值范圍BitNibbleByteWordKiloMegaGigaTera0or10-15<Halfbyte>0-2550-65535or0-429496729510241048576107374182410995116277760和1,byte由8bits構(gòu)成,字由4bytes構(gòu)成,…

ASCIITableCharacterASCIIValueCharacter

ASCIIValueNullSpace/0129;@A0324748495057586465BYZ[‘a(chǎn)byz{66899091969798121122123

字符編輯域DefaultEmptyBlankNullZeroNone

一些特殊的邊界值數(shù)值字符位置數(shù)量速度位置體積First/last,F(xiàn)irst-1/Last+1Min/Max,Min-1/max+1Star/Finish,Start-1/Finish+1Empty/FullLessthanempty/morethanfullSlower/FasterLargest/SmallestOver/Under,justOver/JustUnderShortest/Longest……

3.2.3判定表方法在實(shí)際應(yīng)用中,許多輸入是由多個(gè)因素構(gòu)成,而不是單一因素,這時(shí)就需要多因素組合分析。對于多因素,有時(shí)可以直接對輸入條件進(jìn)行組合設(shè)計(jì),不需要進(jìn)行因果分析,即直接采用判定表方法。一個(gè)判定表由“條件和活動”兩部分組成,也就是列出了一個(gè)測試活動執(zhí)行所需的條件組合,所有可能的條件組合定義了一系列的選擇,而測試活動需要考慮每一個(gè)選擇。

判定表元素條件樁,列出問題的所有條件動作樁:列出可能針對問題所采取的操作條件項(xiàng):針對所列條件的具體賦值動作項(xiàng):列出在條件項(xiàng)(各種取值)組合情況下應(yīng)該采取的動作。規(guī)則:任何一個(gè)條件組合的特定取值及其相應(yīng)要執(zhí)行的操作。

判定表方法步驟列出所有的條件樁和動作樁;填入條件項(xiàng);填入動作項(xiàng),制定初始判定表;簡化、合并相似規(guī)則或者相同動作示例見表3-13和3-14

3.2.4因果圖法多種輸入條件的組合,產(chǎn)生多種結(jié)果設(shè)計(jì)測試用例。設(shè)計(jì)方法:分析軟件規(guī)格說明文檔描述的哪些是原因(輸入條件),哪些是結(jié)果(輸出條件),給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)示符。找出原因與結(jié)果,原因與原因之間的對應(yīng)關(guān)系,劃出因果圖在因果圖上標(biāo)上哪些不可能發(fā)生的因果關(guān)系,表明約束或限制條件根據(jù)因果圖,創(chuàng)建判定表,將復(fù)雜的邏輯關(guān)系和多種條件組合很具體明確的表示出來把判定表的每一行作為依據(jù)設(shè)計(jì)測試用例。

因果圖法-示例(1)有效等價(jià)類:

輸入條件

有效類.

abs(N) N0,N

0

maxint kmaxint,

k>maxint測試用例: maxint N result maxint N result 55 10 55 100 0 0

54 10 error 100 -1 1

56 10 55 100 1 1

0 0 0 … … …給定maxint和N,如果結(jié)果<=maxint,則按以下公式計(jì)算;否則提示出錯:

K=0|N|kresult=

kmaxint

kmaxintN0N0

kerrorandxorandCauses

kmaxint

1 1 0 0Inputs

kmaxint

0 0 1 1 N0 1 0 1 0 N0 0 1 0 1Effects k 1 1 0 0Outputs error 0 0 1

1因果圖法-示例(2)

1100error0011

kEffects1010N00101N01100

kmaxint0011

kmaxintCauseCaseMatrix:因果圖法-示例(3)

為什么要采用正交試驗(yàn)法?打印范圍分:全部、當(dāng)前幻燈片、給定范圍打印內(nèi)容分:幻燈片、講義、備注頁、大綱視圖打印顏色/灰度分:彩色、灰度、黑白打印效果分:幻燈片加框和幻燈片不加框。在許多應(yīng)用系統(tǒng)的測試工作中,不會象判斷三角形那樣簡單,輸入條件的因素很多,而且每個(gè)因素也不能簡單用“是”和“否”來回答。比如,微軟Powerpoint程序的打印測試,也需要考慮4個(gè)因素,每個(gè)因素也有多個(gè)選項(xiàng)測試組合會變得很多,如果按照傳統(tǒng)的測試方法,會導(dǎo)致很大的測試工作量

3.2.5正交實(shí)驗(yàn)法確定影響功能的因子與狀態(tài)選擇一個(gè)合適的正交表利用正交表構(gòu)造測試數(shù)據(jù)集參考

實(shí)例員工號(ID)。員工姓名(Name)。員工郵件地址(MailAddress)信息系統(tǒng)中,員工信息查詢功能是常見的。例如,設(shè)有3個(gè)獨(dú)立的查詢條件,以獲得特定員工的個(gè)人信息

3.2.6功能圖法每個(gè)程序的功能通常由靜態(tài)說明和動態(tài)說明組成靜態(tài)說明描述了輸入條件和輸出條件之間的對應(yīng)關(guān)系動態(tài)說明描述了輸入數(shù)據(jù)的次序或者轉(zhuǎn)移的次序。

功能圖法就是為了解決動態(tài)說明問題的一種測試用例的設(shè)計(jì)方法功能圖由狀態(tài)遷移圖(statetransitiondiagram,STD)和邏輯功能模型(logicfunctionmodel,LFM)構(gòu)成

狀態(tài)遷移圖狀態(tài)遷移圖,描述系統(tǒng)狀態(tài)變化的動態(tài)信息——動態(tài)說明,由狀態(tài)和遷移來描述,狀態(tài)指出數(shù)據(jù)輸入的位置(或時(shí)間),而遷移則指明狀態(tài)的改變

如何設(shè)計(jì)測試用例?從功能邏輯模型(決策表或因果圖)導(dǎo)出局部測試用例,覆蓋各個(gè)狀態(tài)的各種輸入數(shù)據(jù)的組合從狀態(tài)遷移圖導(dǎo)出整體的測試用例,以覆蓋系統(tǒng)(程序)控制的邏輯路徑功能圖法設(shè)計(jì)測試用例,就是如何覆蓋軟件所表現(xiàn)出來的所有狀態(tài),可以轉(zhuǎn)化為兩個(gè)層次的測試用例功能圖法是綜合運(yùn)用黑盒方法和白盒方法來設(shè)計(jì)測試用例,即整體上選用白盒方法——路徑覆蓋、分支和條件覆蓋等,而局部上選用的是黑盒方法——決策表或因果圖方法

3.2.7錯誤推測法基于經(jīng)驗(yàn)和直覺推測程序中所有可能存在的各種錯誤,從而有針對性地設(shè)計(jì)測試用例。發(fā)現(xiàn)程序經(jīng)常出現(xiàn)的錯誤的方法:單元測試中發(fā)現(xiàn)的模塊錯誤;產(chǎn)品的以前版本曾經(jīng)發(fā)現(xiàn)的錯誤;輸入數(shù)據(jù)為0或字符為空;當(dāng)軟件要求輸入時(shí)(比如在文本框中),不是沒有輸入正確的信息,而是根本沒有輸入任何內(nèi)容,單單按了Enter鍵;這種情況在產(chǎn)品說明書中常常忽視,程序員也可能經(jīng)常遺忘,但是在實(shí)際使用中卻時(shí)有發(fā)生。程序員總會習(xí)慣性的認(rèn)為用戶要么輸入信息,不管是看起來合法的或非法的信息,要不就會選擇Cancel鍵放棄輸入,

3.3靜態(tài)測試和動態(tài)測試將需求和設(shè)計(jì)的評審也納入測試的范疇,可以看作是廣義測試靜態(tài)測試包括對軟件產(chǎn)品的需求和設(shè)計(jì)規(guī)格說明書的評審、對程序代碼的復(fù)審等靜態(tài)分析的查錯和分析功能是其他方法所不能替代的,可以采用人工檢測和計(jì)算機(jī)輔助靜態(tài)分析手段進(jìn)行檢測,但越來越多地采用工具進(jìn)行自動化分析動態(tài)測試是通過真正運(yùn)行程序發(fā)現(xiàn)錯誤,通過觀察代碼運(yùn)行過程,來獲取系統(tǒng)信息,對系統(tǒng)行為進(jìn)行驗(yàn)證。

3.4主動測試和被動測試主動測試方法:測試人員主動向被測試對象發(fā)送請求、或借助數(shù)據(jù)、事件驅(qū)動被測試對象的行為,從而驗(yàn)證被測試對象的反應(yīng)或輸出結(jié)果被動測試方法:測試人員不干預(yù)產(chǎn)品的運(yùn)行,而是被動地監(jiān)控產(chǎn)品在實(shí)際環(huán)境中運(yùn)行,通過一定的被動機(jī)制來獲得系統(tǒng)運(yùn)行的數(shù)據(jù),包括輸入、輸出數(shù)據(jù).

3.5形式化測試方法3.5.1形式化方法3.5.2形式化驗(yàn)證3.5.3基于模型的軟件測試3.5.4擴(kuò)展有限狀態(tài)機(jī)方法

3.5.1形式化方法形式化方法實(shí)際上就是基于數(shù)學(xué)的方法來描述目標(biāo)軟件系統(tǒng)屬性的一種技術(shù)凡是采用嚴(yán)格的數(shù)學(xué)語言、具有精確的數(shù)學(xué)語義的方法,都稱為形式化方法。形式化規(guī)范說明語言,一般由3個(gè)主要的成分構(gòu)成:語法、語義和一組關(guān)系形式化方法更大作用是體現(xiàn)在軟件規(guī)格和驗(yàn)證之上,這包括軟件系統(tǒng)的精確建模和軟件規(guī)格特性的具體描述,即可以看作是面向模型的形式化方法和面向?qū)傩缘男问交椒?/p>

形式化的具體方法基于模型的方法,如Z語言、B語言等代數(shù)方法,如OBJ、CLEAR、ASL、ACT等過程代數(shù)方法,如CSP、CCS、ACP、LOTOS、TPCCS等基于邏輯的方法,如區(qū)間時(shí)序邏)、Hoare

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論