白盒测试方法之逻辑覆盖
單元測(cè)試基本
是指對(duì)軟件中的最小可測(cè)試單元進(jìn)行檢查和驗(yàn)證。單元測(cè)試是軟件測(cè)試中最基礎(chǔ)的測(cè)試,集成測(cè)試、功能測(cè)試和系統(tǒng)測(cè)試都建立在單元測(cè)試之上。單元測(cè)試的對(duì)象是構(gòu)成軟件產(chǎn)品或系統(tǒng)的最小的獨(dú)立單元,如封裝的類或?qū)ο蟆ⅹ?dú)立的函數(shù)、進(jìn)程、子過(guò)程、組件或模塊等。單元測(cè)試的用例設(shè)計(jì)要求
對(duì)于單元測(cè)試用例的設(shè)計(jì)和程序的實(shí)現(xiàn)過(guò)程,主要集中在白盒測(cè)試方法之上,并力求達(dá)到下列測(cè)試要求1.對(duì)程序模塊所有獨(dú)立的執(zhí)行路徑至少要測(cè)試一次。2.對(duì)所有邏輯判定,其結(jié)果為真、假兩種情況至少要測(cè)試一次。3.對(duì)程序進(jìn)行邊界檢查(常見(jiàn)的如數(shù)據(jù)越界檢驗(yàn))。4.檢驗(yàn)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。邏輯覆蓋法
邏輯覆蓋法是白盒測(cè)試中最主要的測(cè)試方法邏輯覆蓋分為語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋,其基本思想不同,產(chǎn)生的測(cè)試用例不同,覆蓋范圍也有所不同以代碼為例介紹一下以下幾種邏輯覆蓋方法:Dim a,b As IntegerDim c As DoubleIf (a > 0 AND b > 0) ThenIf (a>1OR c>1) Then我將代碼邏輯轉(zhuǎn)換為流程圖如下:
語(yǔ)句覆蓋
首先我們來(lái)說(shuō)語(yǔ)句覆蓋:
基本思想:設(shè)計(jì)若干測(cè)試用例,運(yùn)行被測(cè)程序,使程序中的每個(gè)可執(zhí)行語(yǔ)句至少被執(zhí)行一次。
每個(gè)可執(zhí)行語(yǔ)句:每個(gè)語(yǔ)句,那么下圖中執(zhí)行為:1->2->3->4
語(yǔ)句覆蓋的不足:
1.在使用語(yǔ)句覆蓋法進(jìn)行測(cè)試用例設(shè)計(jì)時(shí),能夠使得所有的執(zhí)行語(yǔ)句都被測(cè)試,但是不能準(zhǔn)確判斷運(yùn)算中的邏輯關(guān)系錯(cuò)誤。
例如:在這個(gè)例子中,如果程序?qū)的條件“(a>0 AND b >0)”寫成"(a>0 0R b>0)”,這時(shí)的測(cè)試用例仍然可以覆蓋所有可執(zhí)行語(yǔ)句,但不能發(fā)現(xiàn)其中的邏輯錯(cuò)誤。
判斷覆蓋
基本思想:是使每個(gè)判斷的取真值和取假值都至少經(jīng)歷一次(T代表正確,F代表錯(cuò)誤)如下圖:
編寫判斷測(cè)試用例:
要求:
使用Python Unittest 實(shí)現(xiàn)上述用例
判定-條件覆蓋
基本思想:基本思想:確保設(shè)計(jì)足夠或精巧的測(cè)試用例,可使得判斷條件中所有條件的可能取值至少被執(zhí)行一次,同時(shí),所有判斷的可能結(jié)果也至少被執(zhí)行一次。
判定/條件覆蓋,既要考慮到單個(gè)判定中每個(gè)條件的可能情況(A>1或A≤1,B=0或B≠0,A=2或A≠2,X>1或X≤1),也要考慮到每個(gè)判定的可能情況(路徑ace和abd,或路徑acd和abe)。用例及其遍歷的路徑如下所示:
條件組合覆蓋
基本思想:設(shè)計(jì)足夠的測(cè)試用例,使判斷中每個(gè)條件的所有可能至少出現(xiàn)一次,并且每個(gè)判斷本身的判定結(jié)果也至少出現(xiàn)一次。與判定一條件覆蓋的差別是,條件組合覆蓋不是簡(jiǎn)單地要求每個(gè)條件都出現(xiàn)“真”與“假”兩種結(jié)果,而是要求讓這些結(jié)果的所有可能組合都至少出現(xiàn)一次
滿足多重條件覆蓋準(zhǔn)則的測(cè)試用例,必須覆蓋以下8種組合:
滿足多重條件覆蓋準(zhǔn)則的測(cè)試用例,必須覆蓋以下8種組合:
白盒測(cè)試經(jīng)典案例
總結(jié)
以上是生活随笔為你收集整理的白盒测试方法之逻辑覆盖的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 解决win10搜索框无法搜索本地应用或无
- 下一篇: 逻辑测试题