白盒測試有哪些方法
發(fā)布時間:2025-08-17 | 來源:互聯(lián)網(wǎng)轉載和整理
白盒測試方法有:1.靜態(tài)分析,是一種不通過執(zhí)行程序而進行測試的技術。靜態(tài)分析的關鍵功能是檢查軟件的表示和描述是否一致,沒有沖突或者沒有歧義;2.動態(tài)分析,其主要特點是當軟件系統(tǒng)在模擬的或真實的環(huán)境中執(zhí)行之前、之中和之后,對軟件系統(tǒng)行為的分析。動態(tài)分析包含了程序在受控的環(huán)境下使用特定的期望結果進行正式的運行。它顯示了一個系統(tǒng)在檢查狀態(tài)下是正確還是不正確。主流六種覆蓋測試方法屬于動態(tài)分析方法。1、語句覆蓋(1)主要特點語句覆蓋是最基本的結構覆蓋要求,語句覆蓋要求設計足夠多的測試用例,使得程序中每條語句至少被執(zhí)行一次。(2)優(yōu)點可以很直觀地從源代碼得到測試用例,無須細分每條判定表達式。(3)缺點由于這種測試方法僅僅針對程序邏輯中顯式存在的語句,但對于隱藏的條件和可能到達的隱式邏輯分支,是無法測試的。在本例中去掉了語句1一Print去掉,那么就少了一條測試路徑。在if結構中若源代碼沒有給出else后面的執(zhí)行分支。那么語句覆蓋測試就不會考慮這種情況。但是我們不能排除這種以外的分支不會被執(zhí)行,而往往這種錯誤會經(jīng)常出現(xiàn)。再如,在Do-While結構中,語句覆蓋執(zhí)行其中某一個條件分支。那么顯然,語句覆蓋對于多分支的邏輯運算是無法全面反映的,它只在乎運行一次,而不考慮其他情況。2、判定覆蓋(1)主要特點又稱分支覆蓋,設計若干個測試用例,運行所測程序,使程序中每個判斷的取真分支和取假分支至少執(zhí)行一次。即:程序中的每個分支至少執(zhí)行一次。每個判斷的取真、取假至少執(zhí)行一次。(2)優(yōu)點判定覆蓋比語句覆蓋要多幾乎一倍的測試路徑,當然也就具有比語句覆蓋更強的測試能力。同樣判定覆蓋也具有和語句覆蓋一樣的簡單性,無須細分每個判定就可以得到測試用例。(3)缺點往往大部分的判定語句是由多個邏輯條件組合而成(如:判定語句中包含AND、OR、CASE)。若僅僅判斷其整個最終結果,而忽略每個條件的取值情況,必然會遺漏部分測試路徑。3、條件覆蓋(1)主要特點條件覆蓋要隸設計足夠多的測試用例,使得判定中的每個條件獲得各種可能的結果,即每個條件至少有一次為真值,有一次為假值。(2)優(yōu)點顯然條件覆蓋比判定覆蓋,增加了對符合判定情況的測試,增加了測試路徑。(3)缺點要達到條件覆蓋,需要足夠多的測試用例,但條件覆蓋并不能保證判定覆蓋。條件覆蓋只能保證每個條件至少有一次為真,而不考慮所有的判定結果。4、判定/條件覆蓋(1)主要特點:設計足夠多的測試用例,使得判定中每個條件的所有可能結果至少出現(xiàn)一次,每個判定本身所有可能結果也至少出現(xiàn)一次。(2)優(yōu)點判定/條件覆蓋滿足判定覆蓋準則和條件覆蓋準則,彌補了二者的不足。(3)缺點判定/條件覆蓋準則的缺點是未考慮條件的組合情況。5、組合覆蓋(1)主要特點要求設計足夠多的測試用例,使得每個判定種條件結果的所有可能組合至少出現(xiàn)一次。(2)優(yōu)點多重條件覆蓋準則滿足判定覆蓋、條件覆蓋和判定/條件覆蓋準則。更改的判定/條件覆蓋要求設計足夠多的測試用例,使得判定中每個條件的所有可能結果至少出現(xiàn)一次。每個判定本身的所有可能結果也至少出現(xiàn)一次,并且每個條件都顯示能單獨影響判定結呆。(3)缺點線性地增加了測試用例的數(shù)量。6、路徑覆蓋(1)主要特點設計足夠的測試用例,覆蓋程序中所有可能的路徑。(2)優(yōu)點這種測試方法可以對程序進行徹底的測試,比前面五種的覆蓋面都廣。(3)缺點由于路徑覆蓋需要對所有可能的路徑進行測試(包括循環(huán),條件組合.分支選擇等).那么需要設計大量、復雜的測試用例,使得工作量呈指數(shù)級增長。而在有些情況下,一些執(zhí)行路是不可能被執(zhí)行的,如:If(!flag)x++;If(!flag)y–;這兩個語句實際只包括了2條執(zhí)行路徑,即flag為真或假時候對x和y的處理,真或假不可能都存在,而路徑覆蓋測試認為是包含了真與假的4條執(zhí)行路徑。這樣不僅降低了測試效率,而且大量的測試結果的累積,也為排錯帶來麻煩。上一篇:利益相關者理論
下一篇:廣東會計繼續(xù)教育收費嗎?