国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【白盒測試】邏輯覆蓋和路徑測試的設(shè)計(jì)方法

這篇具有很好參考價(jià)值的文章主要介紹了【白盒測試】邏輯覆蓋和路徑測試的設(shè)計(jì)方法。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

 白盒測試主要是檢查程序的內(nèi)部結(jié)構(gòu)、邏輯、循環(huán)和路徑。白盒測試的常用用例設(shè)計(jì)方法有邏輯覆蓋和基本路徑測試。

根據(jù)覆蓋測試的目標(biāo)不同,邏輯覆蓋又可分為語句覆蓋、判斷覆蓋、條件覆蓋、判斷/條件覆蓋、條件組合覆蓋及路徑覆蓋。

1. 一個(gè)程序模塊的例子

【白盒測試】邏輯覆蓋和路徑測試的設(shè)計(jì)方法,服務(wù)器,測試工具,selenium,功能測試,單元測試,jmeter,測試用例?

圖1 一個(gè)程序模塊的例圖

從圖中可知,該程序模塊有4條不同的路徑、4個(gè)可執(zhí)行語句。這4條路徑可分別表示為:

L1(a→c→e)簡化為ace;

L2(a→b→d)簡化為abd;

L3(a→b→e)簡化為abe;

L4(a→c→d)簡化為acd;

4條路徑應(yīng)該滿足的邏輯表達(dá)式分別為:

記M={(A>1)and(B=0)},N={(A=2)or(X>1)}

L1(a→c→e)= M and N

L2(a→b→d)= /M and /N

L3(a→b→e)= /M and N

L4(a→c→d)= M and /N

其中,“/M”表示M的反,“/N”表示N的反,或者將4條路徑應(yīng)該滿足的邏輯表達(dá)式寫為:

L1(a→c→e)= {(A>1)and(B=0)} and {(A=2)or(X/A>1)} ;

L2(a→b→d)= / {(A>1)and(B=0)} and / {(A=2)or(X>1)} ;

L3(a→b→e)=/ {(A>1)and(B=0)} and {(A=2)or(X>1)} ;

L4(a→c→d)= {(A>1)and(B=0)} and / {(A=2)or(X/A>1)};

其中,由符號“and”連接起來的語句是為了遍歷這條路徑各個(gè)輸入變量應(yīng)取值的范圍,而由“or”劃分了幾組可選的取值。根據(jù)上面導(dǎo)出的邏輯表達(dá)式,就可以用來設(shè)計(jì)測試用例。

2. 語句覆蓋

語句覆蓋就是設(shè)計(jì)若干個(gè)測試用例,運(yùn)行所測程序,使得每一條可執(zhí)行語句至少執(zhí)行一次。對上面的例子,所有的可執(zhí)行語句都在路徑L1上,所以選擇路徑L1來設(shè)計(jì)測試用例,就要覆蓋所有的可執(zhí)行語句。

測試用例設(shè)計(jì)的格式如下:

[輸入的(A,B,X),輸出的(A,B,X)]為覆蓋路徑:L1(a→c→e)= M and N,{(A>1)and(B=0)} and {(A=2)or(X/A>1)}。可設(shè)計(jì)出滿足語句覆蓋的測試用例是:

[(2,0,4),(2,0,3)],覆蓋ace[L1]。

從每個(gè)執(zhí)行語句都得到執(zhí)行這一點(diǎn)來看,語句覆蓋的方法似乎能能夠比較全面地檢驗(yàn)每個(gè)可執(zhí)行語句,但實(shí)際上并非如此。

語句覆蓋的不足之處是:假如該程序段中的兩個(gè)邏輯運(yùn)算有問題,例如,第一個(gè)判斷中的邏輯運(yùn)算符“&&”寫成了“||”,或者第二個(gè)判斷中的邏輯運(yùn)算符“||”錯(cuò)寫成了“&&”,利用上面的測試用例,仍然可覆蓋所有4個(gè)可執(zhí)行語句,這說明雖然做到了語句覆蓋測試,但可能發(fā)現(xiàn)不了判斷時(shí)邏輯運(yùn)算中出現(xiàn)的錯(cuò)誤。語句覆蓋是最弱的邏輯覆蓋準(zhǔn)則。

