07-白盒测试方法-逻辑覆盖法
邏輯覆蓋法
- 前言
- 邏輯覆蓋法
- 語句覆蓋
- 判定覆蓋
- 條件覆蓋
- 判定-條件覆蓋
- 條件組合覆蓋
前言
- 本篇來學習白盒測試方法–邏輯覆蓋法
邏輯覆蓋法
-
邏輯覆蓋法是白盒測試最常用的測試方法,它包括語句覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋5種。
-
以demo中的一個方法為例,學習5種測試方法
語句覆蓋
- 語句覆蓋(Statement Coverage)又稱行覆蓋、段覆蓋、基本塊覆蓋,它是最常見的覆蓋方式。語句覆蓋的目的是測試程序中的代碼是否被執行,它只測試代碼中的執行語句,這里的執行語句不包括頭文件、注釋、空行等。語句覆蓋在多分支的程序中,只能覆蓋某一條路徑,使得該路徑中的每一個語句至少被執行一次,但不會考慮各種分支組合情況。
case 設計:
# 語句覆蓋的原則是覆蓋每條語句,針對demo方法,一條測試用例即可完成覆蓋
Case 1:a=true,b=true,c=true,d=false
覆蓋路徑:ace
判定覆蓋
- 判定覆蓋(Decision Coverage)又稱為分支覆蓋,其原則是設計足夠多的測試用例,在測試過程中保證每個判定至少有一次為真值,有一次為假值。判定覆蓋的作用是使真假分支均被執行,雖然判定覆蓋比語句覆蓋測試能力強,但仍然具有和語句覆蓋一樣的單一性。
case設計:
# 語句覆蓋并沒有考慮if語句為假(false)的情況,顯然測試并不充分。分支(判定)覆蓋可以解決這個問題
Case1:a=true,b=true,c=true,d=false
Case2:a=false,b=true,c=true,d=false
條件覆蓋
- 條件覆蓋(Condition Coverage)指的是設計足夠多的測試用例,使判定語句中的每個邏輯條件取真值與取假值至少出現一次。
case設計:
# 條件的每個取值(即a、b、c、d均可以取true或false兩個值)。條件覆蓋能覆蓋到每個條件的每個取值,
Case1:a=true,b=false,c=true,d=false
Case2:a=false,b=true,c=false,d=true
判定-條件覆蓋
- 判定-條件覆蓋(Condition/Decision Coverage)要求設計足夠多的測試用例,使得判定語句中所有條件的可能取值至少出現一次,同時,所有判定語句的可能結果也至少出現一次。
case設計:
# 同時滿足判定覆蓋和條件覆蓋就更好了,而判定條件覆蓋就能做到
Case 1:a=true,b=true,c=true,d=true
Case 2:a=false,b=false,c=false,d=false
條件組合覆蓋
- 條件組合(Multiple Condition Coverage)指的是設計足夠多的測試用例,使判定語句中每個條件的所有可能至少出現一次,并且每個判定語句本身的判定結果也至少出現一次,它與判定-條件覆蓋的差別是,條件組合覆蓋不是簡單地要求每個條件都出現“真”與“假”兩種結果,而是要求讓這些結果的所有可能組合都至少出現一次。
case設計:
# 條件組合覆蓋考慮的是覆蓋每個分支(判定)中每個條件的每種組合
Case 1:a=true,b=true,c=true,d=true
Case 2:a=true,b=false,c=true,d=false
Case 3:a=false,b=true,c=false,d=true
Case 4:a=false,b=false,c=false,d=false
- 若a&&b為true,那么a=true,b=true。若a&&b為false,那么a=true,b=false;或a=false,b=true;或a=false,b=false。若c&&d為true,那么c=true,d=true;或c=true,d=false;或c=false,d=true。若c&&d為false,那么c=false,d=false。
總結
以上是生活随笔為你收集整理的07-白盒测试方法-逻辑覆盖法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android输入法开发软件,开发安卓系
- 下一篇: java马士兵笔记_马士兵java教程笔