版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
軟件質(zhì)量保證與測試4.3_1邏輯覆蓋第4章白盒測試SoftwareQualityAssuranceandTesting邏輯覆蓋
邏輯覆蓋是白盒測試中主要的動態(tài)測試方法之一,是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的測試技術(shù),是通過對程序邏輯結(jié)構(gòu)的遍歷來實現(xiàn)對程序的測試覆蓋,所謂覆蓋就是作為測試標準的邏輯單元、邏輯分支、邏輯取值都被執(zhí)行到。這一方法要求測試人員對程序的邏輯結(jié)構(gòu)有清楚的了解。邏輯覆蓋的標準有:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋等。邏輯覆蓋
設(shè)有如下一段程序P1:If(x>0ORy>0)thena=10If(x<10ANDy<10)thenb=0其中變量a,b的初始值在其他地方已經(jīng)定義了,都為-1。程序段對應(yīng)的流程圖如圖所示。邏輯覆蓋
下面我們來看一下應(yīng)如何來分別實現(xiàn)語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋和條件組合覆蓋。語句覆蓋:語句覆蓋要求設(shè)計若干個測試用例,使得程序中的每個語句至少都能被執(zhí)行一次。語句覆蓋
對照流程圖,我們來看一下,按照這一標準,程序需要執(zhí)行通過的位置有①③④⑥,而②⑤位置,由于沒有語句,所以不需要覆蓋。
首先我們可能想到的是,可以設(shè)計兩個測試用例,分別覆蓋第一個IF結(jié)構(gòu)有執(zhí)行語句的分支③,和第二個IF結(jié)構(gòu)有執(zhí)行語句的分支④,如:case1:x=1,y=1,覆蓋③;case2:x=-1,y=-1,覆蓋④。這樣即可達到語句覆蓋要求。語句覆蓋
但從節(jié)約測試成本的角度出發(fā),我們可以優(yōu)化一下測試用例設(shè)計,實際上只需要一個測試用例,如:case3:x=8,y=8。即可同時覆蓋①③④⑥,執(zhí)行通過路徑如圖所示。語句覆蓋
語句覆蓋測試執(zhí)行了程序中的每一個語句,似乎能夠比較全面的對程序進行檢驗,但實際上,它并不是一個測試很充分的覆蓋標準,從圖中可以看出,兩個判斷語句的都只執(zhí)行了一個分支,而另外一個分支根本就沒有被執(zhí)行到。語句覆蓋
假設(shè)這一程序段中,兩個判斷語句的邏輯運算符號由于疏忽寫錯了,第一個判斷語句中的“or”錯寫成了“and”,第二個判斷語句中的“and”錯寫成了“or”,我們用測試用例case3來進行測試,則執(zhí)行的路徑仍然是①③④⑥,測試結(jié)果也依然正確,測試沒有能夠發(fā)現(xiàn)程序中的錯誤。語句覆蓋ANDOR語句覆蓋,說起來是每一個語句都執(zhí)行過了,似乎十分可靠,但實際上語句覆蓋是一種比較弱的覆蓋準則。語句覆蓋判定覆蓋
比語句覆蓋稍強的覆蓋標準是判定覆蓋。判定覆蓋是指,設(shè)計若干測試用例,運行被測程序,使得程序中每個判斷的真值結(jié)果和假值結(jié)果都至少出現(xiàn)一次。判定覆蓋又稱為分支覆蓋,因為判斷結(jié)果取真值就會執(zhí)行取真分支,判斷結(jié)果取假值就會執(zhí)行取假分支,每個判斷的真值結(jié)果和假值結(jié)果都至少出現(xiàn)一次,也就相當于每個判斷的取真分支和取假分支至少都經(jīng)歷一次。
仍以前面的程序段P1為例,對照流程圖,按照判定覆蓋標準,程序需要執(zhí)行通過的位置有①②③④⑤⑥。判定覆蓋程序段P1中存在IF語句,由于每個判斷有真假兩種判斷結(jié)果,所以至少需要兩個測試用例。P1中的兩個IF語句是串聯(lián)的,不是嵌套,所以如果設(shè)計合理的話兩個測試用例也確實夠了,如:
case4:x=20,y=20,覆蓋①③⑤⑥;
case5:x=-2,y=-2,覆蓋①②④⑥。這樣即可達到判定覆蓋要求,具體覆蓋情況如表所示。判定覆蓋測試用例編號xy第1個判定表達式x>0ORy>0第2個判定表達式x<10ANDy<10case42020YNcase5-2-2NY判定覆蓋判定覆蓋情況如表所示。
如果測試達到判定覆蓋,則顯然程序流程的所有分支都是會被測試到的,各個分支上的所有語句都會被測試到,所以只要滿足判定覆蓋,就必定會滿足語句覆蓋,這一點從圖中可以直觀的看出來。
判定覆蓋
在判定覆蓋中,如果一個判定表達式中有多個條件,由于我們只關(guān)注這個判斷表達式的最終結(jié)果,而不是每一個條件的判定結(jié)果,所以有的條件可能只取過真值或者假值,而另外一種取值根本就沒有出現(xiàn)過,如果這個條件寫錯了,那么判定覆蓋測試顯然是發(fā)現(xiàn)不了的。判定覆蓋課堂提問
試舉例說明,為什么有時有的邏輯表達式中,一個條件的取值就可以決定整個表達式的取值?
條件覆蓋就是要求判斷表達式中的每一個條件都要至少取得一次真值和一次假值,需要注意的是,每一個條件都要至少取得一次真值和一次假值并不等于每一個判定也都能至少取得一次真值和一次假值,即條件覆蓋并不比判定覆蓋強,兩者的關(guān)注點不同。例如,對于程序段P1,設(shè)計測試用例如下:
case6:x=20,y=-20;
case7:x=-2,y=20。這樣即可達到條件覆蓋要求,具體覆蓋情況如表所示。條件覆蓋測試用例編號xy條件x>0條件y>0條件x<10條件y<10case620-20YNNYcase7-220NYYN
由于case6和case7對第1個IF語句,只覆蓋了Y分支,對第2個IF語句,只覆蓋了N分支,因此并不滿足判定覆蓋。條件覆蓋條件覆蓋情況如表所示。條件/判定覆蓋
條件覆蓋并不比判定覆蓋強,兩者只是關(guān)注點不同,有時會把條件覆蓋和判定覆蓋結(jié)合起來使用,這被稱之為條件/判定覆蓋,它的含義是指:設(shè)計足夠多的測試用例,使得判定表達式中每個條件的真/假取值至少都出現(xiàn)一次,并且每個判定表達式自身的真/假取值也都要至少出現(xiàn)一次。
對于程序段P1,我們在做判定覆蓋時設(shè)計的測試用例:
case4:x=20,y=20;
case5:x=-2,y=-2。實際上也同時是滿足條件/判定覆蓋的,因為每個條件的真/假取值都出現(xiàn)了一次,并且每個判定的真/假取值結(jié)果也都出現(xiàn)了一次,具體覆蓋情況如表所示。條件/判定覆蓋測試用例編號xy條件x>0條件y>0條件x<10條件y<10case42020YYNNcase5-2-2NNYY條件/判定覆蓋情況如表所示。條件/判定覆蓋
再來看一個三角形判定問題的案例,有程序段P2如下:
if((a<b+c)&&(b<a+c)&&(c<a+b))
is_Triangle=true;
else
is_Triangle=false;對該程序段進行測試時,如果要滿足條件/判定覆蓋,則四個條件表達式都要既有true取值,也有false取值。四個條件表達式如表所示。條件/判定覆蓋條件表達式編號條件表達式1a<b+c2b<a+c3c<a+b4(a<b+c)&&(b<a+c)&&(c<a+b)四個條件表達式如表所示。條件/判定覆蓋設(shè)計測試用例如下: case8:a=1,b=1,c=1; case9:a=1,b=2,c=3; case10:a=3,b=1,c=2; case11:a=2,b=3,c=1。即可滿足條件/判定覆蓋,具體覆蓋情況如表所示。條件/判定覆蓋測試用例編號abc條件表達式1條件表達式2條件表達式3條件表達式4Case8111YYYYCase9123YYNNCase10312NYYNCase11231YNYN條件/判定覆蓋條件/判定覆蓋情況如表所示。條件組合覆蓋
條件組合覆蓋,它的含義是:設(shè)計足夠多的測試用例,使得每個判定中條件取值的各種組合都至少出現(xiàn)一次。顯然滿足條件組合覆蓋的測試用例一定也是滿足判定覆蓋、條件覆蓋和條件/判定覆蓋的。
對于程序段P1,由于一個判定中有兩個條件,而兩個條件可能的組合情況有4種,所以,如果要達到條件組合覆蓋,至少需要四個測試用例。如果能夠合理設(shè)計,讓四個測試用例在覆蓋第1個判定四種條件組合的同時也覆蓋第2個判定的四種條件組合,那么四個測試用例就夠了。設(shè)計的測試用例如下:case12:x=50,y=50;case13:x=-5,y=-5;case14:x=50,y=-5;case15:x=-5,y=50;條件組合覆蓋測試用例編號xy第1個判定第2個判定條件x>0條件y>0條件x<10條件y<10case125050YYNNcase13-5-5NNY
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年遂寧工程職業(yè)學(xué)院馬克思主義基本原理概論期末考試模擬題及答案解析(必刷)
- 2025年鄭州理工職業(yè)學(xué)院馬克思主義基本原理概論期末考試模擬題及答案解析(必刷)
- 2025年鄭州西亞斯學(xué)院馬克思主義基本原理概論期末考試模擬題附答案解析(奪冠)
- 2025年錦屏縣招教考試備考題庫含答案解析(必刷)
- 2025年雄縣幼兒園教師招教考試備考題庫帶答案解析
- 2025年青海民族大學(xué)馬克思主義基本原理概論期末考試模擬題附答案解析(必刷)
- 2026年內(nèi)蒙古建筑職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試模擬測試卷帶答案解析
- 2026年四川幼兒師范高等專科學(xué)校單招職業(yè)傾向性測試模擬測試卷附答案解析
- 2026年資源回收公司廢金屬再生工藝研發(fā)管理制度
- 2026年生物科技服務(wù)公司新產(chǎn)品市場推廣管理制度
- 壁球裁判試題及答案
- 2025年配音演員保密合同協(xié)議
- 網(wǎng)絡(luò)銷售人員培訓(xùn)
- 設(shè)備租賃績效考核與激勵方案設(shè)計實施方法規(guī)定
- 合肥市軌道交通集團有限公司招聘筆試題庫及答案2025
- 攝影攝像直播合同范本
- 2026屆天津市南開區(qū)九年級物理第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 《智慧水電廠建設(shè)技術(shù)規(guī)范》
- GB/T 46275-2025中餐評價規(guī)范
- 2025年6月大學(xué)英語四級閱讀試題及答案
- 信訪工作系列知識培訓(xùn)課件
評論
0/150
提交評論