3. 判斷覆蓋

判斷覆蓋就是設(shè)計(jì)若干個(gè)測試用例,運(yùn)行所測程序,使得程序中每個(gè)判斷的取TRUE分支和取FALSE分支至少經(jīng)歷一次。判斷覆蓋又稱為分支覆蓋。

根據(jù)定義,可分別選擇路徑L1和L2或者路徑L3和L4設(shè)計(jì)測試用例。

如果選擇路徑L1和L2,則可得到滿足要求的測試用例:

[(2,0,4),(2,0,3)],覆蓋ace[L1]

[(1,1,1),(1,2,1)],覆蓋abd[L2]

如果選擇路徑L3和L4,則可設(shè)計(jì)另一組測試用例:

[(2,1,1),(2,1,2)],覆蓋abe[L3]

[(3,0,3),(3,0,1)],覆蓋acd[L4]

可見,測試用例的選擇不唯一。

判斷覆蓋的不足之處是:假如第二個(gè)判斷中的條件X>1被錯(cuò)寫成了X<1,利用上面的兩組測試用例仍能得到同樣的結(jié)果。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-816057.html

4.?條件覆蓋

條件覆蓋就是設(shè)計(jì)若干個(gè)測試用例,運(yùn)行所測程序,使得程序中每個(gè)判斷的每個(gè)條件的可能取值至少執(zhí)行一次。因此,首先要對所有的條件加以標(biāo)記。

對第一個(gè)判斷:

  • 條件A>1取TRUE時(shí)為T1,取FALSE時(shí)為F1;
  • 條件B=0取TRUE時(shí)為T2,取FALSE時(shí)為F2;

對第二個(gè)判斷:

  • 條件A=2取TRUE時(shí)為T3,取FALSE時(shí)為F3;
  • 條件X>1取TRUE時(shí)為T4,取FALSE時(shí)為F4。

根據(jù)這8個(gè)條件取值,可分別設(shè)計(jì)如下兩組測試用例,如表1和表2所列。

表1 第一組

測試用例

通過路徑

條件取值

覆蓋分支

[(1,0,3),(1,0,4)]

abe(L3)

F1,T2,F3,T4

b,e

[(2,1,1),(2,1,2)]

abe(L3)

T1,F2,T3,F4

b,e

表2 第二組

測試用例

通過路徑

條件取值

覆蓋分支

[(2,0,4),(2,0,3)]

ace(L1)

T1,T2,T3,T4

c,e

[(1,0,1),(1,0,1)]

abd(L2)

F1,T2,F3,F4

b,d

[(2,1,1),(2,1,2)]

abe(L3)

T1,F2,T3,,F4

b,e

?

由表1和表2可以看出,兩組測試用例都滿足了條件覆蓋,即覆蓋了所有的體哦阿健取值。條件覆蓋的不足之處是:第一組測試用例不滿足判斷(分支)覆蓋的要求。

5. 判斷-條件覆蓋

判斷-條件覆蓋就是設(shè)計(jì)足夠的測試用例,使得判斷中每個(gè)條件的所有可能取值至少執(zhí)行一次,同時(shí)每個(gè)判斷的所有可能判斷結(jié)果至少執(zhí)行一次。也就是說,要求各個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次。

根據(jù)判斷-條件覆蓋的定義,只需設(shè)計(jì)下面兩個(gè)測試用例來覆蓋例子的8個(gè)條件取值以及4個(gè)判斷分支,如表3所列。

表3 判斷分支列表

測試用例

通過路徑

條件取值

覆蓋分支

[(2,0,4),(2,0,3)]

ace(L1)

T1,T2,T3,T4

c,e

[(2,1,1),(2,1,2)]

abd(L2)

F1,F2,F3,F4

b,d

?

判斷-條件覆蓋的不足之處是:從表面上看來,判斷-條件覆蓋測試了所有條件的取值,但實(shí)際上并非如此,而是某些條件掩蓋了另一些條件(由于多重條件判定),例如,對條件表達(dá)式(A>1)AND(B=0)來說,若(A>1)的測試結(jié)果為FALSE,可以立即確定表達(dá)式的結(jié)果為FALSE,這時(shí)往往就不再測試(B=0)的取值了,因此,條件(B=0)就沒有被檢查。同樣,對條件表達(dá)式(A=2)OR(X>1)來說,若(A=2)的測試結(jié)果為TRUE,就立即確定表達(dá)式的結(jié)果為TRUE,這時(shí),條件(X>1)就沒有被檢查。

