




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試第4章 白盒測(cè)試及其用例的設(shè)計(jì)4.1 4.2 4.3 4.4 4.5 4.6 四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試本章教學(xué)目標(biāo)理論環(huán)節(jié)理論環(huán)節(jié) 學(xué)習(xí)理解白盒測(cè)試方法的基本概念 學(xué)習(xí)理解白盒測(cè)試的覆蓋理論 學(xué)習(xí)掌握白盒測(cè)試的路徑表達(dá) 學(xué)習(xí)掌握白盒測(cè)試的基本路徑測(cè)試法實(shí)踐環(huán)節(jié)實(shí)踐環(huán)節(jié) 通過案例運(yùn)用學(xué)習(xí)掌握覆蓋問題的解決方法 運(yùn)用基本路徑測(cè)試方法進(jìn)行實(shí)際程序測(cè)試四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試白盒測(cè)試是把測(cè)試對(duì)象看做一個(gè)透明的盒子,它允白盒測(cè)試是把測(cè)試對(duì)象看做一個(gè)透明的盒子,它允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信
2、息,許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。試。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試4.1 白盒測(cè)試方法 四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 白盒測(cè)試法檢查程序內(nèi)部邏輯結(jié)構(gòu),對(duì)所有邏輯路徑進(jìn)行測(cè)試,是一種窮舉路徑的測(cè)試方法。 窮舉路徑測(cè)試無法檢查出程序本身是否違反了設(shè)計(jì)規(guī)范,即程序是否是一個(gè)錯(cuò)誤的程序。窮舉路徑測(cè)試不可能查出程序因?yàn)檫z漏路徑而出錯(cuò)。窮舉路徑測(cè)試發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯(cuò)誤。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院
3、 軟件測(cè)試軟件測(cè)試保證一個(gè)模塊中的。所有邏輯值均需測(cè)試 兩種情況。檢查程序的內(nèi)部數(shù)據(jù)結(jié)構(gòu),保證其結(jié)構(gòu)的有效性。在上下邊界及可操作范圍內(nèi)運(yùn)行所有循環(huán)。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試主要是檢查程序的內(nèi)部結(jié)構(gòu)、邏輯、循環(huán)和路徑。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試4.2 程序結(jié)構(gòu)分析4.2.1 4.2.2 4.2.3 四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試4.2.1 控制流圖 控制流圖(可簡稱流圖)是對(duì)程序流程圖進(jìn)行簡化后得到的,它可以更加突出的表示程序控制流的結(jié)構(gòu)。 控制流圖中包括兩種圖形符號(hào):節(jié)點(diǎn)和控制流線。節(jié)點(diǎn)由帶標(biāo)號(hào)的圓圈表示節(jié)點(diǎn)由帶標(biāo)號(hào)的圓圈表
4、示,可代表一個(gè)或多個(gè)語句、一個(gè)處理框序列和一個(gè)條件判定框(假設(shè)不包含復(fù)合條件)。控制流線由帶箭頭的弧或線表示,可稱為邊控制流線由帶箭頭的弧或線表示,可稱為邊。它代表程序中的控制流。 對(duì)于復(fù)合條件,則可將其分解為多個(gè)單個(gè)條件,并映射成控制流圖。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試常見結(jié)構(gòu)的控制流圖其中,包含條件的節(jié)點(diǎn)被稱為(也叫謂詞節(jié)點(diǎn)),由判定節(jié)點(diǎn)發(fā)出的邊必須終止于某一個(gè)節(jié)點(diǎn),由邊和節(jié)點(diǎn)所限定的范圍被稱為。順序結(jié)構(gòu)順序結(jié)構(gòu)IF選擇結(jié)構(gòu)選擇結(jié)構(gòu)WHILE重復(fù)重復(fù)結(jié)構(gòu)結(jié)構(gòu)UNTIL重復(fù)重復(fù)結(jié)構(gòu)結(jié)構(gòu)CASE選擇選擇結(jié)構(gòu)結(jié)構(gòu)圖4-1 控制流圖四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件
5、測(cè)試圖圖4-2 復(fù)合條件的控制流圖復(fù)合條件的控制流圖四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試4.2.2 環(huán)形復(fù)雜度 環(huán)形復(fù)雜度也稱為圈復(fù)雜度,它是一種為程序邏輯復(fù)雜度提供定量尺度的軟件度量。 環(huán)形復(fù)雜度的應(yīng)用可以將環(huán)形復(fù)雜度用于基本路徑方法,它可以提供:;。采用流圖的術(shù)語,即獨(dú)立路徑必須至少包含一條在本次定義路徑之前不曾用過的邊。 測(cè)試可以被設(shè)計(jì)為基本路徑集的執(zhí)行過程,但基本路徑集通常并不唯一。 四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試計(jì)算環(huán)形復(fù)雜度的方法 環(huán)形復(fù)雜度以圖論為基礎(chǔ),為我們提供了非常有用的軟件度量??捎萌缦氯N方法之一來計(jì)算環(huán)形復(fù)雜度:控制流圖中區(qū)域的數(shù)量對(duì)應(yīng)
6、于環(huán)形復(fù)雜度。給定控制流圖G的環(huán)形復(fù)雜度V(G),定義為 V(G) = E-N+2 其中,E是控制流圖中邊的數(shù)量,N是控制流圖中的節(jié)點(diǎn)數(shù)量。給定控制流圖G的環(huán)形復(fù)雜度V(G),也可定義為 V(G) = P+1 其中,P是控制流圖G中判定節(jié)點(diǎn)的數(shù)量。 導(dǎo)出獨(dú)立路徑集:導(dǎo)出獨(dú)立路徑集:路徑1:5-15 (iRecordNum=0)路徑2:5-7-8-14-5-15 (iRecordNum0,iType=0)路徑3:5-7-9-11-14-5-15 (iRecordNum0,iType=1)路徑4:5-7-9-13-14-5-15 (iRecordNum0,iType0,iType1) 環(huán)形復(fù)雜度:
7、環(huán)形復(fù)雜度:V(G) = E-N+2 = V(G) = 10-8+2=4 orV(G) = P+1 = V(G) = 3+1=4四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試4.2.3 圖矩陣 圖矩陣是控制流圖的矩陣表示形式。 圖矩陣是一個(gè)方形矩陣,其維數(shù)等于控制流圖的節(jié)點(diǎn)數(shù)。矩陣中的每列和每行都對(duì)應(yīng)于標(biāo)識(shí)的節(jié)點(diǎn),矩陣元素對(duì)應(yīng)于節(jié)點(diǎn)間的邊。 通常,控制流圖中的結(jié)點(diǎn)用數(shù)字標(biāo)識(shí),邊則用字母標(biāo)識(shí)。如果在控制流圖中從第 i 個(gè)結(jié)點(diǎn)到第 j 個(gè)結(jié)點(diǎn)有一個(gè)標(biāo)識(shí)為 x 的邊相連接,則在對(duì)應(yīng)圖矩陣的第 i 行第 j 列有一個(gè)非空的元素 x 。節(jié)點(diǎn)1(5)2(7)3(8)4(9)5(11)6(13)7(14
8、)8(15)1(5)ab2(7)ce3(8)d4(9)fh5(11)g6(13)i7(14)j8(15)abcdefghij表表4-1 圖矩陣圖矩陣四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試習(xí)題 根據(jù)左圖給出的程序流程圖,完成以下要求:(1)畫出相應(yīng)的控制流圖。(2)計(jì)算環(huán)形復(fù)雜度。(3)給出相應(yīng)的圖矩陣。(4)找出程序的獨(dú)立路徑集合。c四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試4.3 覆蓋測(cè)試4.3.1 4.3.2 4.3.3 4.3.4 四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試4.3.1 測(cè)試覆蓋率 測(cè)試覆蓋率:用于確定測(cè)試所執(zhí)行到的覆蓋項(xiàng)的百分比。其中的覆蓋項(xiàng)是
9、指作為測(cè)試基礎(chǔ)的一個(gè)入口或?qū)傩裕热缯Z句、分支、條件等。 測(cè)試覆蓋率可以表示出測(cè)試的充分性,在測(cè)試分析報(bào)告中可以作為量化指標(biāo)的依據(jù),測(cè)試覆蓋率越高效果越好。但覆蓋率不是目標(biāo),只是一種手段。 測(cè)試覆蓋率包括功能點(diǎn)覆蓋率和結(jié)構(gòu)覆蓋率:功能點(diǎn)覆蓋率大致用于表示軟件已經(jīng)實(shí)現(xiàn)的功能與軟件需要實(shí)現(xiàn)的功能之間的比例關(guān)系。結(jié)構(gòu)覆蓋率包括語句覆蓋率、分支覆蓋率、循環(huán)覆蓋率、路徑覆蓋率等等。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 邏輯覆蓋是以的設(shè)計(jì)測(cè)試用例的技術(shù)。它屬白盒測(cè)試。 根據(jù)覆蓋目標(biāo)的不同,可分為:語句覆蓋判定覆蓋條件覆蓋判定條件覆蓋條件組合覆蓋路徑覆蓋4.3.2 邏輯覆蓋法四川大學(xué)錦城學(xué)院四
10、川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 選擇足夠多的測(cè)試用例,使得程序中的每個(gè)可執(zhí)行語句至少執(zhí)行一次。 判定覆蓋 條件覆蓋 判定條件覆蓋 條件組合覆蓋 路徑覆蓋四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 語句覆蓋 通過執(zhí)行足夠的測(cè)試用例,使得程序中的每個(gè)判定至少都獲得一次“真”值和“假”值, 也就是使程序中的每個(gè)取“真”分支和取“假”分支至少均經(jīng)歷一次,也稱為“”。 條件覆蓋 判定條件覆蓋 條件組合覆蓋 路徑覆蓋四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 語句覆蓋 判定覆蓋 設(shè)計(jì)足夠多的測(cè)試用例,使得程序中每個(gè)判定包含的每個(gè)條件的可能取值(真/假)都至少滿足一次。 判定條件覆蓋 條件
11、組合覆蓋 路徑覆蓋四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 語句覆蓋 判定覆蓋 條件覆蓋 設(shè)計(jì)足夠多的測(cè)試用例,使得程序中每個(gè)判定包含的每個(gè)條件的所有情況(真/假)至少出現(xiàn)一次,并且每個(gè)判定本身的判定結(jié)果(真/假)也至少出現(xiàn)一次。(滿足判定/條件覆蓋的測(cè)試用例一定同時(shí)滿足判定覆蓋和條件覆蓋。) 條件組合覆蓋 路徑覆蓋四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 語句覆蓋 判定覆蓋 條件覆蓋 判定條件覆蓋 通過執(zhí)行足夠的測(cè)試用例,使得程序中每個(gè)判定的所有可能的條件取值組合都至少出現(xiàn)一次。(滿足組合覆蓋的測(cè)試用例一定滿足判定覆蓋、條件覆蓋和判定/條件覆蓋。) 路徑覆蓋四川大學(xué)錦城學(xué)
12、院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 語句覆蓋 判定覆蓋 條件覆蓋 判定條件覆蓋 條件組合覆蓋 設(shè)計(jì)足夠多的測(cè)試用例,要求覆蓋程序中所有可能的路徑。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試邏輯覆蓋法(續(xù))組合覆蓋判斷/條件覆蓋判斷覆蓋條件覆蓋語句覆蓋int DoWork (int x,int y,int z) int k=0,j=0; if ( (x3)&(z5) ) j=x*y+10; /語句塊2 j=j%3; /語句塊3 return j;四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試X3 & z5執(zhí)行語句塊執(zhí)行語句塊3FFTTabdce四川大學(xué)錦城學(xué)院四川大
13、學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 L1(a b d)= x3 and z5= x3 and z3 and z5= x=4 and z3 and z5四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 L2(a c d)= x3 and z5= x3 or z3 and z5= x=4 and z10 or z 10 and y5 or x3 and y5四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 L3(a b e)= x3 and z5= x3 and z5 = x3 and z3 and z5= x3 or z5 = x3 and x4 and y5 or z10 and x4 and
14、y5四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試語句覆蓋 語句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得。選擇執(zhí)行路徑:選擇執(zhí)行路徑: L1(a b d)設(shè)計(jì)測(cè)試用例:設(shè)計(jì)測(cè)試用例: 輸入:輸入:4,6,5 預(yù)計(jì)輸出:預(yù)計(jì)輸出:1 實(shí)際輸出:實(shí)際輸出:?如果將第一個(gè)條件中的如果將第一個(gè)條件中的andand改為改為oror,或?qū)⒌诙€(gè)條件中的或?qū)⒌诙€(gè)條件中的oror改為改為andand,該測(cè)試用例測(cè)試不出錯(cuò)誤。該測(cè)試用例測(cè)試不出錯(cuò)誤。語句覆蓋可以保證程序中的每個(gè)語句都得語句覆蓋可以保證程序中的每個(gè)語句都得到執(zhí)行,但發(fā)現(xiàn)不了判定中邏輯運(yùn)算的錯(cuò)到執(zhí)行,但發(fā)現(xiàn)不了判定中邏輯運(yùn)算的錯(cuò)誤,即它
15、并不是一種充分的檢驗(yàn)方法??烧`,即它并不是一種充分的檢驗(yàn)方法??梢哉f語句覆蓋是最弱的邏輯覆蓋準(zhǔn)則。以說語句覆蓋是最弱的邏輯覆蓋準(zhǔn)則。 四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試判定覆蓋 判定覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得。 判定覆蓋又稱為。選擇執(zhí)行路徑:選擇執(zhí)行路徑: L1(a b d) L4(a c e)設(shè)計(jì)測(cè)試用例:設(shè)計(jì)測(cè)試用例: 輸入:輸入:4,6,5 覆蓋覆蓋L1 2,5,5 覆蓋覆蓋L4 預(yù)計(jì)輸出:預(yù)計(jì)輸出:1,0 實(shí)際輸出:實(shí)際輸出:就判定覆蓋而言,即使一個(gè)布爾表達(dá)式含有就判定覆蓋而言,即使一個(gè)布爾表達(dá)式含有多個(gè)邏輯表達(dá)式,也只需要測(cè)試每個(gè)布爾表多個(gè)邏輯表達(dá)
16、式,也只需要測(cè)試每個(gè)布爾表達(dá)式的值為真和假兩種情況就可以了。達(dá)式的值為真和假兩種情況就可以了。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試判定覆蓋 分析: 上述兩個(gè)測(cè)試用例不僅滿足了判定覆蓋,同時(shí)還做到語句覆蓋。從這點(diǎn)看似乎判定覆蓋比語判定覆蓋比語句覆蓋更強(qiáng)一些,但仍然無法確定判定內(nèi)部條件句覆蓋更強(qiáng)一些,但仍然無法確定判定內(nèi)部條件的錯(cuò)誤。的錯(cuò)誤。例如把第二個(gè)判定中的條件y5錯(cuò)誤寫為y3)&(z3 取真值記為T1,取假值記為T1 條件z5) ): 條件x=4 取真值記為T3,取假值記為T3 條件y5 取真值記為T4,取假值記為T4四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試T
17、RUEFALSEX34,6,52,5,5Z54,6,52,5,52,5,15四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 測(cè)試用例 執(zhí)行路徑 覆蓋條件 覆蓋分支 x=4、y=6、z=5 abd T1、T2、T3、T4 bdX=2、y=5、z=5aceT1、T2、 T3、T4ce x=2、y=5、 z=15 aceT1、T2、 T3、T4 ce 測(cè)試用例 執(zhí)行路徑 覆蓋條件 覆蓋分支 x=4、y=6、z=5 abd T1、T2、T3、T4 bd x=2、y=5、 z=15 ace T1、T2、 T3、T4 ce分析:分析:下面這組測(cè)試用例不但覆蓋了下面這組測(cè)試用例不但覆蓋了4個(gè)條件的全部個(gè)
18、條件的全部8種情況,而種情況,而且將兩個(gè)判定的且將兩個(gè)判定的4個(gè)分支個(gè)分支b、c、d、e也同時(shí)覆蓋了,即同也同時(shí)覆蓋了,即同時(shí)達(dá)到了條件覆蓋和判定覆蓋。時(shí)達(dá)到了條件覆蓋和判定覆蓋。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 分析:分析: 這組測(cè)試用例,則雖然滿足了條件覆蓋,但只是這組測(cè)試用例,則雖然滿足了條件覆蓋,但只是覆蓋了程序中第一個(gè)判定的取假分支覆蓋了程序中第一個(gè)判定的取假分支c 和第二個(gè)和第二個(gè)判定的取真分支判定的取真分支d,不滿足判定覆蓋的要求。,不滿足判定覆蓋的要求。 測(cè)試用例 執(zhí)行路徑 覆蓋條件覆蓋分支x=2、y=6、z=5 acd T1、T2、 T3、T4 cdx=4、
19、y=5、z=15 acd T1、T2、 T3、T4 cd四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試判定/條件覆蓋 判定/條件覆蓋實(shí)際上是將判定覆蓋和條件覆蓋結(jié)合起來的一種方法,即:設(shè)計(jì)足夠的測(cè)試用例,設(shè)計(jì)足夠的測(cè)試用例,使得判定中每個(gè)條件的所有可能取值至少滿足一使得判定中每個(gè)條件的所有可能取值至少滿足一次,同時(shí)每個(gè)判定的可能結(jié)果也至少出現(xiàn)一次。次,同時(shí)每個(gè)判定的可能結(jié)果也至少出現(xiàn)一次。 測(cè)試用例 執(zhí)行路徑 覆蓋條件 覆蓋分支 x=4、y=6、z=5 abd T1、T2、T3、T4 bd x=2、y=5、 z=15 ace T1、T2、 T3、T4 ce四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院
20、軟件測(cè)試軟件測(cè)試判定/條件覆蓋(續(xù)) 分析:從表面上看,判定/條件覆蓋測(cè)試了各個(gè)判定中的所有條件的取值,但實(shí)際上,編譯器在檢查含有多個(gè)條件的邏輯表達(dá)式時(shí),某些情況下的某些條件將會(huì)被其它條件所掩蓋。因此,判定/條件覆蓋也不一定能夠完全檢查出邏輯表達(dá)式中的錯(cuò)誤。 例如:對(duì)于第一個(gè)判定(x3)&(z3和z3為假,則編譯器將不再檢查z5)來說,若條件x=4滿足,就認(rèn)為該判定為真,這時(shí)將不會(huì)再檢查y5,那么同樣也無法發(fā)現(xiàn)這個(gè)條件中的錯(cuò)誤。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試組合覆蓋 組合覆蓋就是要使設(shè)計(jì)的測(cè)試用例能覆蓋每一個(gè)判定的使設(shè)計(jì)的測(cè)試用例能覆蓋每一個(gè)判定的所有可能的條件取值
21、組合。所有可能的條件取值組合。 對(duì)DoWork函數(shù)中的各個(gè)判定的條件取值組合加以標(biāo)記: 1、x3, z3, z=10 記做T1 T2,第一個(gè)判定的取假分支 3、x=3, z10 記做T1 T2,第一個(gè)判定的取假分支 4、x=10 記做T1 T2,第一個(gè)判定的取假分支 5、x=4, y5 記做T3 T4,第二個(gè)判定的取真分支 6、x=4, y5 記做T3 T4,第二個(gè)判定的取真分支 8、x!=4, y8 AND Y5X0 OR Y0引用語句1引用語句2NYNYX16 OR Y10引用語句3NY四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試X8 AND Y5X0 OR Y0引用語句1引用語句2
22、NYNYX16 OR Y10引用語句3NY語句覆蓋用例:語句覆蓋用例:覆蓋路徑1:a-e-f 用例1:17,11覆蓋路徑2:a-b-d用例2:7,4覆蓋路徑3:a-b-c用例3:0,-1afedcbg判定覆蓋用例:判定覆蓋用例:覆蓋路徑1:a-e-f 用例1:17,11覆蓋路徑2:a-b-d用例2:7,4覆蓋路徑3:a-b-c用例3:0,-1覆蓋路徑4:a-e-g用例4:9,6 測(cè)試用例 執(zhí)行路徑 覆蓋條件 覆蓋分支 x=17、y=11 aef T1、T2、T3、T4 、T5、T6ef x=0、y=-1abc -T1、-T2、-T3、-T4、-T5、-T6 bc條件覆蓋條件覆蓋四川大學(xué)錦城學(xué)院
23、四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 測(cè)試用例 執(zhí)行路徑 覆蓋條件 覆蓋分支 x=17、y=11 aef T1、T2、T3、T4 、T5、T6ef x=0、y=-1abc -T1、-T2、-T3、-T4、-T5、-T6 bcx=7、y=4abd-T1、T2、-T3-T4、T5、-T6bdx=9、y=6aegT1、T2、-T3、T4、T5、-T6eg判定判定/條件覆蓋條件覆蓋X8:真為T1,假為-T1X0:真為T2,假為-T2 X16:真為T3,假為-T3y5:真為T4,假為-T4 y0:真為T5,假為-T5 y10:真為T6,假為-T6四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試組合覆蓋組
24、合覆蓋1.X8,Y5:T1T42.X8,Y=5:T1-T43.X5:-T1T44.X=8,Y0,Y0:T2T56.X0,Y=0:T2-T57.X0:-T2T58.X=0,Y16,Y10:T3T610.X16,Y=10:T3-T611.X10:-T3T612.X=16,Y3 & Z=3 & Z10) 按照我們前面設(shè)計(jì)的測(cè)試用例(x的值取2或4)來看,邏輯覆蓋對(duì)這樣的小問題都無能為力。分析出現(xiàn)這一情況的原因在于:錯(cuò)誤區(qū)域僅僅在x=3這個(gè)點(diǎn)上,即僅當(dāng)x的值取3時(shí),測(cè)試才能發(fā)現(xiàn)錯(cuò)誤。面對(duì)這類情況,我們應(yīng)該從中吸取的教訓(xùn)是測(cè)試工作要有重點(diǎn),要多針對(duì)容易要多針對(duì)容易發(fā)生問題的地方設(shè)計(jì)測(cè)試用
25、例。發(fā)生問題的地方設(shè)計(jì)測(cè)試用例。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 ESTCA(Error Sensitive Test Cases Analysis )錯(cuò)誤敏感測(cè)試用例分析規(guī)則:錯(cuò)誤敏感測(cè)試用例分析規(guī)則:在容易發(fā)生問題的地方設(shè)計(jì)測(cè)試用例,即重視程序中謂在容易發(fā)生問題的地方設(shè)計(jì)測(cè)試用例,即重視程序中謂詞(條件判斷)的取值。詞(條件判斷)的取值。 這一規(guī)則雖然并不完備,但在普通程序中卻是有效的。原因在于這是一種經(jīng)驗(yàn)型的覆蓋準(zhǔn)則,規(guī)則本身針對(duì)了程序編寫人員容易發(fā)生的錯(cuò)誤,或是圍繞著發(fā)生錯(cuò)誤的頻繁區(qū)域,從而提高了發(fā)現(xiàn)錯(cuò)誤的命中率。具體規(guī)則如下: ESTCA覆蓋規(guī)則四川大學(xué)錦城學(xué)院四川
26、大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 規(guī)則1 對(duì)于A rel B型 (rel可以是) 的分支謂詞,應(yīng)適當(dāng)?shù)倪x擇A與B的值,使得測(cè)試執(zhí)行到該分支語句時(shí),AB的情況分別出現(xiàn)一次。 這是為了檢測(cè)邏輯符號(hào)寫錯(cuò)的情況這是為了檢測(cè)邏輯符號(hào)寫錯(cuò)的情況,如將“AB”。 規(guī)則2 對(duì)于A rel C型 (rel可以是或, A是變量,C是常量)的分支謂詞:當(dāng)rel為時(shí),應(yīng)適當(dāng)?shù)倪x擇A的值,使A=C+M。 這是為了檢測(cè)這是為了檢測(cè)“差差1”之類的錯(cuò)誤之類的錯(cuò)誤,如“A1”錯(cuò)寫成“A0”。 規(guī)則3 對(duì)外部輸入變量賦值,使其在每一個(gè)測(cè)試用例中均有不同的值與符號(hào),并與同一組測(cè)試用例中其他變量的值與符號(hào)不同。 這是為了檢測(cè)程序語句
27、中的錯(cuò)誤這是為了檢測(cè)程序語句中的錯(cuò)誤,如應(yīng)該引用某一變量而錯(cuò)誤的引用成了一個(gè)常量。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試LCSAJ準(zhǔn)則 LCSAJ (Linear Code Sequence and Jump) 的字面含義是線性代碼序列與跳轉(zhuǎn)。在程序中,一個(gè)在程序中,一個(gè)LCSAJ是一組是一組順序執(zhí)行的代碼,以控制跳轉(zhuǎn)為其結(jié)束點(diǎn)順序執(zhí)行的代碼,以控制跳轉(zhuǎn)為其結(jié)束點(diǎn)。 LCSAJ的起點(diǎn)是根據(jù)程序本身決定的。它的起點(diǎn)可以是程序第一行或轉(zhuǎn)移語句的入口點(diǎn),或是控制流可跳達(dá)的點(diǎn)。 如果有幾個(gè)LCSAJ首尾相接,且第一個(gè)LCSAJ起點(diǎn)為程序起點(diǎn),最后一個(gè)LCSAJ終點(diǎn)為程序終點(diǎn),這樣的LCSA
28、J串就組成了程序的一條路徑(LCSAJ路徑路徑)。一條LCSAJ程序路徑可能是由2個(gè)、3個(gè)或多個(gè)LCSAJ組成的。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 基于LCSAJ與路徑的關(guān)系,提出了層次LCSAJ覆蓋準(zhǔn)則。它是一個(gè)分層分層的覆蓋準(zhǔn)則,可以概括的描述為:第一層 語句覆蓋。第二層 分支覆蓋。第三層 LCSAJ覆蓋,即程序中的每一個(gè)LCSAJ都至少在測(cè)試中經(jīng)歷過一次。第四層 兩兩LCSAJ覆蓋,即程序中的每兩個(gè)相連的LCSAJ組合起來在測(cè)試中都要經(jīng)歷一次。第n+2層 每n個(gè)首尾相連的LCSAJ組合在測(cè)試中都要經(jīng)歷一次。 在實(shí)施測(cè)試時(shí),若要實(shí)現(xiàn)上述的層次LCSAJ覆蓋,需要產(chǎn)生被測(cè)程
29、序的所有LCSAJ。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 找出前面DoWork函數(shù)的所有LCSAJ和LCSAJ路徑。 LCSAJ(5個(gè)): (1)int k=0,j=0; if ( (x3)&(z5) ) (3)if ( (x=4)|(y5) ) (4)j=x*y+10; j=j%3 (5)j=j%3 LCSAJ路徑(4條): (1)-(2)-(4) (1)-(2)-(5) (1)-(3)-(4) (1)-(3)-(5)四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試4.4 路徑測(cè)試4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 四川大學(xué)錦城學(xué)院四川大學(xué)錦城
30、學(xué)院 軟件測(cè)試軟件測(cè)試4.4.1 路徑表達(dá)式 為了滿足路徑覆蓋,必須首先確定具體的路徑以及路徑的個(gè)數(shù)。我們通常采用控制流圖的邊(弧)序列和節(jié)點(diǎn)序列表示某一條具體路徑,更為概括的表示方法為:(1)弧a和弧b相乘,表示為ab,它表明路徑是先經(jīng)歷弧a,接著再經(jīng)歷弧b,弧a和弧b是先后相接的。(2)弧a和弧b相加,表示為a+b,它表明兩條弧是“或”的關(guān)系,是并行的路段。 路徑數(shù)的計(jì)算: 在路徑表達(dá)式中,將所有弧均以數(shù)值1來代替,再進(jìn)行表達(dá)式的相乘和相加運(yùn)算,最后得到的數(shù)值即為該程序的路徑數(shù)。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試4.4.2 基本路徑測(cè)試方法 路徑測(cè)試就是從一個(gè)程序的入口開始
31、,執(zhí)行所經(jīng)歷的各個(gè)語句的完整過程。從廣義的角度講,任何有關(guān)路徑分析的測(cè)試都可以被稱為路徑測(cè)試。 完成路徑測(cè)試的理想情況是做到路徑覆蓋,但對(duì)于復(fù)雜性大的程序要做到所有路徑覆蓋(測(cè)試所有可執(zhí)行路徑)是不可能的。 在不能做到所有路徑覆蓋的前提下,如果某一程序的每一個(gè)獨(dú)立路徑都被測(cè)試過,那么可以認(rèn)為程序中的每個(gè)語句都已經(jīng)檢驗(yàn)過了,即達(dá)到了語句覆蓋。這種測(cè)試方法就是通常所說的基本路徑測(cè)試方法。 四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 基本路徑測(cè)試方法是在控制流圖的基礎(chǔ)上,通過分析控制結(jié)構(gòu)的環(huán)形復(fù)雜度,導(dǎo)出執(zhí)行路徑的基本集,再從該基本集設(shè)計(jì)測(cè)試用例。基本路徑測(cè)試方法包括以下4個(gè)步驟:(1)畫出
32、程序的控制流圖。(2)計(jì)算程序的環(huán)形復(fù)雜度,導(dǎo)出程序基本路徑集中的獨(dú)立路徑條數(shù),這是確定程序中每個(gè)可執(zhí)行語句至少執(zhí)行一次所必須的測(cè)試用例數(shù)目的上界。(3)導(dǎo)出基本路徑集,確定程序的獨(dú)立路徑。(4)根據(jù)(3)中的獨(dú)立路徑,設(shè)計(jì)測(cè)試用例的輸入數(shù)據(jù)和預(yù)期輸出。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試void Sort ( int iRecordNum, int iType )1 2 int x=0;3 int y=0;4 while ( iRecordNum- 0 )5 6 If ( iType=0 )7x=y+2;8 else9 If ( iType=1 )10 x=y+10;11 el
33、se12 x=y+20;13 14 四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 基本路徑測(cè)試法實(shí)現(xiàn)步驟:基本路徑測(cè)試法實(shí)現(xiàn)步驟: 畫出控制流圖: 如右圖所示 計(jì)算環(huán)形復(fù)雜度: 10(條邊)- 8(個(gè)節(jié)點(diǎn))+ 2 = 4 導(dǎo)出獨(dú)立路徑(用語句編號(hào)表示) 路徑1:414 路徑2:46714 路徑3:4691013414 路徑4:4691213414467910121314四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試輸入數(shù)據(jù)預(yù)期輸出測(cè)試用例1irecordnum = 0itype = 0 x = 0y = 0測(cè)試用例2irecordnum = 1itype = 0 x = 0y = 0
34、測(cè)試用例3irecordnum = 1itype = 1x = 10y = 0測(cè)試用例4irecordnum = 1itype = 2x = 0y = 20 設(shè)計(jì)測(cè)試用例:四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試基本路徑測(cè)試法總結(jié) 基本路徑測(cè)試方法把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),程序中的循環(huán)體最多只執(zhí)行一次獨(dú)立路徑覆蓋。 它是在程序控制流圖的基礎(chǔ)上,分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,設(shè)計(jì)測(cè)試用例的方法。設(shè)計(jì)出的測(cè)試用例要保證在測(cè)試中,程序的每一個(gè)可執(zhí)行語句至少要執(zhí)行一次。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試4.4.3 循環(huán)測(cè)試方法 從本質(zhì)上說,循環(huán)測(cè)試的
35、目的就是檢查循環(huán)結(jié)構(gòu)的有效性。 通常,循環(huán)可以劃分為簡單循環(huán)、嵌套循環(huán)、串接循環(huán)和 非結(jié)構(gòu)循環(huán)4類。(1)測(cè)試簡單循環(huán)測(cè)試簡單循環(huán)。設(shè)其循環(huán)的最大次數(shù)為n ,可采用以下測(cè)試集: 跳過整個(gè)循環(huán);跳過整個(gè)循環(huán); 只循環(huán)一次;只循環(huán)一次; 只循環(huán)兩次;只循環(huán)兩次; 循環(huán)循環(huán) m 次,其中次,其中m=2,對(duì)于P-use的程序圖出度=2d,C-use當(dāng)且僅當(dāng)USE(v,n)是計(jì)算使用,對(duì)于C-use的程序圖入度=a&c=A&c=0&c=a&c=A&c=0&c=9) digit+; else other+ printf(“其中:字母數(shù)=%d空格數(shù)=%d 數(shù)字
36、數(shù)=%d 其它字符數(shù)=%dn”,letters,space,digit,other);1235746891011四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試1243510976811n na ac cd dm mi ih hg gf fe eb bl lk kj j其它其它 為數(shù)字為數(shù)字 為空格為空格 為字母為字母 while while 語句語句 四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試(2)復(fù)雜性為:5(3)獨(dú)立路徑為: ab acdfn acegin acehjln acehkmn 測(cè)試用例為:序號(hào)測(cè)試用例覆 蓋 獨(dú) 立路徑預(yù)期結(jié)果備注1輸入空串a(chǎn)b輸出結(jié)果都為0 2輸入
37、“ab”acdfn正確給出字符個(gè)數(shù) 3輸入“ a ”a c e g in正確給出空格個(gè)數(shù) 4輸入“8”a c e h j ln正確給出數(shù)字個(gè)數(shù) 5輸入“#”a c e h k mn正確給出其他字符個(gè)數(shù) 四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試(4) N-S圖(5) 最少測(cè)試用例數(shù):52:是否為空字符串5:是否為空格7:是否為數(shù)字3:是否為字母114689四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試(6) 條件組合測(cè)試用例1:記c!=n為T12:-T13:記a=c=z |A=c=Z為T2T34: -T2T35: T2-T36: -T2-T37: 記c= 為T48: -T49: 記
38、0=c=9為T510: -T5序號(hào)序號(hào)測(cè)試用例測(cè)試用例覆蓋組合覆蓋組合預(yù)期結(jié)果預(yù)期結(jié)果1空字符串2輸出結(jié)果都為02aB 1&1,3,7,9正確輸出字符數(shù),空格數(shù),數(shù)字?jǐn)?shù)以及其他字符數(shù)3B1,4,8,10正確輸出字符數(shù)4k 1,5,7,10正確輸出字符數(shù)和空格數(shù)511,6,8,9正確輸出數(shù)字個(gè)數(shù)四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試4.5 其他白盒測(cè)試方法4.5.1 4.5.2 4.5.3 四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試4.5.1 符號(hào)測(cè)試 符號(hào)測(cè)試的基本思想是允許程序的輸入不僅僅是具體的數(shù)值數(shù)據(jù),而且包括符號(hào)值。這里所說的符號(hào)值可以是基本符號(hào)變量值,也可
39、以是這些符號(hào)變量值的一個(gè)表達(dá)式。 符號(hào)測(cè)試是基于代數(shù)運(yùn)算執(zhí)行的測(cè)試,是測(cè)試和驗(yàn)證的折衷方法。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試4.5.2 變異測(cè)試 程序變異方法是一種錯(cuò)誤驅(qū)動(dòng)測(cè)試錯(cuò)誤驅(qū)動(dòng)測(cè)試。所謂錯(cuò)誤驅(qū)動(dòng)測(cè)試方法,是指該方法是針對(duì)某類特定程序錯(cuò)誤的。 程序強(qiáng)變異程序強(qiáng)變異 要運(yùn)行所有的變異因子,從而成倍的提高了測(cè)試成本; 決定程序與其變異因子是否等價(jià)是一個(gè)遞歸不可解的問題。 程序弱變異程序弱變異 是一種測(cè)試數(shù)據(jù)選擇的準(zhǔn)則; 可以減少程序運(yùn)行的次數(shù); 可能出現(xiàn)“負(fù)負(fù)得正”的情況。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試4.5.3 程序插樁 程序插樁(program in
40、strumentation)是一種基本的測(cè)試手段,在軟件測(cè)試中有著廣泛的作用。 一、方法簡介 程序插樁方法簡單的說是借助于往被測(cè)程序中插入操作來實(shí)現(xiàn)測(cè)試目的的方法。 以計(jì)算整數(shù)X和Y的最大公約數(shù)程序?yàn)槔?,說明插樁方法的要點(diǎn)。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試圖中的虛線框并不是原來的內(nèi)容,而是為了紀(jì)錄語句執(zhí)行次數(shù)而插入的。這些虛線框要完成的工作都是計(jì)數(shù)語句。C(i)=C(i)+1在程序入口處插入對(duì)計(jì)數(shù)器C(i)的初始化語句在程序出口處加入打印語句即構(gòu)成完整的插樁程序四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 二、設(shè)計(jì)程序插樁時(shí)序考慮的問題 (1)探測(cè)哪些信息? (2)在程
41、序的哪些地方設(shè)置探測(cè)點(diǎn); (3)需要設(shè)置那些探測(cè)點(diǎn)。1、2需結(jié)合具體的問題解決可根據(jù)控制結(jié)構(gòu)考慮在沒有分支結(jié)構(gòu)的程序段只需一個(gè)插樁語句在沒有分支結(jié)構(gòu)的程序段只需一個(gè)插樁語句四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 至少應(yīng)在哪些部位設(shè)置計(jì)數(shù)語句 程序塊的第一個(gè)可執(zhí)行語句之前 有標(biāo)號(hào)的可執(zhí)行語句處 循環(huán)終端語句之后 選擇語句之后 輸入輸出語句之后 函數(shù)調(diào)用之后 跳轉(zhuǎn)語句之后四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試4.6 單元測(cè)試由于一個(gè)模塊或一個(gè)方法(Method)并不是一個(gè)獨(dú)立的程序,在考慮測(cè)試它時(shí)要同時(shí)考慮它和外界的聯(lián)系,因此要用到一些輔助模塊,來模擬與所測(cè)模塊相聯(lián)系的其他
42、模塊。一般把這些輔助模塊分為兩種: 1、驅(qū)動(dòng)模塊(driver):相當(dāng)于所測(cè)模塊的主程序。 2、樁模塊(stub):用于代替所測(cè)模塊調(diào)用的子模塊。 那么,所測(cè)模塊和與它相關(guān)的驅(qū)動(dòng)模塊及樁模塊共同構(gòu)成了一個(gè)“測(cè)試環(huán)境”,如圖所示。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試被測(cè)單元驅(qū)動(dòng)模塊樁模塊1樁模塊樁模塊N測(cè)試結(jié)果測(cè)試用例四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 單元測(cè)試策略 自頂向下(Top Down Unit Testing)的單元測(cè)試策略 自底向上的單元測(cè)試策略(Bottom up Unit Testing) 孤立的單元測(cè)試策略四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試
43、軟件測(cè)試 自頂向下的單元測(cè)試自頂向下的單元測(cè)試 一)步驟: 1. 從最頂層開始,把頂層調(diào)用的單元做成樁模塊。 2. 對(duì)第二層測(cè)試,使用上面已測(cè)試的單元做驅(qū)動(dòng)模塊。 3. 依次類推,直到全部單元測(cè)試結(jié)束。 二)優(yōu)點(diǎn):可以在集成測(cè)試之前為系統(tǒng)提供早期的集成途徑。 三)缺點(diǎn): 1. 單元測(cè)試被樁模塊控制,隨著單元測(cè)試的不斷進(jìn)行,測(cè)試過程也會(huì)變得越來越復(fù)雜,測(cè)試難度以及開發(fā)和維護(hù)的成本都不斷增加;四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 2. 要求的低層次的結(jié)構(gòu)覆蓋率也難以得到保證; 3. 由于需求變更或其他原因而必須更改任何一個(gè)單元時(shí),就必須重新測(cè)試該單元下層調(diào)用的所有單元; 4. 低層單
44、元測(cè)試依賴頂層測(cè)試,無法進(jìn)行并行測(cè)試,使測(cè)試進(jìn)度受到不同程度的影響,延長測(cè)試周期。 四)總結(jié):從上述分析中,不難看出該測(cè)試策略的成本要高于孤立的單元測(cè)試成本,因此從測(cè)試成本方面來考慮,并不是最佳的單元測(cè)試策略。四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試 自底向上的單元測(cè)試自底向上的單元測(cè)試 一)步驟:1、先對(duì)模塊調(diào)用圖上的最底層模塊開始測(cè)試,模擬調(diào)用該模塊的模塊為驅(qū)動(dòng)模塊。 2、其次,對(duì)上一層模塊進(jìn)行單元測(cè)試,用已經(jīng)被測(cè)試過的模塊做樁模塊。3、依次類推,直到全部單元測(cè)試結(jié)束。 二)優(yōu)點(diǎn):不需要單獨(dú)設(shè)計(jì)樁模塊。 三)缺點(diǎn):1. 隨著單元測(cè)試的不斷進(jìn)行,測(cè)試過程會(huì)變得越來越復(fù)雜,測(cè)試周期延長,測(cè)試和維護(hù)的成本增加;隨著各個(gè)基本單元逐步加入,系統(tǒng)會(huì)變得異常龐大,因此測(cè)試人員不容易控制;越接近頂層的模塊的測(cè)試其結(jié)構(gòu)覆蓋率就越難以保證;四川大學(xué)錦城學(xué)院四川大學(xué)錦城學(xué)院 軟件測(cè)試軟件測(cè)試2. 另外,頂層測(cè)試易受底層模塊變更的影響,任何一個(gè)模塊修改之后,直接或間接調(diào)用該模塊的所有單元都要重新測(cè)試。 3. 由于只有在底層單元測(cè)試完畢之后才能夠進(jìn)行頂層單元的測(cè)試,所以并行性不好。 4. 自底向上的單元測(cè)試也不能和詳
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- DB32/T 4235-2022長春鳊人工繁殖技術(shù)規(guī)程
- DB32/T 4203-2022鏡片減反射膜層耐久性能測(cè)試規(guī)范
- DB32/T 4178-2021河流水生態(tài)監(jiān)測(cè)規(guī)范
- DB32/T 3762.4-2020新型冠狀病毒檢測(cè)技術(shù)規(guī)范第4部分:重組酶介導(dǎo)等溫?cái)U(kuò)增程序
- DB32/T 3624-2019種雞場(chǎng)雞白痢凈化技術(shù)規(guī)程
- DB32/T 3621-2019肉鴿生產(chǎn)性能測(cè)定技術(shù)規(guī)范
- DB31/T 899-2015涉及人的生物醫(yī)學(xué)研究倫理審查規(guī)范
- DB31/T 784-2014快硬性道路基層混合料(FRRM)應(yīng)用技術(shù)規(guī)范
- DB31/T 668.4-2012節(jié)能技術(shù)改造及合同能源管理項(xiàng)目節(jié)能量審核與計(jì)算方法第4部分:鍋爐系統(tǒng)
- DB31/T 668.16-2020節(jié)能技術(shù)改造及合同能源管理項(xiàng)目節(jié)能量審核與計(jì)算方法第16部分:煙道式余熱回收
- 正畸治療中的口腔健康維護(hù)
- 2024年江蘇省揚(yáng)州市廣陵區(qū)小升初語文試卷
- 租賃換電定制合同協(xié)議
- 2025標(biāo)準(zhǔn)技術(shù)咨詢服務(wù)合同模板
- 慢性腎臟病肌少癥診斷治療與預(yù)防專家共識(shí)(2024年版)解讀
- 汽車制造業(yè)產(chǎn)品質(zhì)量管理措施
- 科學(xué)上海會(huì)考試卷及答案
- 中小學(xué)校園安全風(fēng)險(xiǎn)防控規(guī)范操作手冊(cè)與案例分析
- 大模型備案-落實(shí)算法安全主體責(zé)任基本情況-XX集團(tuán)有限公司
- 重大危險(xiǎn)源安全管理培訓(xùn)
- 封閉管理的疫情防控課件
評(píng)論
0/150
提交評(píng)論