什么是測試覆蓋_優(yōu)缺點介紹
測試覆蓋指測試系統(tǒng)覆蓋被測試系統(tǒng)的程度,一項給定測試或一組測試對某個給定系統(tǒng)或構(gòu)件的所有指定測試用例進(jìn)行處理所達(dá)到的程度。那么你對測試覆蓋了解多少呢?以下是由學(xué)習(xí)啦小編整理關(guān)于什么是測試覆蓋的內(nèi)容,希望大家喜歡!
測試覆蓋的分類
邏輯覆蓋方法有以下6種:
語句覆蓋
判定覆蓋(即分支覆蓋)
條件覆蓋
判定-條件覆蓋
條件組合覆蓋
路徑覆蓋
測試覆蓋的優(yōu)缺點
1.語句覆蓋:
設(shè)計若干測試用例,運行被測程序,使程序中每個可執(zhí)行語句至少執(zhí)行一次。只需設(shè)計一個測試用例:a=2,b=1,c=6;即達(dá)到了語句覆蓋。
【優(yōu)點】 :可以很直觀地從源代碼得到測試用例,無須細(xì)分每條判定表達(dá)式。
【缺點】 :由于這種測試方法僅僅針對程序邏輯中顯式存在的語句,但對于隱藏的條件是無法測試的。如在多分支的邏輯運算中無法全面的考慮。語句覆蓋是最弱的邏輯覆蓋。
2.判定覆蓋: 設(shè)計若干測試用例,運行被測程序,使得程序中每個分支的取真值和取假值至少一次,即判斷真假值均曾被滿足。a=2,b=1 ,c=6(M,Q分支全為真)和a=-2,b=-1 ,c=-3(M,Q分支全為假)這兩組測試用例可覆蓋所有判定的真假分支。
【優(yōu)點】:判定覆蓋具有比語句覆蓋更強的測試能力。同樣判定覆蓋也具有和語句覆蓋一樣的簡單性,無須細(xì)分每個判定就可以得到測試用例。
【缺點】:往往大部分的判定語句是由多個邏輯條件組合而成,若僅僅判斷其整個最終結(jié)果,而忽略每個條件的取值情況,必然會遺漏部分測試路徑。判定覆蓋仍是弱的邏輯覆蓋。
3.條件覆蓋:設(shè)計若干測試用例,執(zhí)行被測程序以后要使每個判斷中每個條件的可能取值至少滿足一次。
判斷M表達(dá)式:設(shè)條件 a>0 取真 記為 T1 ;假F1
條件 b>0 取真 記為 T2 ;假F2
判斷Q表達(dá)式:設(shè)條件 a>1 取真 記為 T3 ;假F3
條件 c>1 取真 記為 T4 ;假F4
我們用條件覆蓋設(shè)計的思想就是讓測試用例能覆蓋T1、T2、T3、T4、F1、F2、F3、F4
【優(yōu)點】:增加了對條件判定情況的測試,增加了測試路徑。
【缺點】:條件覆蓋不一定包含判定覆蓋。例如,我們剛才設(shè)計的用例就沒有覆蓋判斷M的Y分支和判斷Q的N分支。條件覆蓋只能保證每個條件至少有一次為真,而不考慮所有的判定結(jié)果。
4.判定-條件覆蓋:設(shè)計足夠的測試用例,使得判斷條件中的所有條件可能至少執(zhí)行一次取值,同時,所有判斷的可能結(jié)果至少執(zhí)行一次。
測試用例要滿足如下條件:1.所有條件可能至少執(zhí)行一次取值;2.所有判斷的可能結(jié)果至少執(zhí)行一次。
【優(yōu)點】 :能同時滿足判定、條件兩種覆蓋標(biāo)準(zhǔn)。
【缺點】 :判定/條件覆蓋準(zhǔn)則的缺點是未考慮條件的組合情況。
5. 條件組合覆蓋:設(shè)計足夠的測試用例,使得所有可能的條件取值組合至少執(zhí)行一次。
【優(yōu)點】 :條件組合覆蓋準(zhǔn)則滿足判定覆蓋、條件覆蓋和判定/條件覆蓋準(zhǔn)則。
【缺點】 :線性地增加了測試用例的數(shù)量。
6.路徑覆蓋:設(shè)計所有的測試用例,來覆蓋程序中的所有可能的執(zhí)行路徑 。
【優(yōu)點】 :這種測試方法可以對程序進(jìn)行徹底的測試,比前面五種的覆蓋面都廣。
【缺點】 :需要設(shè)計大量、復(fù)雜的測試用例,使得工作量呈指數(shù)級增長,不見得把所有的條件組合都覆蓋。
從前面的例子我們可以看到,采用任何一種覆蓋方法都不能滿足我們的要求,所以,在實際的測試用例設(shè)計過程中,可以根據(jù)需要將不同的覆蓋方法組合起來使用,以實現(xiàn)最佳的測試用例設(shè)計 。
看過“測試覆蓋的優(yōu)缺點“的人還看了:
1.什么是測試效度
2.項目管理師知識點