因此,采用判斷-條件覆蓋測試,邏輯表達(dá)式中的錯(cuò)誤不一定能夠檢查的出來。

6. 條件組合覆蓋

條件組合覆蓋就是設(shè)計(jì)足夠的測試用例,運(yùn)行所測程序,使得每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次。

針對上面的例子,先對各個(gè)判斷的條件取值組合加以標(biāo)記,如表4所列。

表4 判斷條件取值組合表

組合編號

條件取值的組合

標(biāo)記

說明

A>1,B=0

T1,T2

屬第一個(gè)判斷的取TRUE分支

A>1,B!=0

T1,F2

屬第一個(gè)判斷的取FLASE分支

A<=1,B=0

F1,T2

屬第一個(gè)判斷的取FLASE分支

A<=1,B!=0

F1,F2

屬第一個(gè)判斷的取FLASE分支

A=2,X>1

T3,T4

屬第二個(gè)判斷的取TRUE分支

A=2,X<=1

T3,F4

屬第二個(gè)判斷的取TRUE分支

A!=2,X>A

F3,T4

屬第二個(gè)判斷的取TRUE分支

A!=2,X<=1

F3,F4

屬第二個(gè)判斷的取FLASE分支

對每個(gè)判斷,要求所有可能的條件取值的組合都必須取到。每個(gè)判斷各有兩個(gè)條件,所以各有4個(gè)條件取值的組合。

注意:這里沒有要求第一個(gè)判斷的4個(gè)組合再與第二個(gè)判斷的4個(gè)組合進(jìn)行組合成16個(gè)組合。

設(shè)計(jì)4個(gè)測試用例,就可覆蓋上面的8種條件組合,如表5所列。

表5 4個(gè)測試取值組合列表

測試用例

通過路徑

覆蓋條件

覆蓋組合號

[(2,0,4),(2,0,3)]

ace(L1)

T1,T2,T3,T4

①⑤

[(2,1,1),(2,1,2)]

abe(L3)

T1,F2,T3,F4

②⑥

[(1,0,3),(1,0,4)]

abe(L3)

F1,T2,F3,T4

③⑦

[(1,1,1),(1,1,1)]

abd(L2)

F1,F2,F3,F4

④⑧

?

這些測試用例覆蓋了所有條件的可能取值的組合,覆蓋了所有判斷的可取分支。條件組合覆蓋的不足之處:沒有覆蓋路徑L4,這樣的測試還不完全。

7.?路徑覆蓋

路徑覆蓋就是設(shè)計(jì)足夠的測試用例,覆蓋程序中所有可能的路徑??稍O(shè)計(jì)下面的4個(gè)測試用例,覆蓋全部4條路徑。表6所列是對應(yīng)實(shí)例程序的路徑覆蓋測試用例。

表6 設(shè)計(jì)4個(gè)測試用例覆蓋全部4條路徑

測試用例

通過路徑

覆蓋條件

覆蓋組合號

[(2,0,4),(2,0,3)]

ace(L1)

T1,T2,T3,T4

①⑤

[(1,1,1),(1,1,1)]

abd(L2)

F1,F2,F3,F4

④⑧

[(1,1,2),(1,1,3)]

abe(L3)

F1,F2,F3,T4

④⑦

[(3,0,3),(3,0,1)]

acd(L4)

T1,T2,F3,F4

①⑧

路徑覆蓋的不足之處,沒有全部覆蓋判斷的條件取值的組合,如②③⑥。

8. 測試用例的組合和優(yōu)化

對該例子,采用邏輯覆蓋方法中的任何一種都不能滿足所有需求,如果每個(gè)方法都采用,又有測試用例的重復(fù)。如何用最少的測試用例滿足最多的需求呢?在設(shè)計(jì)中,這是一個(gè)值得考慮和解決的問題。

