版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 結(jié)構(gòu)性測試(1)控制流測試結(jié)構(gòu)性測試結(jié)構(gòu)性測試方法的突出特點(diǎn),是它們都基于被測程序的源代碼,而不是基于定義由于這種絕對化的基礎(chǔ),結(jié)構(gòu)性測試方法支持嚴(yán)格定義、數(shù)據(jù)分析和精確度量結(jié)構(gòu)性測試方法大致包括兩類:基于控制流(或基于路徑)的測試:以程序圖為基礎(chǔ)(結(jié)點(diǎn)表示語句片斷,邊表示控制流),通過圖論的一些知識完全從程序的結(jié)構(gòu)來定義結(jié)構(gòu)性的測試,而不考慮代碼本身的內(nèi)在關(guān)系基于數(shù)據(jù)流的測試:從代碼本身的內(nèi)在關(guān)系出發(fā)進(jìn)行的一種結(jié)構(gòu)性的測試內(nèi)容邏輯覆蓋語句覆蓋判定覆蓋(分支覆蓋)條件覆蓋判定-條件覆蓋條件組合覆蓋路徑覆蓋DD路徑基路徑測試?yán)簩?shí)現(xiàn)一個簡單的數(shù)學(xué)運(yùn)算 int a,b; double c ; s
2、canf(“%d,%d,%f”,&a,&b,&c) If (a0 And b0) c=c/a; If (a1 or c1) c=c+1; c=b+c語句覆蓋基本思想是:設(shè)計若干測試用例,運(yùn)行被測程序,使程序中每個可執(zhí)行語句至少執(zhí)行一次。1只需設(shè)計一個測試用例:a=2,b=1,c=6,即達(dá)到了語句覆蓋。語句覆蓋(續(xù))語句覆蓋(續(xù))優(yōu)點(diǎn):可以很直觀地從源代碼得到測試用例,無須細(xì)分每條判定表達(dá)式。缺點(diǎn):語句覆蓋是最弱的邏輯覆蓋。對程序的邏輯覆蓋很少,只關(guān)心判定表達(dá)式的值,而沒有分別測試判定表達(dá)式中每個條件取不同值時的情況。(這種方法僅僅針對程序邏輯中顯式存在的語句,但對于隱藏的條件是無法測試的。比如
3、在if結(jié)構(gòu)中若源代碼沒有給出else后面的執(zhí)行分支,那么語句覆蓋測試就不會考慮這種情況。 )內(nèi)容邏輯覆蓋語句覆蓋判定覆蓋(分支覆蓋)條件覆蓋判定-條件覆蓋條件組合覆蓋路徑覆蓋DD路徑基路徑測試判定覆蓋基本思想是:設(shè)計若干測試用例,運(yùn)行被測程序,使得程序中每個判斷的取真分支和取假分支至少經(jīng)歷一次,即判斷真假值均曾被滿足。判定覆蓋(續(xù))a=2,b=1 ,c=6可覆蓋判斷M的Y分支和判斷Q的Y分支a=-2,b=-1 ,c=-3可覆蓋判斷M的N分支和判斷Q的N分支這兩組測試用例可覆蓋所有判定的真假分支判斷M判斷Q判定覆蓋(續(xù))a=1,b=1 ,c=-3 可覆蓋判斷M的Y分支和判斷Q的N分支a=1,b=
4、-2 ,c=3可覆蓋判斷M的N分支和判斷Q的Y分支同樣的這兩組測試用例也可覆蓋所有判定的真假分支判斷M判斷Q判定覆蓋(續(xù))優(yōu)點(diǎn):判定覆蓋具有比語句覆蓋更強(qiáng)的測試能力。同樣判定覆蓋也具有和語句覆蓋一樣的簡單性,無須細(xì)分每個判定就可以得到測試用例。缺點(diǎn):往往大部分的判定語句是由多個邏輯條件組合而成,若僅僅判斷其整個最終結(jié)果,而忽略每個條件的取值情況,必然會遺漏部分測試路徑。判定覆蓋仍是弱的邏輯覆蓋。內(nèi)容邏輯覆蓋語句覆蓋判定覆蓋(分支覆蓋)條件覆蓋判定-條件覆蓋條件組合覆蓋路徑覆蓋DD路徑基路徑測試條件覆蓋基本思想是:設(shè)計若干測試用例,執(zhí)行被測程序以后要使每個判斷中每個條件的可能取值至少滿足一次。1
5、條件覆蓋(續(xù))判斷M表達(dá)式:設(shè)條件 a0 取真 記為 T1 假 F1 條件 b0 取真 記為 T2 假 F2判斷Q表達(dá)式:設(shè)條件 a1 取真 記為 T3 假 F3 條件 c1 取真 記為 T4 假 F4判斷M判斷Q條件覆蓋(續(xù))測試用例覆蓋條件具體取值條件a=2,b=-1,c=-2T1, F2, T3, F4a0,b1,c=1a=-1,b=2,c=3F1, T2, F3, T4a0,a1它們覆蓋了判定M的N分支和判斷Q的Y分支我們用條件覆蓋設(shè)計的思想就是讓測試用例能覆蓋T1、T2、T3、T4、F1、F2、F3、F4判斷M判斷Q條件覆蓋(續(xù))優(yōu)點(diǎn):增加了對條件判定情況的測試,增加了測試路徑。缺點(diǎn)
6、:條件覆蓋不一定包含判定覆蓋。例如,我們剛才設(shè)計的用例就沒有覆蓋判斷M的Y分支和判斷Q的N分支。條件覆蓋只能保證每個條件至少有一次為真,而不考慮所有的判定結(jié)果。內(nèi)容邏輯覆蓋語句覆蓋判定覆蓋(分支覆蓋)條件覆蓋判定-條件覆蓋條件組合覆蓋路徑覆蓋DD路徑基路徑測試判定-條件覆蓋基本思想是:設(shè)計足夠的測試用例,使得判斷條件中的所有條件可能取值至少執(zhí)行一次,同時,所有判斷的可能結(jié)果至少執(zhí)行一次。1判斷M判斷Q判定-條件覆蓋(續(xù))按照判定-條件覆蓋的要求,我們設(shè)計的測試用例要滿足如下條件:所有條件可能取值至少執(zhí)行一次;所有判斷的可能結(jié)果至少執(zhí)行一次。要滿足T1、T2、 T3 、T4F1、 F2 、F3、
7、F4判定-條件覆蓋(續(xù))測試用例覆蓋條件覆蓋判斷a=2,b=1,c=6T1, T2,T3, T4M的Y分支和Q的Y分支a=-1,b=-2,c=-3F1, F2, F3, F4M的N分支和Q的N分支判斷M判斷Q要滿足T1、T2、 T3 、T4F1、 F2 、F3、F4判定-條件覆蓋(續(xù))優(yōu)點(diǎn) :能同時滿足判定、條件兩種覆蓋標(biāo)準(zhǔn)。缺點(diǎn) :判定/條件覆蓋準(zhǔn)則的缺點(diǎn)是未考慮條件的組合情況。內(nèi)容邏輯覆蓋語句覆蓋判定覆蓋(分支覆蓋)條件覆蓋判定-條件覆蓋條件組合覆蓋路徑覆蓋DD路徑基路徑測試條件組合覆蓋基本思想是:設(shè)計足夠的測試用例,使得所有可能的條件取值組合至少執(zhí)行一次1條件組合覆蓋(續(xù))按照條件組合覆
8、蓋的基本思想,對于前面的例子,我們把每個判斷中的所有條件進(jìn)行組合,設(shè)計組合條件如表所示,而我們設(shè)計的測試用例就要包括所有的組合條件。編號覆蓋條件取值判定條件取值具體條件取值1T1,T2M取Ya0,b02T1,F2M取Na0,b=03F1,T2M取Na04F1,F2M取Na= 0,b1,c16T3,F4Q取Ya1,c=17F3,T4Q取Ya18F3,F4Q取Na=1,c=1條件組合覆蓋(續(xù))測試用例覆蓋條件覆蓋判斷覆蓋組合a=2,b=1,c=6T1, T2,T3, T4M取Y分支,Q取Y分支1,5a=2,b= -1,c= -2T1, F2, T3, F4M取N分支,Q取Y分支2,6a=-1,b=
9、2,c=3F1, T2, F3, T4M取N分支,Q取Y分支3,7a= -1,b= -2,c= -3F1, F2, F3, F4M取N分支,Q取N分支4,8要滿足1、2、3、4、5、6、7、8條件組合條件組合覆蓋(續(xù))優(yōu)點(diǎn) :條件組合覆蓋準(zhǔn)則滿足判定覆蓋、條件覆蓋和判定-條件覆蓋準(zhǔn)則。缺點(diǎn) :線性地增加了測試用例的數(shù)量。內(nèi)容邏輯覆蓋語句覆蓋判定覆蓋(分支覆蓋)條件覆蓋判定-條件覆蓋條件組合覆蓋路徑覆蓋DD路徑基路徑測試路徑覆蓋基本思想是:設(shè)計所有的測試用例,來覆蓋程序中的所有可能的執(zhí)行路徑 。1路徑覆蓋(續(xù))測試用例覆蓋組合覆蓋路徑a=2,b=1,c=61,51-2-4a=1,b=1,c=-3
10、1,81-2-5a=-1,b=2,c=34,71-3-4a=-1,b=-2,c=-34,81-3-5路徑覆蓋(續(xù))優(yōu)點(diǎn) :這種測試方法可以對程序進(jìn)行徹底的測試,比前面五種的覆蓋面都廣。缺點(diǎn) :需要設(shè)計大量、復(fù)雜的測試用例,使得工作量呈指數(shù)級增長,不見得把所有的條件組合都覆蓋。 在實(shí)際的測試用例設(shè)計過程中,可以根據(jù)需要將不同的覆蓋方法組合起來使用,以實(shí)現(xiàn)最佳的測試用例設(shè)計。條件組合覆蓋結(jié)合路徑覆蓋測試用例覆蓋條件覆蓋路徑覆蓋組合a=2,b= 1,c=6T1,T2,T3,T4P1:(1-2-4)1,5a=1,b=1,c= -3T1,T2,F3,F4P2:(1-2-5)1,8a= -1,b=2,c=
11、3F1,F2,F3,T4P3:(1-3-4)4,7a= -1,b= -2,c= -3F1,F2,F3,F4P4:(1-3-5)4,8a=2,b= -1,c= -2T1,F2,T3,F4P3:(1-3-4)2,6a= -1,b=2,c=3F1,T2,F3,T4P3:(1-3-4)3,7路徑覆蓋的困難右邊的控制流圖大致對應(yīng)一個100行長的Pascal程序若其中唯一的循環(huán)至多執(zhí)行20次,則最多有520個邏輯路徑假設(shè)每運(yùn)行一組測試用例平均花費(fèi)1毫秒,總共需要3170年才能窮盡測試這些邏輯路徑內(nèi)容邏輯覆蓋語句覆蓋判定覆蓋(分支覆蓋)條件覆蓋判定-條件覆蓋條件組合覆蓋路徑覆蓋DD路徑基路徑測試程序圖/控制
12、流圖程序圖是一種有向圖,圖中的節(jié)點(diǎn)表示語句片斷,邊表示控制流。如果 i 和 j 是程序圖中的節(jié)點(diǎn),從節(jié)點(diǎn) i 到節(jié)點(diǎn) j 存在一條邊,當(dāng)且僅當(dāng)對應(yīng)節(jié)點(diǎn) j 的語句片斷可以在對應(yīng)節(jié)點(diǎn) i 的語句片斷之后立即執(zhí)行。程序圖/控制流圖(續(xù))程序圖(控制流圖)中只有兩種圖形符號:結(jié)點(diǎn):以標(biāo)有編號的圓圈表示。它代表了程序流程圖中矩形框表示的處理、菱形表示的兩個到多個出口判斷以及兩條到多條流線相交的匯合點(diǎn)。邊(?。阂约^表示。它與程序流程圖中的流線是一致的,表明了控制的順序。為了方便討論,控制流線通常標(biāo)有名字,如圖中所標(biāo)的a、b、c等。1234513542除了用程序流程圖可以轉(zhuǎn)化成控制流圖以外,還可以把偽
13、代碼表示的處理過程轉(zhuǎn)化成控制流圖。根據(jù)程序建構(gòu)控制流圖很容易 。例如:三角形偽代碼實(shí)現(xiàn)過程轉(zhuǎn)化成了控制流圖 程序圖/控制流圖(續(xù))有的時候,我們可以把幾個節(jié)點(diǎn)合并成一個,合并的原則是:若在一個節(jié)點(diǎn)序列中沒有分支,則我們可以把這個序列的節(jié)點(diǎn)都合并成一個節(jié)點(diǎn)DD路徑測試Decision-Decision(決策-決策)路徑Page126路徑路徑是一系列邊,使得對于該序列中的所有相鄰邊對偶ei、ej來說,第一條邊的終止節(jié)點(diǎn)是第二條邊的初始節(jié)點(diǎn)。環(huán)路是一個在同一個節(jié)點(diǎn)上開始和結(jié)束的(有向)路徑。半路徑半路徑是一系列邊,使得對于該序列中至少有一個相鄰邊對偶ei、ej來說,第一條邊的初始節(jié)點(diǎn)是第二條邊的初始
14、節(jié)點(diǎn),或第一條邊的終止節(jié)點(diǎn)是第二條邊的終止節(jié)點(diǎn)。路徑與半路徑舉例從n1到n6的一條路徑e2,e5:e2終止結(jié)點(diǎn)是e5的初始結(jié)點(diǎn)從n1到n5的一條路徑從n3到n6的一條路徑n1和n3之間的一條半路徑e2,e3:e2和e3有相同的終止結(jié)點(diǎn)n2和n4之間的一條半路徑e1,e2:e1和e2有相同的初始結(jié)點(diǎn)n5和n6之間的一條半路徑(路徑)鏈鏈?zhǔn)且粭l起始和終止結(jié)點(diǎn)不同的路徑,并 且每個結(jié)點(diǎn)都滿足入度1、出度1 鏈的長度:邊的數(shù)量長度為0的退化鏈,即鏈有一個節(jié)點(diǎn)和0條邊組成初始結(jié)點(diǎn)與鏈中的所有其他結(jié)點(diǎn)2-連接,不會存在1-連接或3-連接n-連接性有向圖中的兩個結(jié)點(diǎn)ni和nj0-連接,當(dāng)且僅當(dāng)ni和nj之間
15、沒有路徑1-連接,當(dāng)且僅當(dāng)ni和nj之間有一條半路徑,但沒有路徑2-連接,當(dāng)且僅當(dāng)ni和nj之間有一條路徑3-連接,當(dāng)且僅當(dāng)ni和nj之間有一條路徑,并且從nj到ni有一條路徑舉例n1 和n7是0-連接n2 和n6是1-連接n1 和n6是2-連接n3 和n6是3-連接n3n7n6n4n5n2n1e1e4e3e5e2e6DD-路徑的定義DD-路徑是程序圖中的一條鏈,使得:情況1:由一個結(jié)點(diǎn)組成,indeg0;情況2:由一個結(jié)點(diǎn)組成,outdeg0;情況3:由一個結(jié)點(diǎn)組成,indeg2 或 outdeg2;情況4:由一個結(jié)點(diǎn)組成,indeg1 并且outdeg1;情況5:長度1的最大鏈圖9-1三角
16、形程序的程序圖程序:page124程序的DD-路徑圖給定采用命令式語言編寫的一段程序,其DD-路徑圖是有向圖,其中結(jié)點(diǎn)表示其程序圖的DD-路徑,邊表示連續(xù)DD-路徑之間的控制流DD-路徑圖實(shí)際上是一種壓縮圖,在這種壓縮圖中,2-連接極大連通子圖被壓縮為對應(yīng)情況5 DD-路徑的單個結(jié)點(diǎn)三角形程序的程序圖三角形程序的DD路徑圖情況3情況4情況2情況1情況5表9-1 圖9-1中的DD-路徑類型圖9-4 三角形程序的DD-路徑圖結(jié)點(diǎn)4是情況1 DD-路徑,叫它“第一”結(jié)點(diǎn)23是情況2 DD-路徑,叫它“最后”結(jié)點(diǎn)5到8是情況5 DD-路徑結(jié)點(diǎn)8是DD-路徑中的最后結(jié)點(diǎn),因?yàn)樗亲裱湹?-連接性質(zhì)的最
17、后結(jié)點(diǎn)如果超過結(jié)點(diǎn)8包含結(jié)點(diǎn)9,就會違反鏈的入度出度1準(zhǔn)則如果在結(jié)點(diǎn)7處停止,就會違反“最大”準(zhǔn)則結(jié)點(diǎn)10、11、15、17、18和21是情況4 DD-路徑結(jié)點(diǎn)9、12、13、14、16、19、20和22是情況3 DD-路徑程序的DD-路徑圖(續(xù))在實(shí)踐中,手工為最多大約100行源代碼的程序生成DD-路徑圖是可行的。若超過這種規(guī)模,大多數(shù)測試人員會借助工具完成。測試覆蓋指標(biāo)測試覆蓋是對測試完全程度的評測。測試覆蓋是由測試需求和測試用例的覆蓋或已執(zhí)行代碼的覆蓋表示的覆蓋指標(biāo)提供了“測試的完全程度如何?”這一問題的答案。最常用的覆蓋評測是基于需求的測試覆蓋和基于代碼的測試覆蓋結(jié)構(gòu)性測試覆蓋指標(biāo)DD
18、路徑覆蓋提出DD-路徑的目的很多質(zhì)量機(jī)構(gòu)都把DD-路徑覆蓋(C1指標(biāo))作為測試覆蓋的最低可接受級別E. F. Miller發(fā)現(xiàn),當(dāng)通過一組測試用例滿足DD-路徑覆蓋要求時,可以發(fā)現(xiàn)全部缺陷中的大約85%(Miller,1991)DD路徑覆蓋= 判定/分支覆蓋如果每一條DD-路徑都被遍歷,則我們知道每個判斷分支都被執(zhí)行,其實(shí)就是遍歷DD-路徑圖中每條邊。對于if類的 語句,這意味著真、假分支都要覆蓋。對于CASE語句,則每個子句都要覆蓋循環(huán)覆蓋循環(huán)是源代碼中非常容易出錯的部分。循環(huán)測試注重于循環(huán)構(gòu)造的有效性 循環(huán)可分為四種:簡單循環(huán)、串聯(lián)循環(huán)、嵌套循環(huán)、不規(guī)則循環(huán)(棘手循環(huán))循環(huán)測試的簡單觀點(diǎn)是
19、認(rèn)為每個循環(huán)都包含一個判斷,并且需要測試判斷的兩個分支:遍歷循環(huán)退出(或不進(jìn)入)循環(huán)簡化循環(huán)的假設(shè)不進(jìn)入循環(huán)只進(jìn)入一次循環(huán)串聯(lián)、嵌套與棘手的循環(huán)最后第一ADCB最后第一ADCB最后第一ADCB小結(jié)無論哪種測試覆蓋,即使其覆蓋率達(dá)到百分之百,都不能保證把所有隱藏的程序欠缺都揭露出來。提高結(jié)構(gòu)的測試覆蓋率只能增強(qiáng)我們對被測軟件的信心,但它絕不是萬無一失的。內(nèi)容邏輯覆蓋語句覆蓋判定覆蓋(分支覆蓋)條件覆蓋判定-條件覆蓋條件組合覆蓋路徑覆蓋DD路徑基路徑測試基路徑測試向量空間的基是相互獨(dú)立的一組向量,基“覆蓋”整個向量空間,使得該空間中的任何其他向量都可以用基向量來表示。因此,一組基向量在一定程度上可
20、表示整個向量空間的本質(zhì):空間中的一切都可以用基表示,并且如果一個基元素被刪除了,則這種覆蓋特性也會丟失?;鶎y試的潛在意義是:如果可以把程序看做是一種向量空間,則這種空間的基就是要測試的非常有意義的元素集合。如果基沒有問題,則可以希望能夠用基表達(dá)的一切都是沒有問題的。基路徑測試基本路徑測試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的圈復(fù)雜度,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計測試用例的方法。設(shè)計出的測試用例要保證在測試中程序的每個可執(zhí)行語句至少執(zhí)行一次。 包含語句覆蓋和判定/分支覆蓋在選擇或多分支結(jié)構(gòu)中,分支的匯聚處應(yīng)有一個匯聚結(jié)點(diǎn)。邊和結(jié)點(diǎn)圈定的區(qū)域叫做區(qū)域,當(dāng)對區(qū)域計數(shù)時,圖形外的區(qū)域也應(yīng)
21、記為一個區(qū)域。如果判斷中的條件表達(dá)式是由一個或多個邏輯運(yùn)算符 (OR, AND, .) 連接的復(fù)合條件表達(dá)式,則需改為 一系列只有單個條件的嵌套的判斷。McCabe的基路徑方法圖9-6是一張有向圖,可以認(rèn)為是某個程序的程序圖,或DD-路徑圖。EDBACFG圖9-6 McCabe的控制圖McCabe圈復(fù)雜度T. J. McCabe圈復(fù)雜度,1976基本思想程序的復(fù)雜性很大程度上取決于程序控制流的復(fù)雜性單一的順序程序結(jié)構(gòu)最簡單,循環(huán)和選擇所構(gòu)成的環(huán)路越多,程序就越復(fù)雜圈復(fù)雜度:是一種為程序邏輯復(fù)雜性提供定量測度的軟件度量,將該度量用于計算程序的基本的獨(dú)立路徑數(shù)目獨(dú)立路徑:必須包含一條在定義之前不曾
22、用到的邊(即至少經(jīng)過一條以前未走過的邊)圈復(fù)雜度的計算V(G) = e n + 2e:控制流圖的邊數(shù)n:控制流圖的結(jié)點(diǎn)數(shù)V(G) = 判定結(jié)點(diǎn)數(shù)+1V(G) = 控制流圖中有界或無界的封閉區(qū)域個數(shù)例子V(G) = e n + 2 =10-7+2 =5V(G) = 判定結(jié)點(diǎn)數(shù) + 1 =4+1 =5 V(G) = 圖中區(qū)域數(shù) =53EDBACFG9187654210R1R5R4R3R2圈復(fù)雜度對應(yīng)著獨(dú)立路徑數(shù)目圖中的獨(dú)立路徑:p1:A,B,C,Gp2:A,B,C,B,C,Gp3:A,B,E,F(xiàn),Gp4:A,D,E,F(xiàn),Gp5:A,D,F(xiàn),G p:A,B,C,B,E,F(xiàn),G(錯)3EDBACFG9
23、187654210McCabe的基路徑方法McCabe開發(fā)了一種算法過程(叫做基線方法),用于確定基路徑集合。首先選擇一個基線路徑,應(yīng)該對應(yīng)某個“正常案例”程序的執(zhí)行。這種方法有一定的隨意性,McCabe建議選擇包括盡可能多的判定結(jié)點(diǎn)的路徑接下來重復(fù)回溯基線路徑,依次“翻轉(zhuǎn)”每個判定點(diǎn),即當(dāng)結(jié)點(diǎn)的出度2時,必須取不同的邊。三角形程序的DD-路徑圖圈復(fù)雜度: V(G)=20-17+2 =判定節(jié)點(diǎn)數(shù) +1 =區(qū)域數(shù) =5因此,5是構(gòu)成基本路徑集的獨(dú)立路徑數(shù)的上界,也是設(shè)計測試用例的數(shù)目表9-4:圖9-4的基路徑原始P1:A-B-C-E-F-H-J-K-M-N-O-最終不等邊三角形在B處翻轉(zhuǎn)P1P2
24、:A-B-D-E-F-H-J-K-M-N-O-最終不可行在F處翻轉(zhuǎn)P1P3:A-B-C-E-F-G-O-最終不可行在H處翻轉(zhuǎn)P1P4:A-B-C-E-F-H-I-N-O-最終等邊三角形在J處翻轉(zhuǎn)P1P5:A-B-C-E-F-H-J-L-M-N-O-最終等腰三角形關(guān)于McCabe基路徑方法的觀察 McCabe的過程成功地標(biāo)識了在拓?fù)浣Y(jié)構(gòu)上獨(dú)立的基路徑,但是如果存在矛盾的語義依賴關(guān)系,拓?fù)浣Y(jié)構(gòu)上可行的路徑在邏輯上有可能不可行以上問題的一種解決方案是找出邏輯依賴性的原因。三角形問題中如果仔細(xì)考慮這個問題,可以找出兩條規(guī)則:路徑如果經(jīng)過結(jié)點(diǎn)C,則必須經(jīng)過結(jié)點(diǎn)H路徑如果經(jīng)過結(jié)點(diǎn)D,則必須經(jīng)過結(jié)點(diǎn)G關(guān)于M
25、cCabe基路徑方法的觀察(續(xù)) 將上述兩條規(guī)則與McCabe的基線方法結(jié)合在一起,可得到以下可行的基路徑集合:P1:A-B-C-E-F-H-J-K-M-N-O-最終不等邊三角形P6:A-B-D-E-F-G-O-最終非三角形P4:A-B-C-E-F-H-I-N-O-最終等邊三角形P5:A-B-C-E-F-H-J-L-M-N-O-最終等腰三角形注意:如果基路徑必須是可行的,則邏輯依賴關(guān)系會壓縮基路徑集合基路徑測試步驟導(dǎo)出程序流程圖的拓?fù)浣Y(jié)構(gòu)控制流圖(程序圖)計算控制流圖的McCabe圈復(fù)雜度(設(shè)為n)確定基本路徑集,即構(gòu)造n條獨(dú)立路徑1)任意構(gòu)造一條從(唯一)入口結(jié)點(diǎn)到(唯一)出口結(jié)點(diǎn)的路徑,將
26、該路徑加入基本路徑集2)修改基本路徑集中路徑,至少經(jīng)過一條以前未走過的邊,將新路徑加入基本路徑集重復(fù)第2)步,直到基本路徑集中包含n條路徑設(shè)計測試用例,使基本路徑集中的路徑能走通1、導(dǎo)出控制流圖(程序圖)程序流程圖1236784591011R41364,57891011R3R2R122、計算控制流圖的圈復(fù)雜度有三種方法計算圈復(fù)雜度:V(G)= 區(qū)域個數(shù)=4V(G)=邊的條數(shù)-節(jié)點(diǎn)個數(shù)+2=4 V(G)=判定節(jié)點(diǎn)個數(shù)+1=43、確定基本路徑集(構(gòu)造n條獨(dú)立路徑)path1: 1-11path2: 1-2-3-4-5-10-1-11path3: 1-2-3-6-8-9-10-1-11path4:
27、1-2-3-6-7-9-10-1-11 這4條路徑組成了一個基本路徑集。4(圖的環(huán)路復(fù)雜度)是構(gòu)成這個基本路徑集的獨(dú)立路徑數(shù)的上界,也是設(shè)計測試用例的數(shù)目。4、設(shè)計測試用例,保證基本路徑集中每條路徑的執(zhí)行Procedure average;/計算不超過100個數(shù)字的平均值;同時計算總和與有效數(shù)字個數(shù)INTERFACE RETURNS average.total.input.total.valid;INTERFACE ACCEPTS value,minimum,maximum;Type value1:100 IS SCALAR ARRAY;TYPE average,total.input,tot
28、al.validMinimum, maxImun, sum IS SCALARTYPE I IS INTEGER; I=1;Sum=0;1) Total.input=total.valid=0; DO WHILE valuei-999 and total.input=minimum AND valuei 0 11) THEN average=sum/total.valid;12) ELSE average=-999;13)ENDIFEND average圖 測試用例設(shè)計的PDL,其節(jié)點(diǎn)已經(jīng)標(biāo)識2361012圖2-8 過程求平均值的流圖345679813111210在過程求平均值中,有6條路經(jīng):路徑1:1-2-10-11-13路徑2:1-2-10-12-13路徑3:1-2-3-10-11-13路徑4:1-2-3-4-5-8-9-2-路徑5:1-2-3-4-5-6-8-9-2-.路徑6:1-2-3-4-5-6-7-8-9-2-路徑4、5和
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國外原料訂購合同
- 飼料行業(yè)同盟購銷合同
- 房屋買賣合同規(guī)范化的意義
- 版合同協(xié)議廣告業(yè)務(wù)發(fā)布
- 鋼琴獨(dú)奏演出安全保障合同
- 短期貸款抵押合同
- 熱水器產(chǎn)品銷售分紅合同
- 工程用砂石料采購合同
- 借款合同爭議解決上訴狀
- 智能工廠自動化改造研發(fā)合作合同
- 中醫(yī)醫(yī)案學(xué)習(xí)方法:醫(yī)案的分類
- 小學(xué)《象棋》校本課程教案
- 中小學(xué)生研學(xué)旅行實(shí)務(wù) 課件全套 張金良 項(xiàng)目1-8研學(xué)旅行概論 -研學(xué)旅行經(jīng)典案例
- 《計算機(jī)應(yīng)用基礎(chǔ)》課件-8.1 人工智能與機(jī)器學(xué)習(xí)
- 中國地理(廣州大學(xué))智慧樹知到答案2024年廣州大學(xué)
- 風(fēng)險保證金協(xié)議書
- 《膝骨關(guān)節(jié)炎針刀臨床診療指南-公示稿》
- 安全培訓(xùn)考試題及參考答案(達(dá)標(biāo)題)
- 新課標(biāo)視域下小學(xué)信息科技有效課堂的構(gòu)建與實(shí)踐
- 中國心力衰竭基層診療與管理指南(實(shí)踐版2024)解讀
- TD/T 1012-2016 土地整治項(xiàng)目規(guī)劃設(shè)計規(guī)范(正式版)
評論
0/150
提交評論