白盒測試中的六種覆蓋方法

白盒測試又稱結(jié)構(gòu)測試、透明盒測試丙唧、邏輯驅(qū)動測試或基于代碼的測試愈魏。白盒測試是一種測試用例設(shè)計方法,盒子指的是被測試的軟件,白盒指的是盒子是可視的培漏,你清楚盒子內(nèi)部的東西以及里面是如何運作的溪厘。"白盒"法全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進行測試牌柄。"白盒"法是窮舉路徑測試畸悬。白盒測試并不是簡單的按照代碼設(shè)計用例,而是需要根據(jù)不同的測試需求珊佣,結(jié)合不同的測試對象蹋宦,使用適合的方法進行測試。

白盒測試用例設(shè)計的一個很重要的評估標準就是對代碼的覆蓋度咒锻。白盒測試中常見的覆蓋方法有六種:語句覆蓋冷冗、判定覆蓋、條件覆蓋惑艇、判定/條件覆蓋贾惦、組合覆蓋和路徑覆蓋。下面我們就分別看看這幾種不同的覆蓋吧敦捧。

一须板、語句覆蓋(Statement Coverage)

  1. 主要特點:語句覆蓋是最起碼的結(jié)構(gòu)覆蓋要求,語句覆蓋需要選擇足夠的測試用例,使我們設(shè)計出來的測試用例要保證程序中的每一個語句至少被執(zhí)行一次
  2. 優(yōu)點:可以很直觀地從源代碼得到測試用例缰猴,無須細分每條判定表達式茵汰。
  3. 缺點:由于這種測試方法僅僅針對程序邏輯中顯式存在的語句,但對于隱藏的條件和可能到達的隱 式邏輯分支捍掺,是無法測試的。
  4. 舉例
public int foo(int a,int b)
{
      return a/b;
}

這是一個求兩數(shù)之商的函數(shù)。如果我們設(shè)計如下的測試用例:
TestCase: a =2, b =1
此時课兄,該函數(shù)的代碼覆蓋率達到了100%,并且設(shè)計的case可以順利通過測試晨继。但是顯然該函數(shù)有一個很明顯的bug:當 b=0 時烟阐,會拋出異常。

二紊扬、判定覆蓋(Decision Coverage)

  1. 主要特點:判定覆蓋又稱為分支覆蓋蜒茄,它要求選擇足夠的測試用例,使得運行這些測試用例時餐屎,每個判定的所有可能結(jié)果至少出現(xiàn)一次檀葛。
  2. 優(yōu)點:判定覆蓋比語句覆蓋要多幾乎一倍的測試路徑,當然也就具有比語句覆蓋更強的測試能力腹缩。同樣判定覆蓋也具有和語句覆蓋一樣的簡單性屿聋,無須細分每個判定就可以得到測試用例空扎。
  3. 缺點:往往大部分的判定語句是由多個邏輯條件組合而成(如,判定語句中包含AND润讥、OR转锈、CASE),若僅僅判斷其整個最終結(jié)果象对,而忽略每個條件的取值情況黑忱,必然會遺漏部分測試路徑。
  4. 舉例


X    Y   路徑
90  90  OAE
50  50  OBDE
90  70  OBCE

三勒魔、條件覆蓋(Condition Coverage)

  1. 主要特點:要求所設(shè)計的測試用例能使每個判定中的每一個條件都獲得可能的取值甫煞,即每個條件至少有一次真值、有一次假值冠绢。
  2. 優(yōu)點:顯然條件覆蓋比判定覆蓋抚吠,增加了對符合判定情況的測試,增加了測試路徑弟胀。條件覆蓋使得判定中的每一個條件都取到了不同的結(jié)果楷力,這一點判定覆蓋則無法保證。
  3. 缺點:要達到條件覆蓋孵户,需要足夠多的測試用例萧朝,但條件覆蓋并不能保證判定覆蓋。條件覆蓋只能保證每個條件至少有一次為真夏哭,而不考慮所有的判定結(jié)果检柬。
  4. 舉例
X    Y   路徑
90  70  OBC
40        OBD
參考文獻:

談?wù)劙缀袦y試中的幾種覆蓋方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市竖配,隨后出現(xiàn)的幾起案子何址,更是在濱河造成了極大的恐慌,老刑警劉巖进胯,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件用爪,死亡現(xiàn)場離奇詭異,居然都是意外死亡胁镐,警方通過查閱死者的電腦和手機偎血,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來希停,“玉大人烁巫,你說我怎么就攤上這事〕枘埽” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵磁餐,是天一觀的道長违崇。 經(jīng)常有香客問我阿弃,道長,這世上最難降的妖魔是什么羞延? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任渣淳,我火速辦了婚禮,結(jié)果婚禮上伴箩,老公的妹妹穿的比我還像新娘入愧。我一直安慰自己,他們只是感情好嗤谚,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布棺蛛。 她就那樣靜靜地躺著,像睡著了一般巩步。 火紅的嫁衣襯著肌膚如雪旁赊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天椅野,我揣著相機與錄音终畅,去河邊找鬼。 笑死竟闪,一個胖子當著我的面吹牛离福,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播炼蛤,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼妖爷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鲸湃?” 一聲冷哼從身側(cè)響起赠涮,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎暗挑,沒想到半個月后笋除,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡炸裆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年垃它,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烹看。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡国拇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惯殊,到底是詐尸還是另有隱情酱吝,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布土思,位于F島的核電站务热,受9級特大地震影響忆嗜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜崎岂,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一捆毫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧冲甘,春花似錦绩卤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嫁审,卻和暖如春跋炕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背律适。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工辐烂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捂贿。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓纠修,卻偏偏與公主長得像,于是被迫代替她去往敵國和親厂僧。 傳聞我的和親對象是個殘疾皇子扣草,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 談?wù)劙缀袦y試中的幾種覆蓋方法白盒測試用例設(shè)計的一個很重要的評估標準就是對代碼的覆蓋度。一說到覆蓋颜屠,大家都感覺非常熟...
    古佛青燈度流年閱讀 5,184評論 3 3
  • 文章轉(zhuǎn)自:http://www.51testing.com/html/44/n-3713444.html 白盒測試...
    Moonsmile閱讀 9,904評論 0 4
  • 本著共享主義辰妙,本人將PPT考點梳理出來,并且已經(jīng)翻譯成中文甫窟,供大家參考密浑,歡迎各位指導(dǎo)! 本次考試題型分為選擇粗井、判斷...
    Moonsmile閱讀 4,134評論 13 28
  • 1.語句覆蓋尔破。這個是起碼要做到的覆蓋了,程序里的每條可執(zhí)行的語句都要至少執(zhí)行一次浇衬。這個設(shè)計起來比較簡單懒构,用例數(shù)據(jù)很...
    hmyixiu閱讀 5,530評論 0 3
  • 1.測試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過程、活動和任務(wù)的結(jié)構(gòu)性框架耘擂。軟件項目的開發(fā)包括:需求胆剧、設(shè)...
    Mr希靈閱讀 21,938評論 7 278