最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

軟件測試用例經(jīng)典方法 | 邏輯覆蓋測試法及案例

2023-08-24 20:47 作者:華測教育  | 我要投稿


邏輯覆蓋測試法是常用的一類白盒測試方法,其以程序內(nèi)部邏輯結(jié)構(gòu)為基礎(chǔ),通過對程序邏輯結(jié)構(gòu)的遍歷來實(shí)現(xiàn)程序測試的覆蓋。邏輯覆蓋測試法要求測試人員對程序的邏輯結(jié)構(gòu)有清晰的了解。

邏輯覆蓋測試法是一系列測試過程的總稱,是使測試過程逐漸進(jìn)行越來越完整的通路測試。從覆蓋源程序語句的詳盡程度,可以將其分為語句覆蓋、判定覆蓋、條件覆蓋、判斷/條件覆蓋、條件組合覆蓋和路徑覆蓋等。接下來將通過下面程序的邏輯覆蓋測試用例一一介紹這些覆蓋準(zhǔn)則,該程序的流程圖如圖4-1所示,其中,a、b、c、d、e是控制流上的若干程序點(diǎn)。


■ 圖4-1程序流程圖

邏輯覆蓋測試的綜合案例

通過一個案例將相關(guān)測試方法進(jìn)行一次綜合應(yīng)用,即設(shè)計(jì)以下程序的邏輯覆蓋測試用例。


圖4-2給出了該例子的流程圖,其中a、b、c、d和e是控制流上的若干程序點(diǎn)。


■ 圖4-2程序流程圖

1. 語句覆蓋

要測試DoWork函數(shù),只需設(shè)計(jì)一個測試用例就可以覆蓋程序中所有可執(zhí)行語句,程序執(zhí)行的路徑是abd,具體測試用例輸入如下。

{x=4 y=5 z=5}

分析:語句覆蓋可以保證程序中的每個語句都得到執(zhí)行,但發(fā)現(xiàn)不了判定中邏輯運(yùn)算的錯誤,即它不是一種充分的檢驗(yàn)方法。例如,在第一個判定(x>3)&&(z<10)中把“&&”錯誤地寫成“||”,這時仍使用該測試用例,則程序仍會按照流程圖上的路徑abd執(zhí)行,這再次說明語句覆蓋是最弱的邏輯覆蓋準(zhǔn)則。

2. 判定覆蓋

要實(shí)現(xiàn)DoWork函數(shù)的判定覆蓋,需要設(shè)計(jì)兩個測試用例,其程序執(zhí)行的路徑分別是abd和ace,對應(yīng)測試用例的輸入為:

{x=4 y=5 z=5};{x=2 y=5 z=5}

分析:上述兩個測試用例不僅滿足了判定覆蓋,同時還做到了語句覆蓋。從這點(diǎn)看似乎判定覆蓋比語句覆蓋更強(qiáng)一些,但其仍然無法確定判定內(nèi)部條件的錯誤。例如,把第二個判定中的條件y>5錯誤寫為y<5,然后使用上述測試用例,照樣能按原路徑執(zhí)行而不影響結(jié)果。因此,需要更強(qiáng)的邏輯覆蓋準(zhǔn)則去檢驗(yàn)判定內(nèi)的條件。

3. 條件覆蓋

一個判定中通常都包含若干條件。條件覆蓋的目的是設(shè)計(jì)若干測試用例,在執(zhí)行被測程序后,使每個判定中每個條件的可能值至少滿足一次。

對DoWork函數(shù)各個判定的各種條件取值加以標(biāo)記。

(1) 對于第一個判定(x>3&&z<10):

條件x>3取真值記為t1,取假值記為-t1;

條件z<10取真值記為t2,取假值記為-t2。

(2) 對于第二個判定(x==4||y>5):

條件x==4取真值記為t3,取假值記為-t3;

條件y>5取真值記為t4,取假值記為-t4。

根據(jù)條件覆蓋的基本思想,要使上述4個條件可能產(chǎn)生的8種情況至少滿足一次,其設(shè)計(jì)測試用例如表4-6所示。

■ 表4-6條件覆蓋測試用例

分析: 表4-6中這組測試用例不但覆蓋了4個條件的全部8種情況,而且將兩個判定的4個分支b、c、d、e也同時覆蓋了,即同時達(dá)到了條件覆蓋和判定覆蓋。

雖然前面的一組測試用例同時達(dá)到了條件覆蓋和判定覆蓋,但是,并不是說滿足條件覆蓋就一定能滿足判定覆蓋。如果設(shè)計(jì)了如表4-7中的這組測試用例,則其雖然滿足了條件覆蓋,但也只是覆蓋了程序中第一個判定的取假分支c和第二個判定的取真分支d,不能滿足判定覆蓋的要求。

■ 表4-7另一組條件覆蓋測試用例

4. 判定/條件覆蓋

根據(jù)判定/條件覆蓋的基本思想,只需設(shè)計(jì)如表4-8中的兩個測試用例便可以覆蓋4個條件的8種取值以及4個判定分支。

