日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

软件工程导论——详解白盒测试和黑盒测试中的各种方法

發(fā)布時(shí)間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件工程导论——详解白盒测试和黑盒测试中的各种方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

/資料參考軟件工程導(dǎo)論《第六版》張海藩著/
/資料參考來(lái)源https://www.jianshu.com/p/3152765ec902/
/資料參考來(lái)源https://blog.csdn.net/LOVEYSUXIN/article/details/82592588/
/資料參考來(lái)源https://www.cnblogs.com/dayu2019/p/11555447.html/

1.白盒測(cè)試

覆蓋程度
路徑覆蓋 > 多重條件覆蓋 > 判定/條件覆蓋 > 條件覆蓋 > 判定覆蓋 > 語(yǔ)句覆蓋

一 邏輯覆蓋
1.語(yǔ)句覆蓋
語(yǔ)句覆蓋:它的含義是我們?cè)O(shè)計(jì)出來(lái)的測(cè)試用例要保證程序中的每一個(gè)語(yǔ)句至少被執(zhí)行一次。通常語(yǔ)句覆蓋被認(rèn)為是“最弱的覆蓋”,原因是它僅僅考慮對(duì)代碼中的執(zhí)行語(yǔ)句進(jìn)行覆蓋而沒(méi)有考慮各種條件和分支,因此在實(shí)際運(yùn)用中語(yǔ)句覆蓋很難發(fā)現(xiàn)代碼中的問(wèn)題。

語(yǔ)句覆蓋必須把所有語(yǔ)句均執(zhí)行一次我們?cè)O(shè)置測(cè)試用例
必須首先滿足 A>1 AND B=0
由此不妨設(shè)A=2 B=0
再執(zhí)行X=X/A 由下一步可知必須滿足A=2 OR X>1 才可以執(zhí)行X=X+1 故我們可以對(duì)X取任意值,設(shè)X=2
則執(zhí)行 A=2 B=0 X=2則可以滿足語(yǔ)句覆蓋的全部測(cè)試用例。
語(yǔ)句覆蓋的缺點(diǎn):語(yǔ)句覆蓋是“最弱的覆蓋”,它難以發(fā)現(xiàn)程序中的錯(cuò)誤。①程序中存在一條x的值未發(fā)生改變的路徑abd沒(méi)有測(cè)試。②它無(wú)法發(fā)現(xiàn)判定的錯(cuò)誤,比如第一個(gè)判定條件也許應(yīng)該是“或”,而不是“與”。③無(wú)法發(fā)現(xiàn)條件的錯(cuò)誤,比如第二個(gè)判斷中的條件X>1,也許事實(shí)上應(yīng)該是X>0。
2.判定覆蓋
測(cè)試用例要保證讓被測(cè)試程序中的每一個(gè)分支都至少執(zhí)行一次。讓所有的判定都取到所有可能取值,即每個(gè)判定都取到”真“、”假“各一次。

使用此準(zhǔn)則測(cè)試小程序,只需要涵蓋路徑ace和abd,或涵蓋路徑acd和abe,就可以使得兩個(gè)判定為“真”和為“假”的分支都執(zhí)行一次。如果選擇后一種情況,生成的用例及其遍歷的路徑如下:

A=3,B=0,X=3 acd
A=2,B=1,X=1 abe
缺點(diǎn):這兩組測(cè)試用例都存在同一個(gè)問(wèn)題:當(dāng)判定由多個(gè)條件組合構(gòu)成時(shí),它未必能發(fā)現(xiàn)每個(gè)條件的錯(cuò)誤。如果第二個(gè)判定把條件X>1錯(cuò)誤的寫成了X<1,我們?cè)O(shè)計(jì)的測(cè)試用例仍然無(wú)法找出這個(gè)錯(cuò)誤。
3.條件覆蓋
每個(gè)條件的所有可能結(jié)果至少執(zhí)行一次。
1.A=2 B=0 X=4 執(zhí)行路徑acd
2.A=1 B=1 X=1 執(zhí)行路徑abd
3.A=2 B=0 X=1執(zhí)行路徑abe
4.A=1 B=1 X=2執(zhí)行路徑abe

缺點(diǎn):條件覆蓋并不一定總能覆蓋全部分支。測(cè)試用例雖然滿足了條件覆蓋準(zhǔn)則,但是只涵蓋了程序的路徑abe。但是,條件覆蓋還是要比判定覆蓋強(qiáng)一些,因?yàn)闂l件覆蓋可能會(huì)使判斷中各個(gè)條件的結(jié)果都取“真”或著取“假”,而判定覆蓋卻做不到這一點(diǎn)。

重點(diǎn):區(qū)分判定和條件覆蓋
條件覆蓋通常比判定覆蓋強(qiáng) 因?yàn)樗贡磉_(dá)式中每個(gè)條件都取得兩個(gè)不同的結(jié)果,而判定覆蓋卻只關(guān)心整個(gè)判定表達(dá)式的值。

4.判定/條件覆蓋
判定條件覆蓋是設(shè)計(jì)足夠的測(cè)試用例,得使判斷中每個(gè)條件的所有可能取值至少執(zhí)行一次,同時(shí)每個(gè)判斷本身所有可能結(jié)果也至少執(zhí)行一次。缺點(diǎn)是忽略了條件的組合情況。

可以設(shè)計(jì)下述兩組測(cè)試用例滿足判定/條件覆蓋標(biāo)準(zhǔn):
1.A=2 B=0 X=4 ace
2.A=1 B=1 X=1 abd
缺點(diǎn):條件覆蓋和判定/條件覆蓋不一定會(huì)發(fā)現(xiàn)邏輯表達(dá)式中的錯(cuò)誤。盡管看上去所有條件的所有結(jié)果似乎都執(zhí)行到了,但由于有些條件會(huì)屏蔽掉后面的條件,并不一定能全部執(zhí)行得到。例如,上述測(cè)試用例①滿足了條件A=2后,就不再執(zhí)行對(duì)條件X>1的判斷;測(cè)試用例②中不滿足條件A>1后,就不再執(zhí)行對(duì)條件B=0的判斷。
5.條件組合覆蓋
每個(gè)判定中的所有可能的條件結(jié)果的組合,以及所有的入口點(diǎn)都至少執(zhí)行一次。(注意“可能”二字,因?yàn)橛行┙M合的情況難以生成。)

針對(duì)該圖,共有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
生成的測(cè)試用例,以及它們遍歷的路徑和覆蓋的組合如下:

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

缺點(diǎn):多重條件覆蓋不一定能覆蓋到每條路徑,路徑acd就被遺漏掉了。
6.點(diǎn)覆蓋(點(diǎn)覆蓋和邊覆蓋考察的很少了解即可)
程序執(zhí)行路徑至少經(jīng)過(guò)流圖的每個(gè)結(jié)點(diǎn)一次
7.邊覆蓋
程序執(zhí)行路徑至少經(jīng)過(guò)流圖的每個(gè)邊一次
8.路徑覆蓋
每條路徑至少執(zhí)行一次,每個(gè)條件的所有可能結(jié)果至少執(zhí)行一次。

所有的路徑有
abd ace acd abe
需要設(shè)置四組測(cè)試用例
A=1 B=1 X=1執(zhí)行路徑abd
A=2 B=0 X=2執(zhí)行路徑ace
A=2 B=0 X=2 執(zhí)行路徑acd
A=2 B=1 X=2執(zhí)行路徑abe

總結(jié)

以上是生活随笔為你收集整理的软件工程导论——详解白盒测试和黑盒测试中的各种方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。