對于本例,我們采用條件組合覆蓋和路徑覆蓋兩種方法設(shè)計(jì)測試用例,并進(jìn)行優(yōu)化,可得到如表7所列的測試用例。

表7 采用條件組合覆蓋和路徑覆蓋設(shè)計(jì)測試用例表

測試用例

通過路徑

覆蓋條件

覆蓋組合號

[(2,0,4),(2,0,3)]

ace(L1)

T1,T2,T3,T4

①⑤

[(1,1,1),(1,1,1)]

abd(L2)

F1,F2,F3,F4

④⑧

[(1,1,2),(1,1,3)]

abe(L3)

F1,F2,F3,T4

④⑦

[(3,0,3),(3,0,1)]

acd(L4)

T1,T2,F3,F4

①⑧

[(2,0,4),(2,0,3)]

ace(L1)

T1,T2,T3,T4

①⑤

[(2,1,1),(2,1,2)]

abe(L3)

T1,F2,T3,F4

②⑥

[(1,0,3),(1,0,4)]

abe(L3)

F1,T2,F3,T4

③⑦

[(1,1,1),(1,1,1)]

abd(L2)

F1,F2,F3,F4

④⑧

采用上面的8個(gè)測試用例,可滿足所有邏輯覆蓋測試。?

感謝每一個(gè)認(rèn)真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

?【白盒測試】邏輯覆蓋和路徑測試的設(shè)計(jì)方法,服務(wù)器,測試工具,selenium,功能測試,單元測試,jmeter,測試用例

這些資料,對于【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個(gè)倉庫也陪伴上萬個(gè)測試工程師們走過最艱難的路程,希望也能幫助到你!有需要的小伙伴可以點(diǎn)擊下方小卡片領(lǐng)取?

【白盒測試】邏輯覆蓋和路徑測試的設(shè)計(jì)方法,服務(wù)器,測試工具,selenium,功能測試,單元測試,jmeter,測試用例

?

