版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、白盒測試的測試方法有代碼檢查法、靜態(tài)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、Z路徑覆蓋、程序變異。其中運用最為廣泛的是基本路徑測試法?;韭窂綔y試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復雜性,導出基本可執(zhí)行路徑集合,從而設(shè)計測試用例的方法。設(shè)計出的測試用例要保證在測試中程序的每個可執(zhí)行語句至少執(zhí)行一次。在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復雜性,導出基本可執(zhí)行路徑集合,從而設(shè)計測試用例。包括以下4個步驟和一個工具方法:1 .程序的控制流圖:描述程序控制流的一種圖示方法。2.程序圈復雜度:McCabe復雜性度量。從程序的環(huán)路復雜性可導出程序
2、基本路徑集合中的獨立路徑條數(shù),這是確定程序中每個可執(zhí)行語句至少執(zhí)行一次所必須的測試用例數(shù)目的上界。3.導出測試用例:根據(jù)圈復雜度和程序結(jié)構(gòu)設(shè)計用例數(shù)據(jù)輸入和預(yù)期結(jié)果。4.準備測試用例:確?;韭窂郊械拿恳粭l路徑的執(zhí)行。工具方法:圖形矩陣:是在基本路徑測試中起輔助作用的軟件工具,利用它可以實現(xiàn)自動地確定一個基本路徑集。程序的控制流圖:描述程序控制流的一種圖示方法。圓圈稱為控制流圖的一個結(jié)點,表示一個或多個無分支的語句或源程序語句即I I序結(jié)構(gòu)1F1F選擇結(jié)將WhileWhile循環(huán)結(jié)構(gòu),CASECASE多分支結(jié)構(gòu),UntilUntil編環(huán)一流圖只有二種圖形符號:圖中的每一個圓稱為流圖的結(jié)點,代
3、表一條或多條語句。流圖中的箭頭稱為邊或連接,代表控制流任何過程設(shè)計都要被翻譯成控制流圖。如何根據(jù)程序流程圖畫出控制流程圖?在將程序流程圖簡化成控制流圖時,應(yīng)注意:n在選擇或多分支結(jié)構(gòu)中,分支的匯聚處應(yīng)有一個匯聚結(jié)點OAYOn邊和結(jié)點圈定的區(qū)域叫做區(qū)域,當對區(qū)域計數(shù)時,圖形外的區(qū)域也應(yīng)記為一個區(qū)域。如下頁圖所示n如果判斷中的條件表達式是由一個或多個邏輯運算符式,則需要改為一系列只有單條件的嵌套的判斷。例如:1 ifaorb2x3else4y對應(yīng)的邏輯為:判斷結(jié)點獨立路徑:至少沿一條新的邊移動的路徑(OR,AND,NAND,NOR)連接的復合條件表達路徑LLil.路徑21-273-4-5-10-1
4、-1K路徑3:1二2個飛-8fTOTTL路徑*l-2-3-6-7-9-10-l-lL對以上路徑的遍歷, 就是至少一次地執(zhí)行了程序中的所有語句。 .基本路徑測試法的步驟:o第一步:畫出控制流圖流程圖用來描述程序控制結(jié)構(gòu)??蓪⒘鞒虉D映射到一個相應(yīng)的流圖(假設(shè)流程圖的菱形決定框中不包含復合條件)。在流圖中,每一個圓,稱為流圖的結(jié)點,代表一個或多個語句。一個處理方框序列和一個菱形決測框可被映射為一個結(jié)點,流圖中的箭頭,稱為邊或連接,代表控制流,類似于流程圖中的箭頭。一條邊必須終止于一個結(jié)點,即使該結(jié)點并不代表任何語句(例如:if-else-then結(jié)構(gòu))。由邊和結(jié)點限定的范圍稱為區(qū)域。計算區(qū)域時應(yīng)包括
5、圖外部的范圍。例I I有下面的C C函數(shù),用基本金測試法進行撕注ypjdS.ypjdS.,呢mt.mt.J即皿dNygdNyg。!MeMe卜2,磔乂=口產(chǎn)3.3.9 9戶口產(chǎn)4.4.whiwhi山曲設(shè)如北她3L3L。卜5.5.M M6.6.或口二二llll f f喔卜7.7.( (x=y+2;x=y+2;brgak;brgak;卜9.9.elseelse10.10.if(l=if(l=皿11.11.x=y+10 x=y+1012.12.elseelse13.13.jc-y+SO;jc-y+SO;14.14.”15.15.按畫出其程序流程圖和對應(yīng)的控制流圖如下第二步:計算圈復雜度圈復雜度是一種為
6、程序邏輯復雜性提供定量測度的軟件度量,將該度量用于計算程序的基本的獨立路徑數(shù)目,為確保所有語句至少執(zhí)行一次的測試數(shù)量的上界。獨立路徑必須包含一條在定義之前不曾用到的邊。有以下三種方法計算圈復雜度:流圖中區(qū)域的數(shù)量對應(yīng)于環(huán)型的復雜性;給定流圖G的圈復雜度V(G),定義為V(G)=E-N+2,E是流圖中邊的數(shù)量,N是流圖中結(jié)點的數(shù)量給定流圖G的圈復雜度V(G),定義為V(G)=P+1,P是流圖G中判定結(jié)點的數(shù)量。對應(yīng)上面圖中的固更果員計莫如下:流圖串標四個區(qū)域,V(G)=V(G)=1 1。條邊用鰭點+2=4;-2=4;-色)=勢判定結(jié)點+1=4+1=4一第三步:導出測試用例根據(jù)上面的計算方法,可得
7、出四個獨立的路徑。(一條獨立路徑是指,和其他的獨立路徑相比,至少引入一個新處理語句或一個新判斷的程序通路。V(G)值正好等于該程序的彳立路徑的條數(shù)。)U路徑1:4-14程序度愛網(wǎng)U路徑2:4-6-7-14U路徑3:4-6-8-10-13-4-14U路徑4:4-6-8-11-13-4-14根據(jù)上面的獨立路徑,去設(shè)計輸入數(shù)據(jù),使程序分別執(zhí)行到上面四條路徑。第四步:準備測試用例為了確?;韭窂郊械拿恳粭l路徑的執(zhí)行, 根據(jù)判斷結(jié)點給出的條件, 選擇適當?shù)臄?shù)據(jù)以保證某一條路徑可以被測試到,滿足上面例子基本路徑集的測試用例是:舉例說明:例:下例程序流程圖描述了最多輸入50個值(以-1作為輸入結(jié)束標志),
8、計算其中有效的學生分數(shù)的個數(shù)、總分數(shù)和平均值。路役L4-14*L4-14*輸入數(shù)據(jù):糜更颯照=0,=0,超取iRecardNurri0&1iRecardNurri0&1某一個值J J頸期結(jié)果:X=X=。路徑2:72:7- -14.14.箱入數(shù)據(jù)1 1iCecordNjrin=liCecordNi.TeLLa aZ.Z.啦*二口產(chǎn)&蟻=。身4.4.whileORwhileOR足 014014物,圖0)0)1 1.W氏if(0=if(0=嗔也眼 A7,x=y7,x=y+ +2;2;break;break;s,s,else*else*I Iif(l=if(l=上0404x-y+10 x-y+10;
9、11.11.e e惶牛,12.12.x-y+20 x-y+20;* *1 113.13.A A1工】村02=0,CTFfinn2+t逅回步驟1:導出過程的流圖步驟2:確定環(huán)形復雜性度量V(G):1)V(G)=6(個區(qū)域)2)V(G)=EN+2=16V2+2=6其中E為流圖中的邊數(shù),N為結(jié)點數(shù);3)V(G)=P+1=5+1=6其中P為謂詞結(jié)點的個數(shù)。在流圖中,結(jié)點2、3、5、6、9是謂詞結(jié)點。步驟3:確定基本路徑集合(即獨立路徑集合)。于是可確定6條獨立的路徑:路徑1:1-2-9-10-12路徑2:1-2-9-11-12路徑3:1-2-3-9-10-12路徑4:1-2-3-4-5-8-2-路徑5
10、:1-2-3-4-5-6-8-2-路徑6:1-2-3-4-5-6-7-8-2-步驟4:為每一條獨立路徑各設(shè)計一組測試用例,以便強迫程序沿著該路徑至少執(zhí)行一次。1)路徑1(1-2-9-10-12)的測試用例:scorek=有效分數(shù)值,當ki;scorei=1,2i50;期望結(jié)果:根據(jù)輸入的有效分數(shù)算出正確的分數(shù)個數(shù)n1、總分sum和平均分average2)路徑2(1-2-9-11-12)的測試用例:score1=-1;期望的結(jié)果:average=1,其他量保持初值。3)路徑3(1-2-3-9-10-12)的測試用例:輸入多于50個有效分數(shù),即試圖處理51個分數(shù),要求前51個為有效分數(shù);期望結(jié)果:
11、n1=50、且算出正確的總分和平均分。4)路徑4(1-2-3-4-5-8-2)的測試用例:scorei=有效分數(shù),當i50;scorek0,ki;期望結(jié)果:根據(jù)輸入的有效分數(shù)算出正確的分數(shù)個數(shù)n1、總分sum和平均分average連接權(quán)為“俵示存在一個連接,在圖中如果一行有兩個或更多的元素“1,”則這行所代表的結(jié)點一定是一個判定結(jié)點,通過連接矩陣中有兩個以上(包括兩個)元素為“1的個數(shù),就可以得到確定該圖圈復雜度的另一種算法。2.3.32.3.3 基本路徑測試法基本路徑測試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復雜性,導出基本可執(zhí)行的路徑集合,從而設(shè)計測試用例的方法。設(shè)計出的測試用
12、例要保證在測試中程序的每個執(zhí)行語句至少執(zhí)行一次?;韭窂綔y試法的重點內(nèi)容如下:程序的控制流圖:描述程序控制流的一種圖示方法。程序環(huán)形復雜度:McCabeMcCabe 復雜性度量。從程序的環(huán)路復雜性可導出程序基本路徑集合中的獨立路徑條數(shù),這是確定程序中每個可執(zhí)行語句至少執(zhí)行一次所必需的測試用例數(shù)目的上界。導出測試用例:根據(jù)圈復雜度和程序結(jié)構(gòu)設(shè)計用例數(shù)據(jù)輸入和預(yù)期結(jié)果。準備測試用例:確?;韭窂郊械拿恳粭l路徑的執(zhí)行。程序控制流圖(可簡稱流圖)是對程序流程圖進行簡化后得到的,它突出表示程序控制流的結(jié)構(gòu)。程序控制流圖是描述程序控制流的一種方式,其要點如下:1 1)圖形符號:圓圈代表一個結(jié)點,表示一個
13、或多個無分支的語句或源程序語句。2 2)程序控制流邊和點圈定的部分叫做區(qū)域。當對區(qū)域計數(shù)時,圖形外的一個部分也應(yīng)記為一個區(qū)域。3 3)判斷語句中的條件為復合條件(即條件表達式由一個或多個邏輯運算符連接的邏輯表達式(aandbaandb)時,則需要改變復合條件的判斷為一系列只有單個條件的嵌套的判斷。結(jié)點由帶標號的圓圈表示,可代表一個或多個語句、一個處理框序列和一個條件判定框(假設(shè)不包含復合條件)??刂屏骶€由帶箭頭的弧或線表示,可稱為邊,它代表程序中的控4 4810111314810111314制流。為了滿足路徑覆蓋,必須首先確定具體的路徑以及路徑的個數(shù)。我們通常采用控制流圖的邊(?。┬蛄泻凸?jié)點列
14、表示某一條具體路徑。路徑測試就是從一個程序的入口開始,執(zhí)行所經(jīng)歷的各個語句的完整過程。任何關(guān)于路徑分析的測試都可以叫做路徑測試。完成路徑測試的理想情況是做到路徑覆蓋,但對于復雜性高的程序要做到所有路徑覆蓋(測試所有可執(zhí)行路徑)是不可能的。在不能實現(xiàn)所有路徑覆蓋的前提下,如果某一程序的每一個獨立路徑都被測試過,那么可以認為程序中的每個語句都已經(jīng)檢驗過了,即達到了語句覆蓋。這種測試方法就是通常所說的基本路徑測試方法?;韭窂綔y試方法是在控制流圖的基礎(chǔ)上,通過分析控制結(jié)構(gòu)的環(huán)形復雜度,導出執(zhí)行路徑的基本集,再從該基本集設(shè)計測試用例。基本路徑測試方法包括以下 4 4 個步驟:1 1)畫出程序的控制流圖
15、。2 2)計算程序的環(huán)形復雜度,導出程序基本路徑集中的獨立路徑條數(shù),這是確定程序中每個可執(zhí)行語句至少執(zhí)行一次所必需的測試用例數(shù)目的上界。3 3)導出基本路徑集,確定程序的獨立路徑。4 4)根據(jù)步驟 3 3)中的獨立路徑,設(shè)計測試用例的輸入數(shù)據(jù)和預(yù)期輸出。程序控制流圖如圖 2-42-4 所示。(點擊查看大圖)圖2-4程序控制流程程序的環(huán)形復雜度也稱為圈復雜度,它是一種為程序邏輯復雜度提供定量尺度的軟件度量。將環(huán)形復雜度用于基本路徑方法,可以提供程序基本集的獨立路徑數(shù)量,確保所有語句至少執(zhí)行一次測試。獨立路徑是指程序中至少引入了一個新的處理語句集合或一個新條件的程序通路,包括一組以前沒有處理的語句
16、或條件的一條路徑。通常環(huán)形復雜度以圖論為基礎(chǔ),提供軟件度量??捎萌缦路椒▉碛嬎悱h(huán)形復雜度:1 1)控制流圖中區(qū)域的數(shù)量對應(yīng)于環(huán)形復雜度。2 2)給定控制流圖 G G 的環(huán)形復雜度 V V(G G), ,其定義為:V V(G)(G)= =E-N+2E-N+2Idle循環(huán)結(jié)構(gòu)IF選擇結(jié)其中,E E 是控制流圖中邊的數(shù)量,N N 是控制流圖中的節(jié)點數(shù)量。計算環(huán)形復雜度如圖 2-52-5 所示。計算結(jié)果為節(jié)點數(shù)量 N=8N=8, ,導出邊的數(shù)量 E=10E=10(用、編號表示),V V(G G)= =E-N+2=10-8+2=E-N+2=10-8+2=1010(條邊)-8-8(個節(jié)點)+2=4,+2=
17、4,導出獨立路徑用路徑 1 1、路徑 2 2、路徑 3 3、路徑 4 4 編號表示。四、基本路徑測試如果把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),例如,程序中的循環(huán)體只執(zhí)行零次和一次,就成為基本路徑測試。它是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復雜性,導出基本可執(zhí)行路徑集合,從而設(shè)計測試用例的方法。設(shè)計出的測試用例要保證在測試中,程序的每一個可執(zhí)行語句至少要執(zhí)行一次。1.程序的控制流圖控制流圖是描述程序控制流的一種圖示方法?;究刂茦?gòu)造的圖形符號如圖10-4-7所示。符號C稱為控制流圖的一個結(jié)點,一組順序處理框可以映射為一個單一的結(jié)點。控制流圖中的箭頭稱為邊,它表示了控制流的方向,在選擇或多分
18、支結(jié)構(gòu)中分支的匯聚處,即使沒有執(zhí)行語句也應(yīng)該有一個匯聚結(jié)點。邊和結(jié)點圈定的區(qū)域叫做區(qū)域,當對區(qū)域計數(shù)時,圖形外的區(qū)域也應(yīng)記為一個區(qū)域。I.七:3#J】F造鼻靖樹嗝HLE重回結(jié)構(gòu)圖10-4-7控制流圖的各種圖形符號如果判定中的條件表達式是復合條件時,即條件表達式是由一個或多個邏輯運算符(OR,AND,NAND,NOR)連接的邏輯表達式,則需要改復合條件的判定為一系列只有單個條件的嵌套的判定。例如對應(yīng)圖10-4-8(a)的復合條件的判定, 應(yīng)該畫成如圖和條件b各有一個只有單個條件的判定結(jié)點。2.計算程序環(huán)路復雜性進行程序的基本路徑測試時,程序的環(huán)路復雜性給出了程序基本路徑集合中的獨立路徑條數(shù),這是確保程序中每個可執(zhí)行語句至少執(zhí)行一次所必需的測試用例數(shù)目的上界。所謂獨立路徑,是指包括一組以前沒有處理的語句或條件的一條路徑。如在圖10-4-9(b)所示的控制流圖中
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度公積金貸款購房合同標準解讀3篇
- 二零二五版企業(yè)間借款合同范本9篇
- 二零二五年度防盜門安全認證及銷售合同2篇
- 二零二五年度車輛保險居間代理合同(含優(yōu)惠方案)3篇
- 二零二五版特色果樹種植基地承包經(jīng)營合同3篇
- 影視作品評價與獎項申報2025年度合同3篇
- 二零二五年綠色節(jié)能LED廣告租賃合同3篇
- 深圳市2025年度人才住房裝修補助購房合同3篇
- 二零二五版汽車抵押貸款車輛殘值評估合同3篇
- 二零二五年度金融產(chǎn)品發(fā)行與銷售合同3篇
- 軟件項目應(yīng)急措施及方案
- 2025河北邯鄲經(jīng)開國控資產(chǎn)運營管理限公司招聘專業(yè)技術(shù)人才5名高頻重點提升(共500題)附帶答案詳解
- 2024年民法典知識競賽考試題庫及答案(共50題)
- 2025老年公寓合同管理制度
- 2024-2025學年人教版數(shù)學六年級上冊 期末綜合卷(含答案)
- 鈑金設(shè)備操作培訓
- 感染性腹瀉的護理查房
- 中考英語688高頻詞大綱詞頻表
- 九年級初三中考物理綜合復習測試卷3套(含答案)
- 管理制度評價表(填寫模板)
- 工地設(shè)計代表服務(wù)記錄
評論
0/150
提交評論