■ 表4-8判定/條件覆蓋測試用例

分析: 從表面上看,判定/條件覆蓋了各個判定中的所有條件的取值,但實(shí)際上,編譯器在檢查含有多個條件的邏輯表達(dá)式時,某些情況下的某些條件將會被其他條件掩蓋。例如,對第一判定(x>3)&&(z<10)來說,必須x>3和z<10這兩個條件同時滿足才能確定該判定為真。如果x>3為假,則編譯器將不再會去檢查z<10這個條件,那么即使這個條件有錯也無法被發(fā)現(xiàn)。對第二個判定(x4)||(y>5)來說,若條件x4滿足,編譯器就會認(rèn)為該判定為真,這時將不會再去檢查y>5,那么同樣也無法發(fā)現(xiàn)這個條件中的錯誤。因此,判定/條件覆蓋也不一定能夠完全檢查出邏輯表達(dá)式中的錯誤。

5. 條件組合覆蓋

對DoWork函數(shù)中的各個判定的條件取值組合加以標(biāo)記。

(1) x>3,z<10記為t1,t2,即第一個判定的取真分支。

(2) x>3,z≥10記為t1,-t2,即第一個判定的取假分支。

(3) x≤3,z<10記為-t1,t2,即第一個判定的取假分支。

(4) x≤3,z≥10記為-t1,-t2,即第一個判定的取假分支。

(5) x==4,y>5記為t3,t4,即第二個判定的取真分支。

(6) x==4,y≤5記為t3,-t4,即第二個判定的取真分支。

(7) x≠4,y>5記為-t3,t4,即第二個判定的取真分支。

(8) x≠4,y<=5記為-t3,-t4,即第二個判定的取假分支。

根據(jù)組合覆蓋的基本思想,以上可得設(shè)計(jì)測試用例如表4-9所示。

■ 表4-9條件組合覆蓋測試用例

分析:表4-9中這組測試用例覆蓋了所有8種條件取值的組合,也覆蓋了所有判定的真假分支,但丟失了一條路徑abe。

6. 路徑覆蓋

根據(jù)路徑覆蓋的基本思想,在滿足組合覆蓋測的測試用例中修改第三個測試用例,則可以實(shí)現(xiàn)路徑覆蓋,如表4-10所示。

■ 表4-10路徑覆蓋測試用例

分析: 雖然前面一組測試用例滿足了路徑覆蓋,但并沒有覆蓋程序中所有的條件組合(丟失了組合3和7),即滿足路徑覆蓋的測試用例并不一定滿足條件組合覆蓋。

最后:下方這份完整的軟件測試視頻學(xué)習(xí)教程已經(jīng)整理上傳完成,朋友們?nèi)绻枰梢宰孕忻赓M(fèi)領(lǐng)取【保證100%免費(fèi)】

這些資料,對于【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!

包括,測試人技術(shù)進(jìn)階路徑圖,50多天的視頻教程、16個項(xiàng)目實(shí)例,30多個測試工具,37份測試文檔,70個軟件測試相關(guān)問題,40篇測試經(jīng)驗(yàn)級文章分享,還有軟件測試面試小程序,求職簡歷的優(yōu)化模板。

加油吧,如果你需要提升技術(shù)儲備,那就行動,在路上總比在起點(diǎn)觀望的要好。一切的迷茫都是因?yàn)橄氲锰喽龅奶伲?/p>

你可以在公眾號:傷心的辣條?! 自行領(lǐng)取一份216頁軟件測試工程師面試寶典文檔資料【免費(fèi)的】。以及相對應(yīng)的視頻學(xué)習(xí)教程免費(fèi)分享!,其中包括了有基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進(jìn)階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等。

現(xiàn)在我邀請你進(jìn)入我們的軟件測試學(xué)習(xí)交流群:【746506216】,備注“入群”, 大家可以一起探討交流軟件測試,共同學(xué)習(xí)軟件測試技術(shù)、面試等軟件測試方方面面,還會有免費(fèi)直播課,收獲更多測試技巧,我們一起進(jìn)階Python自動化測試/測試開發(fā),走向高薪之路。?


軟件測試用例經(jīng)典方法 | 邏輯覆蓋測試法及案例的評論 (共 條)

分享到微博請遵守國家法律
岑溪市| 泸定县| 彭泽县| 濉溪县| 诸城市| 塔河县| 天等县| 旅游| 双鸭山市| 汕头市| 西吉县| 芦溪县| 重庆市| 亳州市| 饶平县| 萨迦县| 乌什县| 涿鹿县| 扬州市| 桓台县| 灵山县| 昌吉市| 麦盖提县| 汽车| 威宁| 乌什县| 夏邑县| 那坡县| 柳州市| 汕尾市| 黑水县| 合川市| 常宁市| 孟津县| 南乐县| 夏邑县| 许昌市| 绍兴县| 长丰县| 滦平县| 读书|