软件工程导论——详解白盒测试和黑盒测试中的各种方法
/資料參考軟件工程導論《第六版》張海藩著/
/資料參考來源https://www.jianshu.com/p/3152765ec902/
/資料參考來源https://blog.csdn.net/LOVEYSUXIN/article/details/82592588/
/資料參考來源https://www.cnblogs.com/dayu2019/p/11555447.html/
1.白盒測試
覆蓋程度
路徑覆蓋 > 多重條件覆蓋 > 判定/條件覆蓋 > 條件覆蓋 > 判定覆蓋 > 語句覆蓋
一 邏輯覆蓋
1.語句覆蓋
語句覆蓋:它的含義是我們設計出來的測試用例要保證程序中的每一個語句至少被執行一次。通常語句覆蓋被認為是“最弱的覆蓋”,原因是它僅僅考慮對代碼中的執行語句進行覆蓋而沒有考慮各種條件和分支,因此在實際運用中語句覆蓋很難發現代碼中的問題。
語句覆蓋必須把所有語句均執行一次我們設置測試用例
必須首先滿足 A>1 AND B=0
由此不妨設A=2 B=0
再執行X=X/A 由下一步可知必須滿足A=2 OR X>1 才可以執行X=X+1 故我們可以對X取任意值,設X=2
則執行 A=2 B=0 X=2則可以滿足語句覆蓋的全部測試用例。
語句覆蓋的缺點:語句覆蓋是“最弱的覆蓋”,它難以發現程序中的錯誤。①程序中存在一條x的值未發生改變的路徑abd沒有測試。②它無法發現判定的錯誤,比如第一個判定條件也許應該是“或”,而不是“與”。③無法發現條件的錯誤,比如第二個判斷中的條件X>1,也許事實上應該是X>0。
2.判定覆蓋
測試用例要保證讓被測試程序中的每一個分支都至少執行一次。讓所有的判定都取到所有可能取值,即每個判定都取到”真“、”假“各一次。
使用此準則測試小程序,只需要涵蓋路徑ace和abd,或涵蓋路徑acd和abe,就可以使得兩個判定為“真”和為“假”的分支都執行一次。如果選擇后一種情況,生成的用例及其遍歷的路徑如下:
A=3,B=0,X=3 acd
A=2,B=1,X=1 abe
缺點:這兩組測試用例都存在同一個問題:當判定由多個條件組合構成時,它未必能發現每個條件的錯誤。如果第二個判定把條件X>1錯誤的寫成了X<1,我們設計的測試用例仍然無法找出這個錯誤。
3.條件覆蓋
每個條件的所有可能結果至少執行一次。
1.A=2 B=0 X=4 執行路徑acd
2.A=1 B=1 X=1 執行路徑abd
3.A=2 B=0 X=1執行路徑abe
4.A=1 B=1 X=2執行路徑abe
缺點:條件覆蓋并不一定總能覆蓋全部分支。測試用例雖然滿足了條件覆蓋準則,但是只涵蓋了程序的路徑abe。但是,條件覆蓋還是要比判定覆蓋強一些,因為條件覆蓋可能會使判斷中各個條件的結果都取“真”或著取“假”,而判定覆蓋卻做不到這一點。
重點:區分判定和條件覆蓋
條件覆蓋通常比判定覆蓋強 因為它使表達式中每個條件都取得兩個不同的結果,而判定覆蓋卻只關心整個判定表達式的值。
4.判定/條件覆蓋
判定條件覆蓋是設計足夠的測試用例,得使判斷中每個條件的所有可能取值至少執行一次,同時每個判斷本身所有可能結果也至少執行一次。缺點是忽略了條件的組合情況。
可以設計下述兩組測試用例滿足判定/條件覆蓋標準:
1.A=2 B=0 X=4 ace
2.A=1 B=1 X=1 abd
缺點:條件覆蓋和判定/條件覆蓋不一定會發現邏輯表達式中的錯誤。盡管看上去所有條件的所有結果似乎都執行到了,但由于有些條件會屏蔽掉后面的條件,并不一定能全部執行得到。例如,上述測試用例①滿足了條件A=2后,就不再執行對條件X>1的判斷;測試用例②中不滿足條件A>1后,就不再執行對條件B=0的判斷。
5.條件組合覆蓋
每個判定中的所有可能的條件結果的組合,以及所有的入口點都至少執行一次。(注意“可能”二字,因為有些組合的情況難以生成。)
針對該圖,共有8鐘可能的條件組合
1.A>1 B=0
2.A>1 B不等于0
3.A<=1 B=0
4.A<=1 B不等于0
5.A=2 X>1
6.A=2 X<=1
7.A不等于2 X>1
8.A不等于2 X<=1
生成的測試用例,以及它們遍歷的路徑和覆蓋的組合如下:
A=2,B=0,X=4 ace 覆蓋組合1,5
A=2,B=1,X=1 abe 覆蓋組合2,6
A=1,B=0,X=2 abe 覆蓋組合3,7
A=1,B=1,X=1 abd 覆蓋組合4,8
缺點:多重條件覆蓋不一定能覆蓋到每條路徑,路徑acd就被遺漏掉了。
6.點覆蓋(點覆蓋和邊覆蓋考察的很少了解即可)
程序執行路徑至少經過流圖的每個結點一次
7.邊覆蓋
程序執行路徑至少經過流圖的每個邊一次
8.路徑覆蓋
每條路徑至少執行一次,每個條件的所有可能結果至少執行一次。
所有的路徑有
abd ace acd abe
需要設置四組測試用例
A=1 B=1 X=1執行路徑abd
A=2 B=0 X=2執行路徑ace
A=2 B=0 X=2 執行路徑acd
A=2 B=1 X=2執行路徑abe
總結
以上是生活随笔為你收集整理的软件工程导论——详解白盒测试和黑盒测试中的各种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jetson连接百兆交换机丢包笔记
- 下一篇: IDEA SVN 报 E170013