到了這里,關(guān)于【白盒測試】邏輯覆蓋和路徑測試的設(shè)計(jì)方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 白盒測試——NextDate函數(shù)測試(基本路徑覆蓋法)

    白盒測試——NextDate函數(shù)測試(基本路徑覆蓋法)

    白盒測試:NextDate的基本路徑覆蓋法以及測試用例設(shè)計(jì) 程序有三個(gè)輸入變量 month 、 day 、 year ( month 、 day 和 year 均為整數(shù)值,并且滿足: 1≤month≤12 、 1≤day≤31 、 1900≤ year ≤2050 。),分別作為輸入日期的月份、日、年份,通過程序可以輸出該輸入日期在日歷上下一天的

    2024年02月07日
    瀏覽(14)
  • [軟件測試] 03 白盒 基本路徑測試 習(xí)題

    軟件測試期末復(fù)習(xí)系列 課件知識點(diǎn)整合 : 軟件測試基礎(chǔ) 白盒測試 黑盒測試 PTA習(xí)題匯總 : 軟件測試基礎(chǔ) 白盒測試-邏輯覆蓋測試 白盒測試-基本路徑測試 白盒測試-靜態(tài)測試 黑盒測試-等價(jià)類劃分 黑盒測試-邊界值測試 黑盒測試-場景法 提示 : 篇幅較長,可以使用 Ctrl+F ,在

    2024年02月04日
    瀏覽(27)
  • 【軟件測試】路徑覆蓋

    【軟件測試】路徑覆蓋

    題目要求: a)???????流程圖如下: b) ? ?Consider test cases ti = (n = 3) and t2 = ( n = 5). Although these tour the same prime paths in printPrime(), they don\\\'t necessarily find the same faults. Design a simple fault that t2 would be more likely to discover than t1 would Answer:如果將MAXPRIMES的值設(shè)為4那么n=5時(shí)可能會出現(xiàn)數(shù)組

    2024年01月16日
    瀏覽(19)
  • 白盒測試方法

    白盒測試方法

    如果所有軟件錯(cuò)誤的根源都可以追溯到某個(gè)唯一原因,那么問題就簡單了。然而,事實(shí)上一個(gè)bug 常常是由多個(gè)因素共同導(dǎo)致的,如下圖所示。 黑盒查不到的問題 假設(shè)此時(shí)開發(fā)工作已結(jié)束,程序送交到測試組,沒有人知道代碼中有一個(gè)潛在的被 0 除的錯(cuò)誤。若測試組采用的測

    2024年02月07日
    瀏覽(18)
  • 【單元測試】Junit 4教程(一)--白盒測試方法

    【單元測試】Junit 4教程(一)--白盒測試方法

    目錄 1.0 流程圖標(biāo)識 1.1 語句覆蓋法(C0標(biāo)準(zhǔn)) 1.2 判定/分支覆蓋法(C1標(biāo)準(zhǔn)) 1.3 條件覆蓋法(C2標(biāo)準(zhǔn)) 1.4 判定條件覆蓋法(C1+C2標(biāo)準(zhǔn)) 1.5 條件組合覆蓋法(C3標(biāo)準(zhǔn)) 1.6 路徑覆蓋 1.7 基本路徑覆蓋法 ?結(jié)語 ① 目標(biāo) ? 程序中的每個(gè)可執(zhí)行語句 至少被執(zhí)行一次 后面如未說明那

    2024年02月10日
    瀏覽(43)
  • 軟件質(zhì)量保證與測試技術(shù)實(shí)驗(yàn):白盒測試用例設(shè)計(jì)

    軟件質(zhì)量保證與測試技術(shù)實(shí)驗(yàn):白盒測試用例設(shè)計(jì)

    目錄 前言 一、白盒測試 二、實(shí)驗(yàn)?zāi)康?三、實(shí)驗(yàn)內(nèi)容 四、實(shí)驗(yàn)步驟 五、實(shí)驗(yàn)過程 題目一 1、程序流程圖 2、測試用例??????? 3、測試代碼 4、測試結(jié)果 題目二 1、控制流圖 2、獨(dú)立路徑集合 3、測試用例? 4、測試代碼 ?5、測試結(jié)果 總結(jié) 白盒測試是一種基于程序內(nèi)部

    2024年02月04日
    瀏覽(30)
  • 查詢服務(wù)器tns文件路徑,oracle數(shù)據(jù)庫tns配置方法詳解

    查詢服務(wù)器tns文件路徑,oracle數(shù)據(jù)庫tns配置方法詳解

    Oracle中TNS的完整定義:transparence Network Substrate透明網(wǎng)絡(luò)底層, 監(jiān)聽服務(wù)是它重要的一部分,不是全部,不要把TNS當(dāng)作只是監(jiān)聽器。 上圖中的CGDB和STDCG就是對應(yīng)的TNS,HOST是指向數(shù)據(jù)庫服務(wù)器的IP,當(dāng)然局域網(wǎng)內(nèi)用計(jì)算機(jī)名稱也是可以的。通過客戶端Net Manager創(chuàng)建一個(gè)連接到數(shù)據(jù)

    2024年02月09日
    瀏覽(92)
  • 【白盒測試】單元測試的理論基礎(chǔ)及用例設(shè)計(jì)技術(shù)(6種)詳解

    【白盒測試】單元測試的理論基礎(chǔ)及用例設(shè)計(jì)技術(shù)(6種)詳解

    目錄 ??前言 ???1. 單元測試的理論基礎(chǔ) ??1.1 單元測試是什么 ??1.2 單元測試的好處 ??1.3?單元測試的要求 ??1.4?測試框架-Junit4的介紹 ??1.5?單元測試為什么要mock ???2. 單元測試用例設(shè)計(jì)技術(shù)(6種) ??2.1?語句覆蓋 ??2.2 判定覆蓋【也稱分支覆蓋】 ??2.3 條件覆蓋

    2024年04月27日
    瀏覽(20)
  • 白盒測試(單元測試JUnit使用斷言assertThat中startsWith、endsWith方法)

    目錄 一、背景知識 二、assertThat-字符串相關(guān)匹配符 1、startsWith 2、endsWith 三、代碼

    2024年02月07日
    瀏覽(21)
  • java文件相關(guān)操作工具,包括讀取服務(wù)器路徑下文件,刪除文件及子文件,刪除文件夾等方法

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包