版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
白盒測2白盒測白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,是一種測試用例設(shè)計法,它從程 邏輯結(jié)構(gòu)及有關(guān)信息來設(shè)計和選擇測試用例對程序的邏輯路徑 試應(yīng)用白盒法時,手頭必須有程序的規(guī)格說明以及程 保證一個模塊中的所有獨立路徑至少被執(zhí)行一次對所有的邏輯值均需要測試真假兩個分支范有;檢查 數(shù)據(jù)結(jié)構(gòu)以確保其有效性。 白盒測優(yōu) 對代碼的測試比較缺昂無法檢測代碼中遺漏的路徑和數(shù)據(jù)敏感性不驗證規(guī)格的正測試覆蓋標白盒法考慮的是測試用例對程序 邏輯的覆蓋程度。最徹底的白盒法是覆蓋程序中的每一條路徑循環(huán),所以路徑的數(shù)目極大,只能希望覆蓋的程度盡可能高些。5測試覆蓋標6測試覆蓋標假使測試程序?qū)γ恳粭l路徑進試需1毫秒,假定一天工作24小時,一年工作365天,那么要想所有路徑測試完,需3170窮舉路徑測試無法檢查出程序本身是 了設(shè)計規(guī)范,即序是否是一個錯誤的窮舉路徑測試不可能查出程序因為遺漏路徑而出窮舉路徑測試發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯誤7測試覆蓋標量化指標的依據(jù),測試覆蓋率越高效果越好。覆蓋率和邏輯覆蓋率:功能之間的比例關(guān)系。邏輯覆蓋率指程序邏輯的覆蓋率,可分為語句覆蓋、判定覆件覆蓋、判定/條件覆蓋、組合覆蓋和路徑覆蓋8測試覆蓋標語句覆蓋SC(Statement是一個較弱的測試標準,它的含義是:選擇足夠的測試使得程序中每個語句至少都能被執(zhí)行一次它是最弱的邏輯覆蓋,效果有限,必須與其它方法交互使用判定覆蓋(也稱為分支覆蓋)DC(Decision執(zhí)行足夠的測試用例,使得程序中的每一個分支至少都通過次判定覆蓋只比語句覆蓋稍強但實際效果表明,還不能保證一定能查出在判斷條件中存在的錯誤。,還需要更強的邏輯覆蓋準則去檢驗判斷 條件。9測試覆蓋標條件覆蓋CC(Condition能取值至少執(zhí)行一次;條件覆蓋深入到判定中的每個條件,但可能不滿足判定覆蓋要求判定/條件覆蓋CDC(Condition/Decision并使每個分支取到各種可能的結(jié)果。判定測試覆蓋標條件組合覆蓋MCC(MultipleCondition執(zhí)行足夠的例子,使得每個判定中條件的各種可能組合都至出現(xiàn)一次路徑設(shè)計足夠多的測試用例,要求覆蓋程序中所有可能的路徑邏輯驅(qū)動測 白盒測試的主要方設(shè)計足夠多的測試用例,運行所測程序,滿足某種測試覆蓋率要求基本的有語句覆判定覆蓋(也稱為分支覆蓋條件覆判定/條件覆條件組合覆設(shè)計足夠多的測試用例,運行所測程序,要覆蓋程序路徑。這是最強的覆蓋準則。但在路徑數(shù)目很大時,真正做 是 的,必須把覆蓋路徑數(shù)目壓縮到一定限度邏輯驅(qū)動測 語句覆一個較弱的測試標準,它的含義是:選擇足夠的測試用例,使程序中每個語句至少都能被執(zhí)行一如,例PROCEDUREM(VARIF(A>1)AND(B=0)THENX:=X/A;IF(A=2)OR THEN邏輯驅(qū)動測 語句覆(期望輸出:A,B不變就可達到“語句覆蓋”標
語句覆優(yōu)點:可很直觀地從源代碼得到測試用例,無須細分每條判定表達式缺點:從上例可看出,語句覆蓋是很弱的,發(fā)現(xiàn)不了判定中邏輯運的錯誤,即它并不是一種充分的檢驗方法。如果第一個條件語句中的AND錯誤地寫成OR,這個測試用不能發(fā)現(xiàn)這個錯如第三個條件語句中X>1誤寫成X>0,這個測試用例也不它abd執(zhí)行時,XPROCEDUREM(VARA,B,X:REAL);IF(A>1)AND(B=0)THENX:=X/A;IF(A=2)OR THENEND.
語句覆例voidDoWork(intx,inty,int{int }if((x=}
//語句塊//語句塊邏輯驅(qū)動測 語句覆為了滿足語句覆蓋率,只要設(shè)計一個測試就可把三個執(zhí)行語句塊中的語句覆測試用例輸入為x=4、y=5、程序執(zhí)行的路徑是:abdvoidDoWork(intx,inty,int{int k=x*y- //語句塊j=sqrt(k);if((x=
a b執(zhí)行語句塊執(zhí)行語句塊e(x= 執(zhí)行語句塊執(zhí)行語句塊}
//語句塊//語句塊語句覆&||voidDoWork(intx,inty,int{int k=x*y- j=sqrt(k);}if((x==4)||(y>5))
x=4、y=5、 分支覆(準。邏輯驅(qū)動測 分支覆①A=3,B=0,X=1(沿路徑acd執(zhí)行②A=2,B=1,X=3(沿路徑abe執(zhí)行
分支覆
A=3,B=0,X=1沿路徑acd執(zhí)行A=2,B=1,X=3沿路徑abe執(zhí)行 邏輯驅(qū)動測 分支覆如果每個分支都執(zhí)行過了,則每個語過了針對語句覆蓋中不能檢測的錯,在分支覆蓋中①A=3,B=0,X=1(沿路徑acd執(zhí)行②A=2,B=1,X=3(沿路徑abe執(zhí)行) 沿著路徑abd執(zhí)行時,X的值應(yīng)保持這方面有錯,不能發(fā)現(xiàn) 所以,“分支覆蓋”還很不夠 分支覆對例2,如設(shè)計兩個測試用例足分支覆蓋的要測試用例的輸入為x=4、y=5、z=5(沿路徑abd執(zhí)行x=2、y=5、z=5(沿路徑ace執(zhí)行
a b
(x==4)||(y>5)
邏輯驅(qū)動測 a語句6627153849條件覆一個判定中往往包含若干個條件,如例1(A>1)AND(B=0)包含了兩個條件:A>1以及B=0,所以可引進一個“條件覆蓋”的含義是:執(zhí)行足夠的測試用例,使得判定中個條件獲得各種可能的結(jié)果邏輯驅(qū)動測 條件覆例1的程序有四個條件A>1、B=0、A=2、為達到“條件覆蓋”標準,需執(zhí)行足夠的測例使得在a點有A>1、A≤1、B=0、等各種結(jié)果出現(xiàn),以及在bA=2、A≠2、X>1、等各種結(jié)果出現(xiàn)現(xiàn)在只需設(shè)計以下兩個測試用例就可滿足這一準A=2,B=0,X=4沿路徑ace執(zhí)行 (沿路徑abd執(zhí)行)邏輯驅(qū)動測 條件覆
A=2,B=0,X=4(沿路徑ace執(zhí)行A=1,B=1,X=1(沿路徑abd執(zhí)行
條件覆條件x>3取真值為T1,取假值為-條件z<10取真值為T2,取假值為-對于第二個判條件x=4取真值為T3,取假值為-條件y>5取真值為T4,取假值為-
ab執(zhí)行執(zhí)行語句塊(x=執(zhí)行語執(zhí)行語句塊
執(zhí)行語句塊執(zhí)行語句塊出邏輯驅(qū)動測 條件覆
a測試用測試用通過徑條件取覆蓋分x=4、y=6T1、T2、T3-T1、T2、-T3-T1、-T2、T3-
執(zhí)行語句塊執(zhí)行語句塊(x==4)||(y>5)
執(zhí)行語句塊執(zhí)行語句塊執(zhí)行語句塊執(zhí)行語句塊邏輯驅(qū)動測 條件覆如對語IF(AANDB)THEN設(shè)計2個測試用例,使其滿足“條件覆蓋使A為真并使B使A為假而且B為但是它們都未能使語句S得以邏輯驅(qū)動測 條件覆
a b執(zhí)行語句塊執(zhí)行語句塊測試用通測試用通過路條件取覆蓋分支x=2、y=6-T1、T2、-T3T1、-T2、T3-
執(zhí)行語句塊執(zhí)行語句塊邏輯驅(qū)動測 分支/條件覆針對上面問題引出了另一種覆蓋標準——“條件覆蓋”,它分支/條件覆兩個測試用例便可以覆蓋8個條
a執(zhí)行語句塊
No以及4個判斷分測試用通路條件取覆分x=2、y=5-T1、-T2、--、
e(x==4)||(y>5)執(zhí)行語句塊執(zhí)行語句塊分支/條件覆如對于條件表(x>3&&(z<10)來說,必須兩個條件都滿足才能確定表達式為真。如果(x>3)為假,則一些編譯器不再判對于第二個表達式(x==4)||(y>5)來說,若 為真就認為表達式的結(jié)果為真,這時不再檢查(y>5)條因此,采用分支/條件覆蓋,邏輯表達式中的錯誤不一定能夠查邏輯驅(qū)動測 條件組合覆針對上述問題又提出了另一種標準——“條件組合覆蓋它的含義是:執(zhí)行足夠的例子,使得每個判定中條件的各組合都至少出現(xiàn)一顯然,滿足“條件組合覆蓋”的測試用例是蓋”、“條件覆蓋”和“分支/條件覆蓋”的邏輯驅(qū)動測 條件組合覆再看例1,需選擇適當(dāng)?shù)睦?,使得下面種條件組合都能夠出1)A>1, 2)A>1,3)A≤1, 4)A≤1,5)A=2, 6)7)A≠2, 8)A≠2,5)、6)、7)、8)四種情況是第二個 邏輯驅(qū)動測 條件組合覆①②③3)、7)④邏輯驅(qū)動測 條件組合覆邏輯驅(qū)動測 條件組合覆對例2中的各個判斷的條件取值組合加以標記如
1、2、3、
記做T1T2,第一個判斷的取真分記做T1-T2,第一個判斷的取假記做-T1T2,第一個判斷的取假分
執(zhí)行語句塊執(zhí)行語句塊執(zhí)行語句塊4、x<=3,z>=10記做-T1-T2,第一個判斷的取假執(zhí)行語句塊
5、6、7、8、
記做T3T4,第二個判斷的取真分支記做T3-T4,第二個判斷的取真分支記做-T3T4,第二個判斷的取真分支記做-T3-T4,第二個判斷的取假
(x==4)||(y>5)執(zhí)行語句塊執(zhí)行語句塊邏輯驅(qū)動測 條件組合覆根據(jù)定義取4個測試用例,就可以覆蓋上面8測試用例通過路條件取覆蓋組合號x=4、y=6、T1T2、T3、1x=4、y=5、T1T2、T3、-2x=2、y=6、acdT1、T2、-T3、3x=2、y=5、T1、-T2、-T3、-4邏輯驅(qū)動測 修正條件判定覆它是由歐美的航空修正條件判定覆蓋方法是在分支修正條件判定覆對例1的第一個判定,全部組合條件如下測試用結(jié)1TTT2TFF3FTF4FFF1和3說明條件“A>1”獨立影響判定的輸出例3:工資管理程序BONUS的輸入數(shù)據(jù)是職員表(EmployeeTable)和部門表(DepartmentTable)(如圖)。職員表由 (Name)、職務(wù)(JobCode)、部門員在部門表中銷售量最大的部門工作,則輸出出錯碼2” 下面是BSB、DA分SDSRR是出錯碼。PROCEDURE邏輯驅(qū)動測 BEGINMAXSALERS:=0;IF(ESIZE≤0)OR BEGINFORI:=1TODSIZEIFTHENFORJ:=1TODSIZEIFBEGINFORK:=1TOESIZEIFBEGIN IFORTHENELSEIF(NOTFOUND)THEN 因為循環(huán)終值都大于等于循環(huán)初值) IF(ESIZE≤0)OR(DSIZE≤0) SALES(I)>MAXSALES) 13 (SALARY(K)≥15000.00)ORIF(NOT21邏輯驅(qū)動測 使得上述6個判定都取到兩種結(jié)果,這就需要以下12種情況。判條結(jié)果為“真”結(jié)果為“假”2(ESIZE≤0)069EMPTAB.DEPT(K)0.00)NOT員設(shè)計下面的兩個測試用例可以滿足“判定覆蓋”(圖中“職務(wù)一欄,“E”表示是一般職員,“M”表示是經(jīng)理)例輸入 1 2ESIZE,DSIZE,DEPTTABJONESED42D42SMITHED32D32JONESED42LORINED42D95SMITHED32LORINED42邏輯驅(qū)動測 必須使判定中的每一個條件取到兩種可能的值,這就需要以下種情況出邏輯驅(qū)動測 白盒法測試舉例-工資管理程序測 真假226SALES(I)9SALES(J)SALARY(K)工資小于15000NOT蓋”。例輸入 1 2ESIZE,DSIZE,DEPTTABJONESED42D42SMITHED32D32JONESED42LORINMD42D95SMITHED32LORINED42邏輯驅(qū)動測 (ESIZE=O)AND(DSIZE=0),這個錯誤也不能被發(fā)現(xiàn)。 可克服“條件覆蓋”中測試用例的弱點,需要提供足夠的例使得所有判定和條件都取到兩個不同的邏輯驅(qū)動測 例輸入 1 2ESIZE,DSIZE,DEPTTABJONESMD42D42SMITHED32D32JONESED42LORINED42D95SMITHED32LORINED42邏輯驅(qū)動測 問題RJOB(K)=“M”這一部分。 它需要足夠的例子,使得每個判定中條件的各種組合情況都出次本例中判定6、9、13和21各有兩種組合,判定2和16各有4種組合??梢韵冗x一個測試用例使其包含盡可能多的組合情況。再選另一測試用例使其包含盡可能多的余下的組合情況...,下面是滿足“條件組合覆蓋”標準的一組測試用例它比前面幾組測試用邏輯驅(qū)動測 例 1 2ESIZE=0,3ESIZE>0,4ESIZE=5,ESIZE,DSIZE,DEPTTAB JONESMD42 D42WARNSMD95 D32JONESMD42LORINED42 D95WARNSMD95 ED95 D44LORINED42SMITHED32 ED95SMITHED32邏輯驅(qū)動測 ERRORCODE:=0;被遺漏了就查不出;邏輯驅(qū)動測 “條件組合覆蓋”標準比其他標準優(yōu)越即使達到任何一種覆蓋標準,其測試效果仍然是不徹底的們還需要用其他的測試方法作補充邏輯驅(qū)動測 白盒法和黑盒法各有長短每種方法都可提供一組有用的測試用例,這組測試用例容易發(fā)現(xiàn)某種類型的錯誤發(fā)其類的誤,然而沒有 法能提供一組完整的測試用例因此實際軟件測試方案設(shè)計是不同方法的綜合應(yīng)用。一個參考的黑盒法補充策略是在任何情況下都需使用邊界值分析(這個方法應(yīng)包括對輸入和輸?shù)倪吔缰颠M行分析)必要的話,再用等價分類法補充一些測試用例再用錯誤推測法附加測試用例如果功能說明中含有輸入條件的組合情況,則一開始就可先用 果圖(判定表)法 邏輯驅(qū)動測 以工資管理為例:(用黑盒法補充測試用例EMPTAB具有1個記2*)EMPTAB具有最大個數(shù)的記錄(如65535個記錄)EMPTAB具有零個記DEPTAB具有1個記5*)DEPTTAB具有65535個記DEPTTAB具有零個記錄銷售量最大的部門有1個職員邏輯驅(qū)動測 黑盒法補充測試用例-工資管理程序測8*)銷售量最大的部門有65535個職銷售量最大的部門沒有職所有部門的銷售量相DEPTTAB中,第一個部門的DEPTTAB中,最后一個部門的銷售量EMPTAB中,第一個職員在銷EMPTAB中,最后一個職員在銷售量最大的部門工作銷售量最大的部門中有一個職銷售量最大的部門中有一個職員不是經(jīng)理銷售量最大的部門中有一個職員(不是經(jīng)理)的工資是999.99邏輯驅(qū)動測 黑盒法補充測試用例-工資管理程序測銷售量最大的部門中有一個職員(不是經(jīng)理)的工資是000.00銷售量最大的部門中有一個職員(不是經(jīng)理)的工資是000.01輸出的邊緣情況是ERRCODE=0ERRCODE=1ERRCODE=2增加后的工資為99999.99(即數(shù)據(jù)項SALARY的最大允許邏輯驅(qū)動測 黑盒法補充測試用例-工資管理程序測再用錯誤推測法還可增加一個測試用例上述24、5)、8)再將用白盒法設(shè)計的測試用例與余下的21種情況作比較,可以看出許多情況巳包括在這、4)、7)、10)、14)、17、18)、9)、2)、和2)等11種。因此再增加的測試用例如下邏輯驅(qū)動測 例 5ESIZE=3ESIZE,DSIZE,DEPTTAB不 ED36 ED33 CELTOED33 6ESIZE=1CHIEFMD99 CHIEF 7 ESIZE,DSIZE,DEPTAB不 E E E E 為 X>8AND X>0OR
X>16OR 語句
語句
語句前面提到的5種邏輯覆蓋都未涉及到路徑的覆蓋。然而,只有當(dāng)?shù)拿恳粭l路徑都受到了檢驗,才能使程序受到全面檢驗路徑覆蓋的目的就是要使設(shè)計的測試用例能覆蓋被測程序中所的路路徑測測試通過路A=2、B=0、A=1、B=0、A=2、B=1、A=3、B=0、ace(x= 執(zhí)行語句塊執(zhí)行語句塊ace(x= 執(zhí)行語句塊執(zhí)行語句塊測試測試通過覆蓋條x=4、y=6、T1、T2、T3、x=4、y=5、T1、-T2、T3、-x=2、y=5、-T1、-T2、-T3、x=5、y=5、T1、T2、-T3、-執(zhí)行語句塊 雖然前面一組測試用例滿足了路徑覆蓋,但并沒有覆蓋程序中所有的條件組合(丟失了組合37:-T1T2和T3、T4足路徑覆蓋的測試用例并不一定 合覆蓋。例1、例為了解決這一難題,只得把覆蓋的路徑數(shù)壓縮到一定限度內(nèi)例如,程序中的循環(huán)體只執(zhí)行一次基本路徑測 畫出程序的控制流圖:描述程序控制流的一種圖示計算程序圈復(fù)雜度:McCab復(fù)雜性度量。從程序的環(huán)路復(fù)雜性可導(dǎo)出程序基本路徑集合中的獨立路徑條數(shù),這是確定程序中每個可執(zhí)行語句至少執(zhí)行一次所必須的測試用例數(shù)目的上界。導(dǎo)出測試用例:根據(jù)圈復(fù)雜度和程序結(jié)構(gòu)設(shè)計測試用例準備測試用例:確?;韭窂郊械拿恳粭l路徑的執(zhí)行基本路徑測
流圖使用下面的符號描述邏輯控制流,每一種結(jié)構(gòu)相應(yīng)的流圖符號
ifwhile結(jié) until結(jié)
Case假設(shè)不包含復(fù)合條件)。流圖中的箭頭,稱為邊或連接,代表控制流包含條件或多分支的節(jié)點被稱為判定節(jié)點(也叫謂詞節(jié)點在選擇或多分支結(jié)構(gòu)中,分支的匯聚處應(yīng)有一個匯聚結(jié)點邊和結(jié)點圈定的區(qū)域叫做區(qū)域,當(dāng)對區(qū)域計數(shù)時,圖形外的域也應(yīng)記為一個區(qū)基本路徑測 控制流待測試程 用流圖表示的待測 程 63 4 4
8758759區(qū)域:由邊和區(qū)域:由邊和解點封閉起來的區(qū)記區(qū)域記區(qū)域外的部計算區(qū)控制流(OR,AND,NAND,NOR)連接的復(fù)合條件ifaorxy基本路徑測 獨立路路徑路徑1:1-路徑2:1-2-3-4-5-10-1-路徑3:1-2-3-6-8-9-10-1-路徑4:1-2-3-6-7-9-10-1-167816789將流程 到一個相應(yīng)的流圖(假設(shè)流程圖的菱形決定框中不含復(fù)合條件 (邊)il-thn結(jié)構(gòu)。由邊和結(jié)點限定的范圍稱為區(qū)域。計算區(qū)域時應(yīng)包括圖外部范圍基本路徑測 例4:有下面的C函數(shù),用基本路徑測試 voidSort(intiRecordNum,int intintwhile(iRecordNum-->{if(0={x=y+2;if(1= 14.464679有以下三種方法計算圈復(fù)雜度流圖中區(qū)域的數(shù)量對應(yīng)于環(huán)型的復(fù)雜性的圈復(fù)雜度V())=+2,是流圖中結(jié)點的數(shù)量;中判定結(jié)點的數(shù)量。(包含條件的節(jié)點被稱為判定節(jié)點,也叫基本路徑測 4679對應(yīng)圖中的圈復(fù)雜4679流圖中有四個區(qū)域V(G)=10條邊-8結(jié)點V(G)=3個判定結(jié)點+1=4基本路徑測 464679路徑1:4-路徑2:4-6-7-路徑3:4-6-9-10-13-4-路徑4:4-6-9-12-13-4-根據(jù)上面的獨立路徑,去設(shè)計輸數(shù)據(jù),使程序分別執(zhí)行到上面四條基本路徑測 滿足上面例子基本路徑集的測試用例是基本路徑測 iRecordNum=0,取iRecordNum<0的某一預(yù)期結(jié)果
Sort(intiRecordNum,int{intintwhile(iRecordNum-->{if(0=路徑2:4-6-7-輸入數(shù)據(jù)
{x=y+2;預(yù)期結(jié)果
if(1= 14.基本路徑測 Sort(intiRecordNum,int路徑3:4-6-9-10-13-4-輸入數(shù)據(jù)預(yù)期結(jié)果{intintwhile(iRecordNum-->{if(0=路徑4:4-6-9-12-13-4-輸入數(shù)據(jù)預(yù)期結(jié){x=y+2;if(1=}}基本路徑測 65以–結(jié)束標志),計算其中有效的學(xué)生分數(shù)(0~10)的個數(shù)、總分數(shù)和平均值?;韭窂綔y ii2和 Score[i]<>-1ANDT 5和Score[i]>0
ii=i average=–12返 TTii129129345R1789 Score[i]<>-1AND94T4TF5和F5和Score[i]>0AND788ii=iFTFTaverage=–12返 1)V(G6(個區(qū)域
12 11 5
R16 8基本路徑測 129129345R178步驟3:確定基本路徑集合(即獨立路徑集合)。于是可確路徑1:1-2-9-10-12徑2:1-2-9-11-12路3:1-2-3-9-10-路徑4:1-2-3-4-5-8-2路徑5:1-2-3-4-5-6-8-2路徑6:1-2-3-4-5-6-7-8-2基本路徑測 步驟4:為每一條獨立路徑各設(shè)計 1)路徑1(1-2-9-10-12的測試例score[k]=有效分數(shù)值,當(dāng)k<iF
1iiScore[i]<>-1AND 5和score[i]=–1,期望結(jié)果分數(shù)個數(shù)n1、總分sum和平均分
Score[i]>07
i=i=i average=–average=–12基本路徑測試再舉2)路徑2(1-2-9-11-12測試
i例
2和 score[1]=–1期望的結(jié)果:average1其他量保持初值
Score[i]<>-1AND 5和用例輸入多于 個有效分,即試圖處理51個分數(shù),要求51個為有效分數(shù)
Score[i]>07
Tii=i期望結(jié)果:n1=50、且算出正的總分和平
average=–average=–
12基本路徑測試再舉4)路徑4(1-2-3-4-5-8-2?)的測用例 k<i期望結(jié)果:根據(jù)輸入的有效分數(shù)算出正確的分數(shù)個數(shù)n1、總分
i例2和例 F Score[i]<>-1AND 5和和平均分average5)路徑5(1-2-3-4-5-6-8-2的測試用例score[i]=有效分數(shù),當(dāng) k<i
Score[i]>07
Tii=i期望結(jié)果:根據(jù)輸入的有效分數(shù)算出正確的分數(shù)個數(shù)n1、總分sum
average=–average=–
12基本路徑測試再舉6)路徑6(1-2-3-4-5-6-7-8-2的測試用例score[i]=有效分數(shù),當(dāng)i<50;期望結(jié)果:根據(jù)輸入的有效分數(shù)算出正確的分數(shù)個數(shù)n1、總分
i例2和例 F Score[i]<>-1AND 5和和平均分average
Score[i]>07
Tii=i
average=–12基本路徑測一些獨立的路徑,往往不是完全孤立的,有時它是程序正??氐囊徊糠帧T谟行┣闆r下,一些執(zhí)行路徑是不可能被執(zhí)行的IfIf(!A)D--這兩個語句實際只包括了2條執(zhí)行路徑,即B和D的處理,真或假不可能都存在,而路徑覆蓋測試則認為是包含了真與4,而且大量 的累積,也為排錯帶來麻煩基本路徑測 1、使用基本路徑測試方法,為以下程序段設(shè)計測試用voidDo(intX,intA,int{ if((A>1)&&(B=0) X= if((A=2)||(X>1) X= 2a,b,基本路徑測 控制結(jié)構(gòu)測試的變前面所述的基本路徑測試技術(shù)是控制結(jié)構(gòu)測試技術(shù)之一?;韭窂綔y試簡單高效,但是,其本身下面討論控制結(jié)構(gòu)測試的其他變種,這些測試覆蓋并提高了盒測試的質(zhì)量。包括條件測數(shù)據(jù)流測循環(huán)測試條件測試方法注重測試程序中的條件。是檢查程序模塊中所包邏輯條件的測試用例設(shè)計方法程序中的條件分為簡單條件和復(fù)合條件簡單條其中,E1E2是算術(shù)表達式,而<關(guān)系操作符>是下列之一:條件(續(xù)復(fù)合條D、、)和括號連接而所以條件的成分類型包括:布爾變量、關(guān)系操作符或算術(shù)表達式邏輯運算符、括弧(括住簡單或復(fù)雜條件)誤類型如下:布爾變量錯關(guān)系操作符錯誤算術(shù)表達式錯誤邏輯運算符錯誤(遺漏,多余或不正確括弧錯誤條件測試是測試程序條件錯誤和程序的其他錯誤如果程序的測試集能夠有效地檢測程序中集可能也會有效地檢測程序中的其他錯誤此外,如果測試策略對檢測條件錯誤有效,則它也可能有效地測程序錯窮舉測(條件組合n(0很小時實用。分支測C,C的真分支和假分支以及C中的每個簡單條件都需要至少執(zhí)行一次。分支測 域測試是對于大于、小于和等于值的測試策略E1<關(guān)系操作需要三個測試分別用于計算121和2為了發(fā)現(xiàn)1和212BRO(branchandrelational)測O(分支與關(guān)系運算符)的測試法可以發(fā)現(xiàn)多個布爾運或關(guān)系運算符錯,以及其他BRnD=1,2Dn)Di(0<in)是條件C中第i的執(zhí)行由C對于布爾變量或布爾表達式B,B的輸出約束必須是真(t)假對于關(guān)系表達式,其輸出約束為符號>、=、<例1:一種簡單的情況,考慮條其中B1和B2是布爾變量CD,D2D1DT,是C1()將令1為tB2。BRO測試策略要求約束集{(t,t),(f,t),(t,f),(f,f)}由C1的執(zhí)所覆如果布爾運算符有錯,這四組測試用例的運行結(jié)果必有一組導(dǎo)C1失敗條件測例2,考其中B1是布爾表達式,而E3和E4是算術(shù)表達式C2的條件約束形式如(D1,D2),其中D1是“T”或“F”,D2=或>除了CC的約束集{,T,T,F(xiàn),F(xiàn)},得到C2{(T,=),(F,=),(T,<),(TF,<),(F}。上述條件約束集的覆蓋率將保證檢測C2的布爾和關(guān)系算子的錯誤條件測例3,考其中E1、E2、E3和E4是算術(shù)表達式C3的條件約束形式如(D1,D2),其中D1和D2是<、=或>除了C3的第一個簡單條件是關(guān)系表達式以外,C3和C2相同,所以以修改C2的約束集得到C3的約束集,結(jié)果{(>,=),(=,=),(<,=),(>,<),(>,>),(=,<),(<,<),(>,>),(=,>),(<,>)去掉重復(fù),結(jié)果(<,<),(=,>),(<,>)上述條件約束集能夠保證檢測C3的關(guān)系操作符的錯誤數(shù)據(jù)流測試方法按照程序中的變量定義和使用來選擇程序的測試路徑,以發(fā)現(xiàn)數(shù)據(jù)處理異常。如沒有初始化、定義變量;變量被定義但沒有使用;變量在使用前被定義多次;變量在使用時失效等。這些應(yīng)通過測試用例來覆蓋數(shù)據(jù)流測試方法不再詳細介紹,下面介紹一類似的數(shù)據(jù)流分析方此方法在程序代碼經(jīng)過的路徑上檢查數(shù)據(jù)的用法,以期發(fā)(不一定會導(dǎo)致軟件失效)已定義的(d):變量已賦值的 變量沒有定義的(u):變量沒有定義具ur異常:程序路徑 問了沒有定義(u)的變量du異常:變量已賦值(d),但此變量已無效或未定義同時未 Dd異常:變量接受了第二個值(d),同時第一個值沒被使例,下面函數(shù)的功能是
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房產(chǎn)買賣合同履約保證金管理合同模板3篇
- 靜電地板鋪裝施工方案
- 二零二五版?zhèn)€人合伙環(huán)保咨詢服務(wù)公司退伙服務(wù)合同4篇
- 二零二五年度分紅型債券投資合同4篇
- 廊坊公路聲屏障施工方案
- 員工投訴與舉報機制
- 二零二五版制造業(yè)實習(xí)生勞動合同范本及實施細則3篇
- 醫(yī)院腫瘤管理
- 2025版行政合同主體資質(zhì)審核與升級服務(wù)合同3篇
- 公司收購協(xié)議書范本
- 三級綜合醫(yī)院全科醫(yī)療科設(shè)置基本標準
- 安全生產(chǎn)盡職免責(zé)
- IT項目外包服務(wù)商管理應(yīng)急預(yù)案
- 河南省信陽市2024-2025學(xué)年高三上學(xué)期第一次質(zhì)量檢測試題 化學(xué) 含答案
- 公司企業(yè)標準模板版
- Unit 1 Cultural Heritage單元整體教學(xué)設(shè)計 人教版必修第二冊單元整體教學(xué)設(shè)計
- 養(yǎng)老護理員試題及答案
- 2024年山東省高中學(xué)業(yè)水平合格考生物試卷試題(含答案詳解)
- 2025年中考英語復(fù)習(xí)熱點話題作文范文
- 工程物資供應(yīng)、運輸、售后服務(wù)方案
- 小學(xué)數(shù)學(xué)教學(xué)工作交流數(shù)學(xué)教學(xué)中的體會總結(jié)經(jīng)驗交流會課件
評論
0/150
提交評論