白盒測試的六種覆蓋準則.docx_第1頁
白盒測試的六種覆蓋準則.docx_第2頁
白盒測試的六種覆蓋準則.docx_第3頁
白盒測試的六種覆蓋準則.docx_第4頁
白盒測試的六種覆蓋準則.docx_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

白盒測試作為測試人員常用的一種測試方法,越來越受到測試工程師的重視。白盒測試并不是簡單的按照代碼設計用例,而是需要根據(jù)不同的測試需求,結合不同的測試對象,使用適合的方法進行測試。因為對于不同復雜度的代碼邏輯,可以衍生出許多種執(zhí)行路徑,只有適當?shù)臏y試方法,才能幫助我們從代碼的迷霧森林中找到正確的方向。本文介紹六種白盒子測試方法:語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋、路徑覆蓋。白盒測試的概述由于邏輯錯誤和不正確假設與一條程序路徑被運行的可能性成反比。由于我們經(jīng)常相信某邏輯路徑不可能被執(zhí)行, 而事實上,它可能在正常的情況下被執(zhí)行。由于代碼中的筆誤是隨機且無法杜絕的,因此我們要進行白盒測試。白盒測試又稱結構測試,透明盒測試、邏輯驅動測試或基于代碼的測試。白盒測試是一種測試用例設計方法,盒子指的是被測試的軟件,白盒指的是盒子是可視的,你清楚盒子內部的東西以及里面是如何運作的。白盒的測試用例需要做到:保證一個模塊中的所有獨立路徑至少 被使用一次對所有邏輯值均需測試 true 和 false在上下邊界及可操作范圍內運行所有循環(huán)檢查內部數(shù)據(jù)結構以確保其有效性白盒測試的目的:通過檢查軟件內部的邏輯結構,對軟件中的邏輯路徑進行覆蓋測試;在程序不同地方設立檢查點,檢查程序的狀態(tài),以確定實際運行狀態(tài)與預期狀態(tài)是否一致。白盒測試的特點:依據(jù)軟件設計說明書進行測試、對程序內部細節(jié)的嚴密檢驗、針對特定條件設計測試用例、對軟件的邏輯路徑進行覆蓋測試。白盒測試的實施步驟:1.測試計劃階段:根據(jù)需求說明書,制定測試進度。2.測試設計階段:依據(jù)程序設計說明書,按照一定規(guī)范化的方法進行軟件結構劃分和設計測試用例。3.測試執(zhí)行階段:輸入測試用例,得到測試結果。4.測試總結階段:對比測試的結果和代碼的預期結果,分析錯誤原因,找到并解決錯誤。白盒測試的方法:總體上分為靜態(tài)方法和動態(tài)方法兩大類。靜態(tài)分析是一種不通過執(zhí)行程序而進行測試的技術。靜態(tài)分析的關鍵功能是檢查軟件的表示和描述是否一致,沒有沖突或者沒有歧義。動態(tài)分析的主要特點是當軟件系統(tǒng)在模擬的或真實的環(huán)境中執(zhí)行之前、之中和之后 , 對軟件系統(tǒng)行為的分析。動態(tài)分析包含了程序在受控的環(huán)境下使用特定的期望結果進行正式的運行。它顯示了一個系統(tǒng)在檢查狀態(tài)下是正確還是不正確。在動態(tài)分析技術中,最重要的技術是路徑和分支測試。下面要介紹的六種覆蓋測試方法屬于動態(tài)分析方法。白盒測試的優(yōu)缺點1. 優(yōu)點迫使測試人員去仔細思考軟件的實現(xiàn)可以檢測代碼中的每條分支和路徑揭示隱藏在代碼中的錯誤對代碼的測試比較徹底最優(yōu)化2. 缺點昂貴無法檢測代碼中遺漏的路徑和數(shù)據(jù)敏感性錯誤不驗證規(guī)格的正確性六種覆蓋方法首先為了下文的舉例描述方便,這里先給出一張程序流程圖。(本文以1995年軟件設計師考試的一道考試題目為例,圖中紅色字母代表程序執(zhí)行路徑)。1、語句覆蓋1)主要特點:語句覆蓋是最起碼的結構覆蓋要求,語句覆蓋要求設計足夠多的測試用例,使得程序中每條語句至少被執(zhí)行一次。2)用例設計:(如果此時將A路徑上的語句1T去掉,那么用例如下) X Y 路徑 1 50 50 OBDE 2 90 70 OBCE3)優(yōu)點:可以很直觀地從源代碼得到測試用例,無須細分每條判定表達式。4)缺點:由于這種測試方法僅僅針對程序邏輯中顯式存在的語句,但對于隱藏的條件和可能到達的隱式邏輯分支,是無法測試的。在本例中去掉了語句1T去掉,那么就少了一條測試路徑。在if結構中若源代碼沒有給出else后面的執(zhí)行分支,那么語句覆蓋測試就不會考慮這種情況。但是我們不能排除這種以外的分支不會被執(zhí)行,而往往這種錯誤會經(jīng)常出現(xiàn)。再如,在Do-While結構中,語句覆蓋執(zhí)行其中某一個條件分支。那么顯然,語句覆蓋對于多分支的邏輯運算是無法全面反映的,它只在乎運行一次,而不考慮其他情況。2、判定覆蓋1)主要特點:判定覆蓋又稱為分支覆蓋,它要求設計足夠多的測試用例,使得程序中每個判定至少有一次為真值,有一次為假值,即:程序中的每個分支至少執(zhí)行一次。每個判斷的取真、取假至少執(zhí)行一次。2)用例設計: X Y 路徑 1 90 90 OAE 2 50 50 OBDE 3 90 70 OBCE3)優(yōu)點:判定覆蓋比語句覆蓋要多幾乎一倍的測試路徑,當然也就具有比語句覆蓋更強的測試能力。同樣判定覆蓋也具有和語句覆蓋一樣的簡單性,無須細分每個判定就可以得到測試用例。4)缺點:往往大部分的判定語句是由多個邏輯條件組合而成(如,判定語句中包含AND、OR、CASE),若僅僅判斷其整個最終結果,而忽略每個條件的取值情況,必然會遺漏部分測試路徑。3、條件覆蓋1)主要特點:條件覆蓋要求設計足夠多的測試用例,使得判定中的每個條件獲得各種可能的結果,即每個條件至少有一次為真值,有一次為假值。2)用例設計: X Y 路徑 1 90 70 OBC 2 40 OBD3)優(yōu)點:顯然條件覆蓋比判定覆蓋,增加了對符合判定情況的測試,增加了測試路徑。4)缺點:要達到條件覆蓋,需要足夠多的測試用例,但條件覆蓋并不能保證判定覆蓋。條件覆蓋只能保證每個條件至少有一次為真,而不考慮所有的判定結果。4、判定/條件覆蓋1)主要特點:設計足夠多的測試用例,使得判定中每個條件的所有可能結果至少出現(xiàn)一次,每個判定本身所有可能結果也至少出現(xiàn)一次。2)用例設計: X Y 路徑 1 90 90 OAE 2 50 50 OBDE 3 90 70 OBCE 4 70 90 OBCE3)優(yōu)點:判定/條件覆蓋滿足判定覆蓋準則和條件覆蓋準則,彌補了二者的不足。4)缺點:判定/條件覆蓋準則的缺點是未考慮條件的組合情況。5、組合覆蓋1)主要特點:要求設計足夠多的測試用例,使得每個判定中條件結果的所有可能組合至少出現(xiàn)一次。2)用例設計: X Y 路徑 1 90 90 OAE 2 90 70 OBCE 3 90 30 OBDE 4 70 90 OBCE 5 30 90 OBDE 6 70 70 OBDE 7 50 50 OBDE3)優(yōu)點:多重條件覆蓋準則滿足判定覆蓋、條件覆蓋和判定/條件覆蓋準則。更改的判定/條件覆蓋要求設計足夠多的測試用例,使得判定中每個條件的所有可能結果至少出現(xiàn)一次,每個判定本身的所有可能結果也至少出現(xiàn)一次。并且每個條件都顯示能單獨影響判定結果。4)缺點:線性地增加了測試用例的數(shù)量。6、路徑覆蓋1)主要特點:設計足夠的測試用例,覆蓋程序中所有可能的路徑。2)用例設計: X Y 路徑 1 90 90 OAE 2 50 50 OBDE 3 90 70 OBCE 4 70 90 OBCE3)優(yōu)點:這種測試方法可以對程序進行徹底的測試,比前面五種的覆蓋面都廣。4)缺點:由于路徑覆蓋需要對所有可能的路徑進行測試(包括循環(huán)、條件組合、分支選擇等),那么需要設計大量、復雜的測試用例,使得工作量呈指數(shù)級增長。而在有些情況下,一些執(zhí)行路徑是不可能被執(zhí)行的,如:If (!A)B+;If (!A)D-;這兩個語句實際只包括了2條執(zhí)行路徑,即A為真或假時候對B和D的處理,真或假不可能都存在,而路徑覆蓋測試則認為是包含了真與假的4條執(zhí)行路徑。這樣不僅降低了測試效率,而且大量的測試結果的累積,也為排錯帶來麻煩??偨Y白盒測試是一種被廣泛使用的邏輯測試方法,是由程序內部邏輯驅動的一種單元測試方法。只有對程序內部十分了解才能進行適度有效的白盒測試。但是貫穿在程序內部的邏輯存在著不確定性和無窮性,尤其對于大規(guī)模復雜軟件。因此我們不能窮舉所有的邏輯路徑,即使窮舉也未必會

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論