版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上白盒測試白盒測試以程序的結構為依據(jù),所有又稱為結構測試。早期的白盒測試把注意力放在流程圖的各個判定框,使用不同的邏輯覆蓋標準來表達對程序進行測試的詳盡程度。隨著測試技術的發(fā)展,人們越來越重視對程序執(zhí)行路徑的考察,并且用程序圖代替流程圖來設計測試用例。為了區(qū)分這兩種白盒測試技術,以下把前者稱為邏輯覆蓋測試,后者稱為路徑測試。一、邏輯覆蓋測試邏輯覆蓋測試法(Logic Coverage Testing)考察的重點是圖中的判定框(菱形框)。因為這些判定若不是與選擇結構有關,就是與循環(huán)結構有關,是決定程序結構的關鍵成分。按照對被測程序所作測試的有效程度,邏輯覆蓋測試可由弱到強
2、區(qū)分為5種覆蓋標準:發(fā)現(xiàn)錯誤的能力弱強語句覆蓋每條語句至少執(zhí)行一次判定覆蓋每一判定的每個分支至少執(zhí)行一次條件覆蓋每一判定中的每個條件,分別按“真”、“假”至少各執(zhí)行一次判定/條件覆蓋同時滿足判定覆蓋和條件覆蓋的要求條件組合覆蓋求出判定中所有條件的各種可能組合值,每一可能的條件組合至少執(zhí)行一次舉例說明:有一個程序段如下:(A>1) (B=0)(A=2) (x>1)x=x/ax=x+1 a b F T c d F T e (a) 語句覆蓋:設計若干個測試用例,運行被測程序,使得每一個可執(zhí)行語句至少執(zhí)行一次。例如在上圖所給出的例子中,正好所有的可執(zhí)行語句都在路徑L1(a>c>
3、e)上,所以選擇路徑L1設計測試用例,就可以覆蓋所有的可執(zhí)行語句。L1(a>c>e)(A>1) and (B=0) and (A=2) or (x/A>1)=(A=2) and (B=0) or (A>1) and (B=0) and (x/A>1)測試用例可以設計為:【(2,0,4),(2,0,3)】覆蓋ace【L1】從程序中每個可執(zhí)行語句都得到執(zhí)行這一點來看,語句覆蓋的方法似乎能夠比較全面的檢驗每一個可執(zhí)行語句。但與后面介紹的其它覆蓋相比,語句覆蓋是最弱的邏輯覆蓋準則。(b) 判定覆蓋所謂判定覆蓋就是設計若干個測試用例,運行被測試程序,使得程序中每個判斷
4、的取真分支和取假分支至少經(jīng)歷一次。判定覆蓋又稱為分支覆蓋。如上例如果選擇路徑L1(a>c>e)和L2(a>b>d),可得滿足要求得測試用例:L2(a>b>d)(A<=1) or (B0) and (A2) and (x<=1)=( A<=1) and (x<=1) or ( B0) and (A2) and (x<=1)測試用例可以設計為:【(2,0,4),(2,0,3)】覆蓋ace【L1】【(1,1,1),(1,1,1)】覆蓋abd【L2】如果選取路徑L3(a>b>e)和L4(a>c>d)L3(a>
5、;b>e)(A<=1) or (B0) and (A2) or (x>1)=( A<=1) and (x>1) or ( B0) and (A=2) or ( B0) and (x>1)L4(a>c>d)(A>1) and (B=0) and (A2) and (x/A<=1)還可以得到另一組可用得測試用例:【(2,1,1),(2,1,2)】覆蓋abe【L3】【(3,0,3),(3,1,1)】覆蓋acd【L4】所有測試用例得取法不唯一。注意有例外情況,例如,如果把上例中第二個判定中的條件x>1錯寫成x<1,那么利用上面兩組
6、測試用例,仍能得到同樣的結果。這表明,只是判定覆蓋,還不能保證一定能查出在判斷得條件中存在得錯誤。因此還需要更強的邏輯覆蓋準則檢驗判斷內(nèi)部條件。(c) 條件覆蓋所謂條件覆蓋就是設計若干個測試用例,運行被測程序,使得程序中每個判斷的每個條件的可能取值至少執(zhí)行一次。上例中,我們事先可對所有條件得取值加以標記。例如: 對于第一個判斷:條件A>1取真值為T1,取假值為T1 條件B=1取真值為T2,取假值為T2對于第二個判斷:條件A=2取真值為T3,取假值為T3 條件x>1取真值為T4,取假值為T4則可選取測試用例如下:測試用例 通過路徑 條件取值 覆蓋分支【(2,0,4),(2,0,3)】
7、 ace(L1) T1 T2 T3 T4 c,e【(1,0,1),(1,0,1)】 abd(L2) T1 T2 T3 T4 b,d【(2,1,1),(2,1,2)】 abe(L3) T1 T2 T3 T4 b,e或測試用例 通過路徑 條件取值 覆蓋分支【(1,0,3),(1,0,4)】 abe(L3) T1 T2 T3 T4 c,e【(2,1,1),(2,1,2)】 abe(L3) T1 T2 T3 T4 b,d注意,前一組測試用例不但覆蓋了所有判斷得取真分支和取假分支,而且覆蓋了判斷中所有條件得可能取值。但是后一組測試用例雖滿足了條件覆蓋,但只覆蓋了第一個判斷得取假分支和第二個判斷得取真分支
8、,不滿足判定覆蓋得要求。為了解決這一矛盾,需要對條件和分支兼顧,有必要考慮以下得判定條件覆蓋。(d) 判定條件覆蓋所謂判定條件覆蓋就是設計足夠的測試用例,使得判斷中每個條件得所有可能取值至少執(zhí)行一次,同時每個判斷本身的所有可能判斷結果至少執(zhí)行一次。上例中可以設計如下測試用例:測試用例 通過路徑 條件取值 覆蓋分支【(2,0,4),(2,0,3)】 ace(L1) T1 T2 T3 T4 c,e【(1,1,1),(1,1,1)】 abd(L2) T1 T2 T3 T4 b,d判定條件覆蓋也有缺陷。從表面上來看,它測試了所有條件得取值,但是事實并非如此。因為往往某些條件掩蓋了另一些條件。對于條件表
9、達式(A>1)and (B=0)來說,若(A>1)的測試結果為真,則還有測試(B=0),才能決定表達式得值;而若(A>1)的測試結果為假,可以立刻確定表達式得結果為假。這時往往就不再測試(B=0)的取值了。因此,條件(B=0)就沒有檢查。同樣,對于條件表達式(A=2)or (X>1)來說,若(A=2)得測試結果為真,就可以立即確定表達式的結果為真。這時,條件(X>1)就沒有檢查。因此,采用判定條件覆蓋,邏輯表達式中的錯誤不一定能夠查得出來。(e) 條件組合覆蓋所謂條件組合覆蓋就是設計足夠得測試用例,運行被測程序,使得每個判斷得所有可能得條件取值組合至少執(zhí)行一次。上
10、例中,先對各個判斷得條件取值組合加以標記。如下:記 A>1,B=0 作T1 T2,屬第一個判斷得取真分支; A>1,B0 作T1 T2,屬第一個判斷得取假分支; A1,B=0 作T1 T2,屬第一個判斷得取假分支; A1,B0 作T1 T2,屬第一個判斷得取假分支; A=2,x>1 作T3 T4,屬第二個判斷得取真分支; A=2,x1 作T3 T4,屬第二個判斷得取真分支; A2,x>1 作T3 T4,屬第二個判斷得取真分支; A2,x1 作T3 T4,屬第二個判斷得取假分支;對于每個判斷,要求所有可能得條件取值得組合都必須取到。測試用例如下:測試用例 通過路徑 條件取
11、值 覆蓋分支【(2,0,4),(2,0,3)】 ace(L1) T1 T2 T3 T4 ,【(2,1,1),(2,1,2)】 abe(L3) T1 T2 T3 T4 ,【(1,0,3),(1,0,4)】 abe(L3) T1 T2 T3 T4 ,【(1,1,1),(1,1,1)】 abd(L2) T1 T2 T3 T4 ,這組測試用例覆蓋了所有條件得可能取值的組合,覆蓋了所有判斷得可取分支,但路徑漏掉了L4。測試還不完全。六種白盒子測試方法:語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組. 白盒測試的概述由于邏輯錯誤和不正確假設與一條程序路徑被運行的可能性成反比。由于我們經(jīng)常相信某邏輯路徑
12、不可能被執(zhí)行, 而事實上,它可能在正常的情況下被執(zhí)行。由于代碼中的筆誤是隨機且無法杜絕的,因此我們要進行白盒測試。白盒測試又稱結構測試,透明盒測試、邏輯驅動測試或基于代碼的測試。白盒測試是一種測試用例設計方法,盒子指的是被測試的軟件,白盒指的是盒子是可視的,你清楚盒子內(nèi)部的東西以及里面是如何運作的。白盒的測試用例需要做到:·保證一個模塊中的所有獨立路徑至少 被使用一次·對所有邏輯值均需測試 true 和 false·在上下邊界及可操作范圍內(nèi)運行所有循環(huán) ·檢查內(nèi)部數(shù)據(jù)結構以確保其有效性白盒測試的目的:通過檢查軟件內(nèi)部的邏輯結構,對軟件中的邏輯路徑進行覆蓋
13、測試;在程序不同地方設立檢查點,檢查程序的狀態(tài),以確定實際運行狀態(tài)與預期狀態(tài)是否一致。白盒測試的特點:依據(jù)軟件設計說明書進行測試、對程序內(nèi)部細節(jié)的嚴密檢驗、針對特定條件設計測試用例、對軟件的邏輯路徑進行覆蓋測試。白盒測試的實施步驟:1.測試計劃階段:根據(jù)需求說明書,制定測試進度。2.測試設計階段:依據(jù)程序設計說明書,按照一定規(guī)范化的方法進行軟件結構劃分和設計測試用例。3.測試執(zhí)行階段:輸入測試用例,得到測試結果。4.測試總結階段:對比測試的結果和代碼的預期結果,分析錯誤原因,找到并解決錯誤。白盒測試的方法:總體上分為靜態(tài)方法和動態(tài)方法兩大類。靜態(tài)分析是一種不通過執(zhí)行程序而進行測試的技術。靜態(tài)分
14、析的關鍵功能是檢查軟件的表示和描述是否一致,沒有沖突或者沒有歧義。動態(tài)分析的主要特點是當軟件系統(tǒng)在模擬的或真實的環(huán)境中執(zhí)行之前、之中和之后 , 對軟件系統(tǒng)行為的分析。動態(tài)分析包含了程序在受控的環(huán)境下使用特定的期望結果進行正式的運行。它顯示了一個系統(tǒng)在檢查狀態(tài)下是正確還是不正確。在動態(tài)分析技術中,最重要的技術是路徑和分支測試。下面要介紹的六種覆蓋測試方法屬于動態(tài)分析方法。黑盒測試(blackbox testing)又稱功能測試、數(shù)據(jù)測試或基于規(guī)范的測試。用這種方法進行測試時,被測程序被當作看不見內(nèi)部的黑盒。在完全不考慮程序內(nèi)部結構和內(nèi)部特性的情況下,測試者僅依據(jù)程序功能的需求規(guī)范考慮確定測試用例
15、和推斷測試結果的正確性。因此黑盒測試是從用戶觀點出發(fā)的測試,黑盒測試直觀的想法就是既然程序被規(guī)定做某些事,那我們就看看它是不是在任何情況下都做的對。完整的“任何情況”是無法驗證的,為此黑盒測試也有一套產(chǎn)生測試用例的方法,以產(chǎn)生有限的測試用例而覆蓋足夠多的“任何情況”。由于黑盒測試不需要了解程序內(nèi)部結構,所以許多高層的測試如確認測試、系統(tǒng)測試、驗收測試都采用黑盒測試。 黑盒測試首先是程序通常的功能性測試。要求: 每個特性必須被一個測試用例或一個被認可的異常所覆蓋;用數(shù)據(jù)類型和數(shù)據(jù)值的最小集測試;用一系列真實的數(shù)據(jù)類型和數(shù)據(jù)值
16、運行,測試超負荷、飽和及其他“最壞情況”的結果;用假想的數(shù)據(jù)類型和數(shù)據(jù)值運行,測試排斥不規(guī)則輸入的能力;對影響性能的關鍵模塊,如基本算法、應測試單元性能(包括精度、時間、容量等)。 不僅要考核“程序是否做了該做的?”還要考察“程序是否沒做不該做的2”同時還要考察程序在其他一些情況下是否正常。這些情況包括數(shù)據(jù)類型和數(shù)據(jù)值的異常等等。下述幾種方法:(a)等價類劃分,(b)因果圖方法,(c)邊值分析法,(d)猜錯法,(e)隨機數(shù)法,就是從更廣泛的角度來進行黑盒測試。每一個方法都力圖能涵蓋更多的“任何情況”,但又各有長處,綜合使用這些方法,會得到一個較好的測試用例集
17、。1.等價類劃分 等價類劃分是一種典型的黑盒測試方法。等價類是指某個輸入域的集合。它表示對揭露程序中的錯誤來說,集合中的每個輸入條件是等效的。因此我們只要在一個集合中選取一個測試數(shù)據(jù)即可。等價類劃分的辦法是把程序的輸入域劃分成若干等價類,然后從每個部分中選取少數(shù)代表性數(shù)據(jù)當作測試用例。這樣就可使用少數(shù)測試用例檢驗程序在一大類情況下的反映。 在考慮等價類時,應該注意區(qū)別以下兩種不同的情況: 有效等價類:有效等價類指的是對程序的規(guī)范是有意義的、合理的輸入數(shù)據(jù)所構成的集合。在具體問題中,有效等
18、價類可以是一個,也可以是多個。 無效等價類:無效等價類指對程序的規(guī)范是不合理的或無意義的輸入數(shù)據(jù)所構成的集合。對于具體的問題,無效等價類至少應有一個,也可能有多個。 確定等價類有以下幾條原則: 如果輸入條件規(guī)定了取值范圍或值的個數(shù),則可確定一個有效等價類和兩個無效等價類。例如,程序的規(guī)范中提到的輸入條包括“項數(shù)可以從1到999”,則可取有效等價類為“l(fā)考項數(shù)999”,無效等價類為“項數(shù)l,及“項數(shù)999”。 輸入條件規(guī)定了輸入值的集合,或是規(guī)定了“必須
19、如何”的條件,則可確定一個有效等價類和一個無效等價類。如某程序涉及標識符,其輸入條件規(guī)定“標識符應以字母開頭”則“以字母開頭者”作為有效等價類,“以非字母開頭”作為無效等價類。 如果我們確知,已劃分的等價類中各元素在程序中的處理方式是不同的,則應將此等價類進一步劃分成更小等價類。 輸入條件 有效等價類 無效等價類 。 。 。 。 。 。 根據(jù)
20、已列出的等價類表,按以下步驟確定測試用例: 為每個等價類規(guī)定一個唯一的編號; 設計一個測試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價類。重復這一步,最后使得所有有效等價類均被測試用例所覆蓋; 設計一個新的測試用例,使其只覆蓋一個無效等價類。重復這一步,使所有無效等價類均被覆蓋。這里強調(diào)每次只覆蓋一個無效等價類。這是因為一個測試用例中如果含有多個缺陷,有可能在測試中只發(fā)現(xiàn)其中的一個,另一些被忽視。等價類劃分法能夠全面、系統(tǒng)地考慮黑盒測試的測試用例設計問題,但是沒有注意選用一些“高效的”、“
21、有針對性的”測試用例。后面介紹的邊值分析法可以彌補這一缺點。2.因果圖 等價類劃分法并沒有考慮到輸入情況的各種組合。這樣雖然各個輸入條件單獨可能出錯的情況已經(jīng)看到了,但多個輸入情況組合起來可能出錯的情況卻被忽略。采用因果圖方法能幫助我們按一定步驟選擇一組高效的測試用例,同時,還能為我們指出程序規(guī)范的描述中存在什么問題。 利用因果圖導出測試用例需要經(jīng)過以下幾個步驟: 分析程序規(guī)范的描述中哪些是原因,哪些是結果。原因常常是輸入條件或是輸入條件的等價類。結果是輸出條件。
22、 分析程序規(guī)范的描述中語義的內(nèi)容,并將其表示成連接各個原因與各個結果的“因果圖”。 由于語法或環(huán)境的限制,有些原因和結果的組合情況是不可能出現(xiàn)的。為表明這些特定的情況,在因果圖上使用持殊的符號標明約束條件。把因果圖轉換成判定表。把判定表的每一列寫成一個測試用例。3.邊值分析法 邊值分析法是列出單元功能、輸入、狀態(tài)及控制的合法邊界值和非法邊界值,設計測試用例,包含全部邊界值的方法。典型地包括IF語句中的判別值,定義域、值域邊界,空或畸形輸入,末受控狀態(tài)等。邊值分析法不是一類找一個例子的方法,而是以邊界情況的處理作
23、為主要目標專門設計測試用例的方法。另外,邊值分析不僅考查輸入的邊值,也要考慮輸出的邊值。這是從人們的經(jīng)驗得出的一種有效方法。人們發(fā)現(xiàn)許多軟件錯誤只是在下標、數(shù)據(jù)結構和標量值的邊界值及其上、下出現(xiàn),運行這個區(qū)域的測試用例發(fā)現(xiàn)錯誤的概率很高。 用邊值分析法設計測試用例時,有以下幾條原則: 如果輸入條件規(guī)定了取值范圍,或是規(guī)定了值的個數(shù),則應以該范圍的邊界內(nèi)及剛剛超出范圍的邊界外的值,或是分別對最大、最小及稍小于最小、稍大于最大個數(shù)作為測試用例。如有規(guī)范“某文件可包含l至255”個記錄“,則測試用例可選1和255及0和256等。 針對規(guī)范的每個輸出條件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年濮陽石油化工職業(yè)技術學院單招綜合素質考試參考題庫含詳細答案解析
- 2026湖南張家界市經(jīng)濟發(fā)展投資集團有限公司招聘職業(yè)經(jīng)理人1人考試重點試題及答案解析
- 2026湖北交通投資集團有限公司招聘14人考試重點題庫及答案解析
- 2026年內(nèi)蒙古交通職業(yè)技術學院單招綜合素質考試備考題庫含詳細答案解析
- 2026年畢節(jié)幼兒師范高等專科學校高職單招職業(yè)適應性測試備考試題及答案詳細解析
- 2026南平武發(fā)房產(chǎn)集團有限公司職業(yè)經(jīng)理人招聘1人考試重點題庫及答案解析
- 2026廣東第二師范學院基礎教育集團選聘1人考試重點題庫及答案解析
- 2026年江蘇農(nóng)牧科技職業(yè)學院單招綜合素質考試參考題庫含詳細答案解析
- 2026年內(nèi)蒙古商貿(mào)職業(yè)學院高職單招職業(yè)適應性測試備考試題及答案詳細解析
- 2026上半年安徽事業(yè)單位聯(lián)考銅陵市招聘108人參考考試試題及答案解析
- 海南省醫(yī)療衛(wèi)生機構數(shù)量基本情況數(shù)據(jù)分析報告2025版
- 電影院消防安全制度范本
- 酒店工程維修合同協(xié)議書
- 2025年版?zhèn)€人與公司居間合同范例
- 電子商務平臺項目運營合作協(xié)議書范本
- 動設備監(jiān)測課件 振動狀態(tài)監(jiān)測技術基礎知識
- 第六講-女性文學的第二次崛起-80年代女性文學
- 專題15平面解析幾何(選擇填空題)(第一部分)(解析版) - 大數(shù)據(jù)之十年高考真題(2014-2025)與優(yōu) 質模擬題(新高考卷與全國理科卷)
- 部門考核方案
- 苗木種子采購合同范本
- 檢測費合同范本
評論
0/150
提交評論