軟件測試教學(xué)PPT課件
軟件測試教學(xué)PPT課件,軟件測試,教學(xué)PPT課件,軟件,測試,教學(xué),PPT,課件
國家教學(xué)資源庫建設(shè)項(xiàng)目國家教學(xué)資源庫建設(shè)項(xiàng)目單元單元2 白盒測試白盒測試 對(duì)圖形識(shí)別系統(tǒng)的測試對(duì)圖形識(shí)別系統(tǒng)的測試 主講人主講人 翁英萍翁英萍南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試學(xué)習(xí)導(dǎo)航學(xué)習(xí)導(dǎo)航2南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試本單元任務(wù)分解本單元任務(wù)分解3任務(wù)一:對(duì)圖形識(shí)別系統(tǒng)的程序片段按照 邏輯覆蓋方法編寫測試用例 任務(wù)二:對(duì)圖形識(shí)別系統(tǒng)的程序片段進(jìn)行 路徑測試 任務(wù)三:掌握白盒測試法的應(yīng)用策略建議課時(shí):建議課時(shí):8課時(shí)課時(shí) 南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試本單元各任務(wù)的教學(xué)過程本單元各任務(wù)的教學(xué)過程4 項(xiàng)目概述任務(wù)一任務(wù)二任務(wù)三 南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試項(xiàng)目概述項(xiàng)目概述5引例引例l 如何清理面包機(jī)?如何清理面包機(jī)?l不管內(nèi)部,拿水從入口往下灌著沖洗不管內(nèi)部,拿水從入口往下灌著沖洗l將面包機(jī)拆開一點(diǎn)點(diǎn)的查看有無銹跡污跡,逐個(gè)將面包機(jī)拆開一點(diǎn)點(diǎn)的查看有無銹跡污跡,逐個(gè)清理清理 l白盒測試白盒測試 測試者針對(duì)可見代碼進(jìn)行的測試者針對(duì)可見代碼進(jìn)行的一種測試一種測試 南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試項(xiàng)目概述項(xiàng)目概述6常用白盒測試方法常用白盒測試方法l邏輯覆蓋邏輯覆蓋l是通過對(duì)程序邏輯結(jié)構(gòu)的遍歷實(shí)現(xiàn)程序的覆蓋l路徑測試法路徑測試法l在程序控制流圖的基礎(chǔ)上,通過分析控制流圖的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑的集合,然后據(jù)此設(shè)計(jì)測試用例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試項(xiàng)目概述項(xiàng)目概述7待測程序說明待測程序說明l圖形識(shí)別系統(tǒng)圖形識(shí)別系統(tǒng)l根據(jù)輸入的信息確定最終圖形的種類根據(jù)輸入的信息確定最終圖形的種類l主要測試的程序片段主要測試的程序片段-三角形問題三角形問題l接受輸入三個(gè)整數(shù)接受輸入三個(gè)整數(shù)a a、b b、c c,分別作為三角形的三條邊,通,分別作為三角形的三條邊,通過程序判斷這三條邊是否能構(gòu)成三角形?如果能構(gòu)成三角形,過程序判斷這三條邊是否能構(gòu)成三角形?如果能構(gòu)成三角形,則判斷三角形的類型(等邊三角形、等腰三角形、一般三角則判斷三角形的類型(等邊三角形、等腰三角形、一般三角形)。要求輸入三個(gè)整數(shù)形)。要求輸入三個(gè)整數(shù)a a、b b、c c,必須滿足以下條件:,必須滿足以下條件:1a2001a200;1b2001b200;1c2001c200。l本項(xiàng)目主要針對(duì)該程序片段根據(jù)白盒測試的各種要求本項(xiàng)目主要針對(duì)該程序片段根據(jù)白盒測試的各種要求編寫測試用例。編寫測試用例。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)一:邏輯覆蓋測試任務(wù)一:邏輯覆蓋測試8 任務(wù)簡介 任務(wù)分析 相關(guān)知識(shí)點(diǎn) 任務(wù)實(shí)施 任務(wù)小結(jié) 拓展訓(xùn)練南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)簡介任務(wù)簡介9任務(wù)簡介任務(wù)簡介l對(duì)圖形識(shí)別系統(tǒng)的程序片段按照邏輯覆蓋方法編寫測對(duì)圖形識(shí)別系統(tǒng)的程序片段按照邏輯覆蓋方法編寫測試用例試用例void IsTri(int a,int b,int c)1if(a+b=c)|(a+c=b)|(b+c=a)2printf(不能構(gòu)成三角形);3else4if(a=b)|(b=c)|(a=c)5if(a=b)&(b=c)6printf(等邊三角形);7else8printf(等腰三角形);910else11printf(一般三角形);南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)分析任務(wù)分析10任務(wù)準(zhǔn)備任務(wù)準(zhǔn)備一、理解白盒測試和邏輯覆蓋測試的特點(diǎn)一、理解白盒測試和邏輯覆蓋測試的特點(diǎn)l白盒測試:針對(duì)被測軟件的內(nèi)部是如何進(jìn)行工作白盒測試:針對(duì)被測軟件的內(nèi)部是如何進(jìn)行工作的測試的測試l邏輯覆蓋:關(guān)注點(diǎn)在于條件判定表達(dá)式本身的復(fù)邏輯覆蓋:關(guān)注點(diǎn)在于條件判定表達(dá)式本身的復(fù)雜度雜度二、程序的邏輯結(jié)構(gòu)二、程序的邏輯結(jié)構(gòu)l流程圖流程圖l判斷條件判斷條件l執(zhí)行路徑執(zhí)行路徑南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)分析任務(wù)分析11程序代碼程序代碼void IsTri(int a,int b,int c)1if(a+b=c)|(a+c=b)|(b+c=a)2printf(不能構(gòu)成三角形不能構(gòu)成三角形);3else4if(a=b)|(b=c)|(a=c)5if(a=b)&(b=c)6printf(等邊三角形等邊三角形);7else8printf(等腰三角形等腰三角形);910else11printf(一般三角形一般三角形);南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)分析任務(wù)分析12流程圖流程圖/判斷條件判斷條件/執(zhí)行路徑執(zhí)行路徑T1:a+b=cT2:a+c=bT3:b+c1b3TTTTTFTFFTFTFFFF28例例l寫出每個(gè)條件組合寫出每個(gè)條件組合l寫出條件組合的真值表寫出條件組合的真值表l據(jù)此寫出測試用例據(jù)此寫出測試用例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試修正條件判定覆蓋修正條件判定覆蓋29定義定義l修正判定條件覆蓋單元的入口與出口必須至少被調(diào)用修正判定條件覆蓋單元的入口與出口必須至少被調(diào)用一次,程序中判斷的每一個(gè)分支必須至少被執(zhí)行一次。一次,程序中判斷的每一個(gè)分支必須至少被執(zhí)行一次。對(duì)于程序中通過邏輯運(yùn)算對(duì)于程序中通過邏輯運(yùn)算(AND(AND,OROR等等)組成判斷的基本組成判斷的基本布爾條件,每個(gè)條件必須取遍所有可能的值且每一個(gè)布爾條件,每個(gè)條件必須取遍所有可能的值且每一個(gè)條件對(duì)判斷的結(jié)果具有獨(dú)立的作用。條件對(duì)判斷的結(jié)果具有獨(dú)立的作用。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試修正條件判定覆蓋修正條件判定覆蓋30例例a1b1 and b2TTTTFFFTFFFF南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實(shí)施任務(wù)實(shí)施31步驟步驟l實(shí)現(xiàn)案例的語句覆蓋測試用例編寫實(shí)現(xiàn)案例的語句覆蓋測試用例編寫l實(shí)現(xiàn)案例的判定覆蓋測試用例編寫實(shí)現(xiàn)案例的判定覆蓋測試用例編寫l實(shí)現(xiàn)案例的條件覆蓋測試用例編寫實(shí)現(xiàn)案例的條件覆蓋測試用例編寫l實(shí)現(xiàn)案例的條件實(shí)現(xiàn)案例的條件/判定覆蓋測試用例編寫判定覆蓋測試用例編寫l實(shí)現(xiàn)案例的條件組合覆蓋測試用例編寫實(shí)現(xiàn)案例的條件組合覆蓋測試用例編寫l實(shí)現(xiàn)案例的修正的條件實(shí)現(xiàn)案例的修正的條件/判定覆蓋測試用例編寫判定覆蓋測試用例編寫南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試語句覆蓋實(shí)現(xiàn)語句覆蓋實(shí)現(xiàn)32說明說明l語句覆蓋:保證程序的每一條可執(zhí)行語句至少執(zhí)行一語句覆蓋:保證程序的每一條可執(zhí)行語句至少執(zhí)行一次次l案例流程圖案例流程圖l要滿足語句覆蓋,每個(gè)路徑均需執(zhí)行要滿足語句覆蓋,每個(gè)路徑均需執(zhí)行南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試語句覆蓋實(shí)現(xiàn)語句覆蓋實(shí)現(xiàn)ID輸入輸入預(yù)期輸出預(yù)期輸出通過路通過路徑徑語句覆語句覆蓋率蓋率abcLC-001324一般三角形一般三角形路徑路徑1100%LC-002223等腰三角形等腰三角形路徑路徑2LC-003222等邊三角形等邊三角形路徑路徑3LC-004124不是三角形不是三角形路徑路徑433測試用例測試用例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試語句覆蓋實(shí)現(xiàn)語句覆蓋實(shí)現(xiàn)34測試分析測試分析l優(yōu)點(diǎn):優(yōu)點(diǎn):l可以直觀地從源代碼得到測試用例,無需仔細(xì)分可以直觀地從源代碼得到測試用例,無需仔細(xì)分析每個(gè)判定節(jié)點(diǎn)析每個(gè)判定節(jié)點(diǎn)l缺點(diǎn):缺點(diǎn):1.1.關(guān)注語句而非判定節(jié)點(diǎn)關(guān)注語句而非判定節(jié)點(diǎn)2.2.邏輯判定條件存在屏蔽作用邏輯判定條件存在屏蔽作用3.3.對(duì)隱式分支無效對(duì)隱式分支無效南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試判定覆蓋實(shí)現(xiàn)判定覆蓋實(shí)現(xiàn)35說明說明l判定覆蓋:保證程序中每個(gè)判定節(jié)點(diǎn)的取真和取假分判定覆蓋:保證程序中每個(gè)判定節(jié)點(diǎn)的取真和取假分支至少執(zhí)行一次。支至少執(zhí)行一次。l案例流程圖案例流程圖l從本例來看,由于每種判定取真和取假分支都有獨(dú)立從本例來看,由于每種判定取真和取假分支都有獨(dú)立的語句,因此,對(duì)本例來說,判定覆蓋和語句覆蓋的的語句,因此,對(duì)本例來說,判定覆蓋和語句覆蓋的要求一致要求一致南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試判定覆蓋實(shí)現(xiàn)判定覆蓋實(shí)現(xiàn)ID輸入輸入預(yù)期輸出預(yù)期輸出通過路通過路徑徑判定覆蓋判定覆蓋率率abcLC-001324一般三角形一般三角形路徑路徑1100%LC-002223等腰三角形等腰三角形路徑路徑2LC-003222等邊三角形等邊三角形路徑路徑3LC-004124不是三角形不是三角形路徑路徑436測試用例測試用例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試判定覆蓋實(shí)現(xiàn)判定覆蓋實(shí)現(xiàn)37測試分析測試分析l判定覆蓋比語句覆蓋有更強(qiáng)的測試能力判定覆蓋比語句覆蓋有更強(qiáng)的測試能力l單分支條件結(jié)構(gòu):判定覆蓋比語句覆蓋會(huì)增加幾乎一倍的測單分支條件結(jié)構(gòu):判定覆蓋比語句覆蓋會(huì)增加幾乎一倍的測試路徑。試路徑。l雙分支或多分支條:判定覆蓋和語句覆蓋測試路徑類似或相雙分支或多分支條:判定覆蓋和語句覆蓋測試路徑類似或相同。同。l判定覆蓋不需要仔細(xì)分析每個(gè)判定節(jié)點(diǎn)。并未深入到判定覆蓋不需要仔細(xì)分析每個(gè)判定節(jié)點(diǎn)。并未深入到測試符合判定表達(dá)式的細(xì)節(jié),并未測試到每個(gè)簡單邏測試符合判定表達(dá)式的細(xì)節(jié),并未測試到每個(gè)簡單邏輯判定條件的正確性輯判定條件的正確性l判定覆蓋能夠避免語句覆蓋的第判定覆蓋能夠避免語句覆蓋的第3 3個(gè)缺點(diǎn)個(gè)缺點(diǎn)(對(duì)隱式分支對(duì)隱式分支無效無效)。但仍然不能避免其余的。但仍然不能避免其余的2 2個(gè)缺點(diǎn)。個(gè)缺點(diǎn)。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件覆蓋實(shí)現(xiàn)條件覆蓋實(shí)現(xiàn)38說明說明l條件覆蓋:保證程序中每個(gè)復(fù)合判定表達(dá)式的每個(gè)簡條件覆蓋:保證程序中每個(gè)復(fù)合判定表達(dá)式的每個(gè)簡單判定條件的取真和取假情況至少執(zhí)行一次。單判定條件的取真和取假情況至少執(zhí)行一次。l案例流程圖和條件表達(dá)式案例流程圖和條件表達(dá)式l從本例來看,要滿足條件覆蓋,就是要使得基本邏輯從本例來看,要滿足條件覆蓋,就是要使得基本邏輯判定條件判定條件T1T6T1T6的取真和取假分支至少執(zhí)行一次的取真和取假分支至少執(zhí)行一次南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件覆蓋實(shí)現(xiàn)條件覆蓋實(shí)現(xiàn)組組合合T1T2T3T1|T2|T3T4T5T6T4|T5|T6T4&T5通過路通過路徑徑1TFFT路徑路徑42FTFT路徑路徑43FFTT路徑路徑44FFFFTTTTT路徑路徑35FFFFFFFFF路徑路徑139條件取值條件取值南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件覆蓋實(shí)現(xiàn)條件覆蓋實(shí)現(xiàn)40測試用例測試用例ID輸入輸入預(yù)期輸出預(yù)期輸出通過路通過路徑徑條件覆條件覆蓋率蓋率abcLC-004124不是三角形不是三角形路徑路徑4100%LC-005142不是三角形不是三角形路徑路徑4LC-006412不是三角形不是三角形路徑路徑4LC-003222等邊三角形等邊三角形路徑路徑3LC-001324一般三角形一般三角形路徑路徑1南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件覆蓋實(shí)現(xiàn)條件覆蓋實(shí)現(xiàn)41測試分析測試分析l條件覆蓋通過仔細(xì)分析每個(gè)判定節(jié)點(diǎn),增加了測試路條件覆蓋通過仔細(xì)分析每個(gè)判定節(jié)點(diǎn),增加了測試路徑,一定程度上解決了語句覆蓋和判定覆蓋的第徑,一定程度上解決了語句覆蓋和判定覆蓋的第1 1、3 3兩個(gè)缺點(diǎn),但是對(duì)于第兩個(gè)缺點(diǎn),但是對(duì)于第2 2個(gè)缺點(diǎn)仍然無法解決。個(gè)缺點(diǎn)仍然無法解決。l條件覆蓋所用的測試用例,一般而言會(huì)多于語句覆蓋條件覆蓋所用的測試用例,一般而言會(huì)多于語句覆蓋和判定覆蓋,但是滿足了條件覆蓋,不一定能滿足判和判定覆蓋,但是滿足了條件覆蓋,不一定能滿足判定覆蓋,甚至也不能滿足語句覆蓋,正如本例所示就定覆蓋,甚至也不能滿足語句覆蓋,正如本例所示就是如此。是如此。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件條件/判定覆蓋實(shí)現(xiàn)判定覆蓋實(shí)現(xiàn)42說明說明l條件條件/判定語句覆蓋:保證程序的每一個(gè)判定節(jié)點(diǎn)取判定語句覆蓋:保證程序的每一個(gè)判定節(jié)點(diǎn)取真和取假分支至少執(zhí)行一次,且每個(gè)簡單判定條件的真和取假分支至少執(zhí)行一次,且每個(gè)簡單判定條件的取真和取假也至少執(zhí)行一次。取真和取假也至少執(zhí)行一次。l案例流程圖和條件表達(dá)式案例流程圖和條件表達(dá)式l從本例來看,要滿足條件從本例來看,要滿足條件/判定覆蓋,只需要結(jié)合上判定覆蓋,只需要結(jié)合上面的條件覆蓋測試用例和判定覆蓋測試用例即可。面的條件覆蓋測試用例和判定覆蓋測試用例即可。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件條件/判定覆蓋實(shí)現(xiàn)判定覆蓋實(shí)現(xiàn)ID輸入輸入預(yù)期輸出預(yù)期輸出通過路通過路徑徑條件條件/判判定覆蓋率定覆蓋率abcLC-001324一般三角形一般三角形路徑路徑1100%LC-002223等腰三角形等腰三角形路徑路徑2LC-003222等邊三角形等邊三角形路徑路徑3LC-004124不是三角形不是三角形路徑路徑4LC-005142不是三角形不是三角形路徑路徑4LC-006412不是三角形不是三角形路徑路徑443測試用例測試用例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件條件/判定覆蓋實(shí)現(xiàn)判定覆蓋實(shí)現(xiàn)44測試分析測試分析l理論上看,判定理論上看,判定/條件覆蓋是較為完善的覆蓋指標(biāo),條件覆蓋是較為完善的覆蓋指標(biāo),它彌補(bǔ)了判定覆蓋和條件覆蓋的不足,但該指標(biāo)包含它彌補(bǔ)了判定覆蓋和條件覆蓋的不足,但該指標(biāo)包含的設(shè)計(jì)工作量較大,且需要較好的設(shè)計(jì)技巧的設(shè)計(jì)工作量較大,且需要較好的設(shè)計(jì)技巧南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件組合覆蓋實(shí)現(xiàn)條件組合覆蓋實(shí)現(xiàn)45說明說明l條件組合覆蓋:保證程序的每個(gè)判定節(jié)點(diǎn)中所有簡單條件組合覆蓋:保證程序的每個(gè)判定節(jié)點(diǎn)中所有簡單判定條件的各種可能取值的組合應(yīng)至少執(zhí)行一次。判定條件的各種可能取值的組合應(yīng)至少執(zhí)行一次。l案例流程圖和條件表達(dá)式案例流程圖和條件表達(dá)式l從本例來看,一共有從本例來看,一共有3 3個(gè)判定節(jié)點(diǎn),其中第個(gè)判定節(jié)點(diǎn),其中第2 2個(gè)判定節(jié)個(gè)判定節(jié)點(diǎn)包含了第點(diǎn)包含了第3 3個(gè)判定節(jié)點(diǎn)的簡單判定條件。因此我們只個(gè)判定節(jié)點(diǎn)的簡單判定條件。因此我們只需考慮前兩個(gè)判定節(jié)點(diǎn)的簡單判定條件的組合。需考慮前兩個(gè)判定節(jié)點(diǎn)的簡單判定條件的組合。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件組合覆蓋實(shí)現(xiàn)條件組合覆蓋實(shí)現(xiàn)46條件條件T1T3T1T3的組合的組合組合組合T1T2T3T1|T2|T3通過路徑通過路徑說明說明1TFFT路徑42FTFT路徑43FFTT路徑44FTT-不可能5TFT-不可能6TTF-不可能7TTT-不可能8FFFF其他路徑南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件組合覆蓋實(shí)現(xiàn)條件組合覆蓋實(shí)現(xiàn)47條件條件T4T6T4T6的組合的組合組合組合T4T5T6T4|T5|T6T4&T5通過路通過路徑徑說明說明1TFFTF路徑2T1T3為F2FTFTF路徑2T1T3為F3FFTTF路徑2T1T3為F4FTT-不可能5TFT-不可能6TTF-不可能7TTTTT路徑3T1T3為F8FFFFF路徑1T1T3為F南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件組合覆蓋實(shí)現(xiàn)條件組合覆蓋實(shí)現(xiàn)48最終條件組合最終條件組合組合組合 T1T2T3T1|T2|T3T4T5T6T4|T5|T6T4&T5通過路通過路徑徑1TFFT路徑路徑42FTFT路徑路徑43FFTT路徑路徑44FFFFTTTTT路徑路徑35FFFFFFFFF路徑路徑16FFFFTFFTF路徑路徑27FFFFFTFTF路徑路徑28FFFFFFTTF路徑路徑2南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件組合覆蓋實(shí)現(xiàn)條件組合覆蓋實(shí)現(xiàn)ID輸入輸入預(yù)期輸出預(yù)期輸出通過路通過路徑徑組合覆蓋組合覆蓋率率abcLC-004124不是三角形不是三角形路徑路徑4100%LC-005142不是三角形不是三角形路徑路徑4LC-006412不是三角形不是三角形路徑路徑4LC-003222等邊三角形等邊三角形路徑路徑3LC-001324一般三角形一般三角形路徑路徑1LC-002223等腰三角形等腰三角形路徑路徑2LC-007322等腰三角形等腰三角形路徑路徑2LC-008232等腰三角形等腰三角形路徑路徑249測試用例測試用例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件組合覆蓋實(shí)現(xiàn)條件組合覆蓋實(shí)現(xiàn)50測試分析測試分析l從理論上看,條件組合覆蓋是較好的覆蓋指標(biāo),因?yàn)閺睦碚撋峡?,條件組合覆蓋是較好的覆蓋指標(biāo),因?yàn)樗欢M足判定覆蓋、條件覆蓋和判定它一定滿足判定覆蓋、條件覆蓋和判定/條件覆蓋。條件覆蓋。l然而當(dāng)判定表達(dá)式較為復(fù)雜的時(shí)候,條件組合覆蓋的然而當(dāng)判定表達(dá)式較為復(fù)雜的時(shí)候,條件組合覆蓋的測試用例規(guī)模是相當(dāng)大的。測試用例規(guī)模是相當(dāng)大的。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試修正的條件修正的條件/判定覆蓋判定覆蓋51說明說明l修正條件判定覆蓋(修正條件判定覆蓋(Modified Condition/Decision Modified Condition/Decision CoverageCoverage),簡稱),簡稱MC/DCMC/DC,要求在滿足判定,要求在滿足判定/條件覆蓋條件覆蓋的基礎(chǔ)上,每個(gè)簡單邏輯判定條件都應(yīng)能夠獨(dú)立影響的基礎(chǔ)上,每個(gè)簡單邏輯判定條件都應(yīng)能夠獨(dú)立影響整個(gè)判定表達(dá)式。整個(gè)判定表達(dá)式。l案例流程圖和條件表達(dá)式案例流程圖和條件表達(dá)式南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試修正的條件修正的條件/判定覆蓋判定覆蓋52說明說明l通俗的說,通俗的說,MC/DCMC/DC首先要求實(shí)現(xiàn)條件覆蓋、判定覆蓋,首先要求實(shí)現(xiàn)條件覆蓋、判定覆蓋,在此基礎(chǔ)上,對(duì)于每一個(gè)條件在此基礎(chǔ)上,對(duì)于每一個(gè)條件C C,要求存在符合以下條,要求存在符合以下條件的兩個(gè)用例:件的兩個(gè)用例:1 1)條件)條件C C所在判定內(nèi)的所有條件,除條件所在判定內(nèi)的所有條件,除條件C C外,其外,其他條件的取值完全相同;他條件的取值完全相同;2 2)條件)條件C C的取值相反;的取值相反;3 3)判定的計(jì)算結(jié)果相反。)判定的計(jì)算結(jié)果相反。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試修正的條件修正的條件/判定覆蓋判定覆蓋53條件條件T1T3T1T3的組合的組合組合組合T1T2T3T1|T2|T3通過路徑通過路徑說明說明1TFFT路徑42FTFT路徑43FFTT路徑44FTT-不可能5TFT-不可能6TTF-不可能7TTT-不可能8FFFF其他路徑T1:組合1,組合8T2:組合2,組合8T3:組合3,組合8南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試修正的條件修正的條件/判定覆蓋判定覆蓋54條件條件T4T6T4T6的組合的組合組合組合T4T5T6T4|T5|T6T4&T5通過路通過路徑徑說明說明1TFFTF路徑2T1T3為F2FTFTF路徑2T1T3為F3FFTTF路徑2T1T3為F4FTT-不可能5TFT-不可能6TTF-不可能7TTTTT路徑3T1T3為F8FFFFF路徑1T1T3為FT4|T5|T6:組合1、2、3與組合8T4&T5:組合1、2和組合7南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試修正的條件修正的條件/判定覆蓋判定覆蓋ID輸入輸入預(yù)期輸出預(yù)期輸出通過路通過路徑徑MC/DC覆蓋率覆蓋率abcLC-004124不是三角形不是三角形路徑路徑4100%LC-005142不是三角形不是三角形路徑路徑4LC-006412不是三角形不是三角形路徑路徑4LC-003222等邊三角形等邊三角形路徑路徑3LC-001324一般三角形一般三角形路徑路徑1LC-002223等腰三角形等腰三角形路徑路徑2LC-007322等腰三角形等腰三角形路徑路徑2LC-008232等腰三角形等腰三角形路徑路徑255測試用例測試用例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試修正的條件修正的條件/判定覆蓋判定覆蓋56測試分析測試分析l修正判定修正判定/條件覆蓋繼承了條件組合覆蓋的優(yōu)點(diǎn):條件覆蓋繼承了條件組合覆蓋的優(yōu)點(diǎn):1 1、測試用例數(shù)量的增加是線性的、測試用例數(shù)量的增加是線性的2 2、對(duì)操作數(shù)及非等式條件變化反應(yīng)敏感、對(duì)操作數(shù)及非等式條件變化反應(yīng)敏感3 3、具有更高的目標(biāo)碼覆蓋率、具有更高的目標(biāo)碼覆蓋率l修正的判定修正的判定/條件覆蓋通過消除測試用例之間的冗余,條件覆蓋通過消除測試用例之間的冗余,達(dá)到降低測試用例規(guī)模的目的,但其分析過程仍然是達(dá)到降低測試用例規(guī)模的目的,但其分析過程仍然是較為繁瑣的。較為繁瑣的。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)小結(jié)任務(wù)小結(jié)571 11.1.邏輯覆蓋主要針對(duì)邏輯判定表達(dá)式展開測試,考查邏輯覆蓋主要針對(duì)邏輯判定表達(dá)式展開測試,考查程序代碼中所有邏輯值均需測試真值和假值的情況程序代碼中所有邏輯值均需測試真值和假值的情況2.2.邏輯覆蓋主要包括邏輯覆蓋主要包括6 6個(gè)指標(biāo),按照由弱到強(qiáng)依次為:個(gè)指標(biāo),按照由弱到強(qiáng)依次為:l語句覆蓋語句覆蓋l判定覆蓋判定覆蓋l條件覆蓋條件覆蓋l判定判定/條件覆蓋條件覆蓋l條件組合覆蓋條件組合覆蓋l修正的判定修正的判定/條件覆蓋。條件覆蓋。但每個(gè)指標(biāo)都無法保證但每個(gè)指標(biāo)都無法保證100%100%的覆蓋。的覆蓋。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)小結(jié)任務(wù)小結(jié)582 23.3.因受到因受到“與與”、“或或”關(guān)系的限制,判斷條件之間關(guān)系的限制,判斷條件之間存在屏蔽作用,設(shè)計(jì)測試用例時(shí)要充分注意這一點(diǎn)。存在屏蔽作用,設(shè)計(jì)測試用例時(shí)要充分注意這一點(diǎn)。4.4.在實(shí)際項(xiàng)目中,由于程序內(nèi)部的邏輯存在不確定性在實(shí)際項(xiàng)目中,由于程序內(nèi)部的邏輯存在不確定性和無窮性,尤其對(duì)于大規(guī)模復(fù)雜軟件,不必采用所和無窮性,尤其對(duì)于大規(guī)模復(fù)雜軟件,不必采用所有的覆蓋指標(biāo),而應(yīng)根據(jù)實(shí)際情況選擇合適的覆蓋有的覆蓋指標(biāo),而應(yīng)根據(jù)實(shí)際情況選擇合適的覆蓋指標(biāo)指標(biāo)5.5.常見的覆蓋指標(biāo):常見的覆蓋指標(biāo):l語句覆蓋率:語句覆蓋率:100%100%l 判定覆蓋率:判定覆蓋率:80%80%以上以上 l 路徑覆蓋率:路徑覆蓋率:100%100%南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試public boolean isLeap(int year)boolean leap;if(year%4=0)if(year%100=0)if(year%400=0)leap=true;else leap=false;else leap=true;else leap=false;return leap;拓展訓(xùn)練拓展訓(xùn)練59進(jìn)一步練習(xí)進(jìn)一步練習(xí)l請用邏輯覆蓋法對(duì)右請用邏輯覆蓋法對(duì)右側(cè)的判斷閏年的側(cè)的判斷閏年的javajava代碼段設(shè)計(jì)測試用例。代碼段設(shè)計(jì)測試用例。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)二:路徑測試任務(wù)二:路徑測試60 任務(wù)簡介 任務(wù)分析 相關(guān)知識(shí)點(diǎn) 任務(wù)實(shí)施 任務(wù)小結(jié) 拓展訓(xùn)練南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)簡介任務(wù)簡介611 1l本任務(wù)主要學(xué)習(xí)采用基本路徑測試法和循環(huán)測試法來本任務(wù)主要學(xué)習(xí)采用基本路徑測試法和循環(huán)測試法來設(shè)計(jì)測試用例。設(shè)計(jì)測試用例。l用路徑測試方法(基路徑測試法和循環(huán)測試法)對(duì)下用路徑測試方法(基路徑測試法和循環(huán)測試法)對(duì)下頁的頁的c+c+代碼進(jìn)行測試。代碼的功能是:輸入三個(gè)整數(shù)代碼進(jìn)行測試。代碼的功能是:輸入三個(gè)整數(shù)a a、b b、c c,分別作為三角形的三條邊,通過調(diào)用程序判,分別作為三角形的三條邊,通過調(diào)用程序判斷這三條邊是否能構(gòu)成三角形?如果能構(gòu)成三角形,斷這三條邊是否能構(gòu)成三角形?如果能構(gòu)成三角形,則判斷三角形的類型(等邊三角形、等腰三角形、一則判斷三角形的類型(等邊三角形、等腰三角形、一般三角形)。要求輸入三個(gè)整數(shù)般三角形)。要求輸入三個(gè)整數(shù)a a、b b、c c,必須滿足以,必須滿足以下條件:下條件:1a2001a200;1b2001b200;1c2001c200。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)簡介任務(wù)簡介622 2 void input(int num,int n)1int a;2for(int i=0;in;i+)3 do4 couta;6 while(a200);7 numi=a;89南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)分析任務(wù)分析63路徑測試的特點(diǎn)路徑測試的特點(diǎn)l從廣義的角度講,任何有關(guān)路徑分析的測試都可以被從廣義的角度講,任何有關(guān)路徑分析的測試都可以被成為路徑測試。這里給出路徑測試的最簡單描述:路成為路徑測試。這里給出路徑測試的最簡單描述:路徑測試就是從一個(gè)程序的入口開始,執(zhí)行所經(jīng)歷的各徑測試就是從一個(gè)程序的入口開始,執(zhí)行所經(jīng)歷的各個(gè)語句的完整過程。個(gè)語句的完整過程。l路徑測試是白盒測試最為典型的問題,完成路經(jīng)測試路徑測試是白盒測試最為典型的問題,完成路經(jīng)測試的理想情況是做到路徑覆蓋。但從路徑覆蓋的討論中的理想情況是做到路徑覆蓋。但從路徑覆蓋的討論中已經(jīng)得知,對(duì)于比較簡單的程序?qū)崿F(xiàn)路徑測試是可能已經(jīng)得知,對(duì)于比較簡單的程序?qū)崿F(xiàn)路徑測試是可能做到的,而對(duì)于程序中出現(xiàn)較多個(gè)判定和較多個(gè)循環(huán),做到的,而對(duì)于程序中出現(xiàn)較多個(gè)判定和較多個(gè)循環(huán),則路徑數(shù)目將會(huì)急劇增加,不可能實(shí)現(xiàn)路徑覆蓋。則路徑數(shù)目將會(huì)急劇增加,不可能實(shí)現(xiàn)路徑覆蓋。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)分析任務(wù)分析64路徑測試的方法路徑測試的方法l基路徑測試方法:在程序控制流圖的基礎(chǔ)上,通過分基路徑測試方法:在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計(jì)測試用例的方法。從而設(shè)計(jì)測試用例的方法。l循環(huán)測試方法:重點(diǎn)檢查循環(huán)結(jié)構(gòu)的有效性。循環(huán)測試方法:重點(diǎn)檢查循環(huán)結(jié)構(gòu)的有效性。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試相關(guān)知識(shí)點(diǎn)相關(guān)知識(shí)點(diǎn)65知識(shí)點(diǎn)列表知識(shí)點(diǎn)列表l基路徑測試l循環(huán)測試南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試66定義定義l基本路徑測試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計(jì)測試用例的方法。l設(shè)計(jì)出的測試用例要保證在測試中程序的每個(gè)可執(zhí)行語句至少執(zhí)行一次。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試控制流圖控制流圖67定義定義l程序的控制流圖:描述程序控制流的一種圖示方法。l流圖只有2種圖形符號(hào):l圖中的每一個(gè)圓稱為流圖的結(jié)點(diǎn),代表一條或多條語句。l流圖中的箭頭稱為邊或連接,代表控制流南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試控制流圖控制流圖68注意事項(xiàng)注意事項(xiàng)l在選擇或多分支結(jié)構(gòu)中,分支的匯聚處應(yīng)有一個(gè)匯聚結(jié)點(diǎn)。l邊和結(jié)點(diǎn)圈定的區(qū)域叫做區(qū)域,當(dāng)對(duì)區(qū)域計(jì)數(shù)時(shí),圖形外的區(qū)域也應(yīng)記為一個(gè)區(qū)域。l如果判斷中的條件表達(dá)式是由一個(gè)或多個(gè)邏輯運(yùn)算符(OR,AND,NAND,NOR)連接的復(fù)合條件表達(dá)式,則需要改為一系列只有單條件的嵌套的判斷。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試控制流圖控制流圖69區(qū)域計(jì)數(shù)舉例區(qū)域計(jì)數(shù)舉例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試控制流圖控制流圖70復(fù)合條件復(fù)合條件1 if a or b2 x3 else4 y南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試控制流圖控制流圖71獨(dú)立路徑獨(dú)立路徑l至少沿一條新的邊移動(dòng)的路徑。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試72舉例舉例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試73步驟步驟1.畫出程序的控制流圖2.2.計(jì)算計(jì)算程序圈復(fù)雜度3.導(dǎo)出獨(dú)立路徑4.準(zhǔn)備測試用例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試74步驟步驟1 1南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試75步驟步驟2 2l圈復(fù)雜度是一種為程序邏輯復(fù)雜性提供定量測度的軟圈復(fù)雜度是一種為程序邏輯復(fù)雜性提供定量測度的軟件度量,將該度量用于計(jì)算程序的基本的獨(dú)立路徑數(shù)件度量,將該度量用于計(jì)算程序的基本的獨(dú)立路徑數(shù)目,為確保所有語句至少執(zhí)行一次的測試數(shù)量的上界。目,為確保所有語句至少執(zhí)行一次的測試數(shù)量的上界。獨(dú)立路徑必須包含一條在定義之前不曾用到的邊。獨(dú)立路徑必須包含一條在定義之前不曾用到的邊。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試76步驟步驟2 2l有以下三種方法計(jì)算圈復(fù)雜度:有以下三種方法計(jì)算圈復(fù)雜度:l流圖中封閉區(qū)域的數(shù)量流圖中封閉區(qū)域的數(shù)量+1+1個(gè)開放區(qū)域個(gè)開放區(qū)域=總的區(qū)域總的區(qū)域數(shù)數(shù)=圈復(fù)雜度圈復(fù)雜度l給定流圖給定流圖G G的圈復(fù)雜度的圈復(fù)雜度V(G)V(G),定義為,定義為V(G)=E-N+2V(G)=E-N+2,E E是流圖中邊的數(shù)量,是流圖中邊的數(shù)量,N N是流圖中結(jié)點(diǎn)的數(shù)量是流圖中結(jié)點(diǎn)的數(shù)量;l給定流圖給定流圖G G的圈復(fù)雜度的圈復(fù)雜度V(G)V(G),定義為,定義為V(G)=P+1V(G)=P+1,P P是流圖是流圖G G中判定結(jié)點(diǎn)的數(shù)量。中判定結(jié)點(diǎn)的數(shù)量。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試77步驟步驟2 2南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試78步驟步驟3 3l獨(dú)立路徑是指,和其他的獨(dú)立路徑相比,至少引入一個(gè)新處理語句或一個(gè)新判斷的程序通路。lV(G)值正好等于該程序的獨(dú)立路徑的條數(shù)。l得出得出4 4條獨(dú)立路徑條獨(dú)立路徑路徑1:4-14路徑2:4-6-7-14路徑3:4-6-8-10-13-4-14路徑4:4-6-8-11-13-4-14南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試79步驟步驟4 4南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試循環(huán)測試循環(huán)測試80定義和分類定義和分類l循環(huán)測試的目的就是檢查循環(huán)結(jié)構(gòu)的有效性。l循環(huán)測試是一種白盒測試技術(shù),它專注于測試循環(huán)結(jié)構(gòu)的有效性。l在結(jié)構(gòu)化的程序中通常只有 3 種循環(huán),即 l簡單循環(huán)l串接循環(huán)l嵌套循環(huán)南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試循環(huán)測試循環(huán)測試81分類分類南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試循環(huán)測試循環(huán)測試82簡單循環(huán)簡單循環(huán)l簡單循環(huán)。應(yīng)該使用下列測試集來測試簡單循 環(huán),其中 n 是允許通過循環(huán)的最大次數(shù)。l跳過循環(huán)。l只通過循環(huán)一次。l通過循環(huán)兩次。l通過循環(huán) m 次,其中 m=1=1,不可能測到內(nèi)層循環(huán),不可能測到內(nèi)層循環(huán)=0=0的情況。且內(nèi)層循環(huán)的循環(huán)次數(shù)取決于輸入的數(shù)是的情況。且內(nèi)層循環(huán)的循環(huán)次數(shù)取決于輸入的數(shù)是否符合規(guī)則,具有不確定性,因此內(nèi)層循環(huán)的測試僅否符合規(guī)則,具有不確定性,因此內(nèi)層循環(huán)的測試僅能取循環(huán)能取循環(huán)1 1次、循環(huán)次、循環(huán)2 2次和循環(huán)正常次數(shù),這里取次和循環(huán)正常次數(shù),這里取5 5次。次。l外層循環(huán):外層循環(huán)的循環(huán)次數(shù)取決于參數(shù)外層循環(huán):外層循環(huán)的循環(huán)次數(shù)取決于參數(shù)n,n=0n,n=0時(shí),時(shí),不執(zhí)行循環(huán)體,不執(zhí)行循環(huán)體,n1n1時(shí),將進(jìn)入循環(huán)體,考慮各種循環(huán)時(shí),將進(jìn)入循環(huán)體,考慮各種循環(huán)次數(shù)都能測試到,取次數(shù)都能測試到,取n=10n=10,此時(shí)最大循環(huán)次數(shù)為,此時(shí)最大循環(huán)次數(shù)為9.9.南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試循環(huán)測試用例編寫循環(huán)測試用例編寫91測試用例測試用例測試項(xiàng)測試項(xiàng)輸入輸入預(yù)期結(jié)果預(yù)期結(jié)果內(nèi)內(nèi) 層層循環(huán)循環(huán)循環(huán)1次tri數(shù)組,n=1,依次輸入0,201,-5,300,50a=0循環(huán)2次a=201循環(huán)5次a=50,tri0=50外外 層層循環(huán)循環(huán)循環(huán)0次n=0循環(huán)1次tri數(shù)組,n=10,依次輸入10,20,30,40,50,60,70,80,90,100tri0=10循環(huán)2次tri1=20循環(huán)5次tri4=60循環(huán)9次tri9=100南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)小結(jié)任務(wù)小結(jié)921 11.1.路徑測試是最早被應(yīng)用的測試方法之一,它有點(diǎn)類路徑測試是最早被應(yīng)用的測試方法之一,它有點(diǎn)類似于遍歷。通常的過程是,首先選定一些路徑,然似于遍歷。通常的過程是,首先選定一些路徑,然后據(jù)此寫出測試用例。后據(jù)此寫出測試用例。2.2.由于在實(shí)踐中對(duì)程序的所有路徑組合進(jìn)行測試是不由于在實(shí)踐中對(duì)程序的所有路徑組合進(jìn)行測試是不可能的,所以研究了許多策略來簡化問題,降低選可能的,所以研究了許多策略來簡化問題,降低選取出來的路徑數(shù)。取出來的路徑數(shù)。3.3.基路徑測試方法著眼于獨(dú)立路徑的尋找,要求在測基路徑測試方法著眼于獨(dú)立路徑的尋找,要求在測試中程序的每個(gè)可執(zhí)行語句至少執(zhí)行一次。試中程序的每個(gè)可執(zhí)行語句至少執(zhí)行一次。4.4.循環(huán)測試法主要解決的是對(duì)循環(huán)的測試方法。循環(huán)測試法主要解決的是對(duì)循環(huán)的測試方法。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試public void select_sort(int a)int i,j,k,t,n;n=a.length;for(i=0;i n-1;i+)k=i;for(j=i+1;j n;j+)if(a j a k)k=j;if(i!=k)t=ak;ak=ai;ai=t;拓展訓(xùn)練拓展訓(xùn)練93進(jìn)一步練習(xí)進(jìn)一步練習(xí)l請用基路徑測試法和循環(huán)測試法對(duì)下面的選擇排序java代碼段進(jìn)行測試。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)三:綜合案例分析任務(wù)三:綜合案例分析94 任務(wù)簡介 任務(wù)分析 相關(guān)知識(shí)點(diǎn) 任務(wù)實(shí)施 任務(wù)小結(jié) 拓展訓(xùn)練南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)簡介任務(wù)簡介951 1l下頁程序流程圖描述了最多輸入50個(gè)值(以1作為輸入結(jié)束標(biāo)志),計(jì)算其中有效的學(xué)生分?jǐn)?shù)的個(gè)數(shù)、總分?jǐn)?shù)和平均值。l使用白盒測試方法對(duì)其進(jìn)行分析測試。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)簡介任務(wù)簡介v流程圖96南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)分析任務(wù)分析97分析分析l對(duì)于該流程圖而言,首先我們要分析其結(jié)構(gòu),確定判定節(jié)點(diǎn)和條件的個(gè)數(shù),在決定覆蓋指標(biāo)和具體采取的白盒測試方法。l也可以用多種方法共同驗(yàn)證選取的測試用例是否充分,是否需要補(bǔ)充。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試相關(guān)知識(shí)點(diǎn)相關(guān)知識(shí)點(diǎn)98知識(shí)點(diǎn)列表知識(shí)點(diǎn)列表l白盒測試方法總結(jié)l白盒測試的應(yīng)用策略南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試白盒測試方法總結(jié)白盒測試方法總結(jié)99白盒方法白盒方法l白盒測試是基于被測程序的源代碼設(shè)計(jì)測試用例的測試方法。l常見的白盒測試方法l邏輯覆蓋測試l路徑分析測試南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試白盒方法白盒方法100邏輯覆蓋邏輯覆蓋l語句覆蓋:每個(gè)語句至少執(zhí)行一次。語句覆蓋:每個(gè)語句至少執(zhí)行一次。l判定覆蓋:在語句覆蓋的基礎(chǔ)上,每個(gè)判定的每個(gè)分支至少執(zhí)判定覆蓋:在語句覆蓋的基礎(chǔ)上,每個(gè)判定的每個(gè)分支至少執(zhí)行一次。行一次。l條件覆蓋:在語句覆蓋的基礎(chǔ)上,使每個(gè)判定表達(dá)式的每個(gè)條條件覆蓋:在語句覆蓋的基礎(chǔ)上,使每個(gè)判定表達(dá)式的每個(gè)條件都取到各種可能的結(jié)果。件都取到各種可能的結(jié)果。l判定判定/條件覆蓋:即判定覆蓋和條件覆蓋的交集。條件覆蓋:即判定覆蓋和條件覆蓋的交集。l條件組合覆蓋:每個(gè)判定表達(dá)式中條件的各種可能組合都至少條件組合覆蓋:每個(gè)判定表達(dá)式中條件的各種可能組合都至少出現(xiàn)一次。出現(xiàn)一次。l修正的條件修正的條件/判定覆蓋:要求在滿足判定判定覆蓋:要求在滿足判定/條件覆蓋的基礎(chǔ)上,條件覆蓋的基礎(chǔ)上,每個(gè)簡單邏輯判定條件都應(yīng)能夠獨(dú)立影響整個(gè)判定表達(dá)式。每個(gè)簡單邏輯判定條件都應(yīng)能夠獨(dú)立影響整個(gè)判定表達(dá)式。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試白盒方法白盒方法101路徑分析路徑分析l基路徑測試:基本路徑測試法是在程序控制流圖的基基路徑測試:基本路徑測試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計(jì)測試用例的方法。執(zhí)行路徑集合,從而設(shè)計(jì)測試用例的方法。l循環(huán)測試是一種著重循環(huán)結(jié)構(gòu)有效性測試的測試方法。循環(huán)測試是一種著重循環(huán)結(jié)構(gòu)有效性測試的測試方法。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試白盒方法應(yīng)用策略白盒方法應(yīng)用策略1021 1l靜態(tài)白盒測試有助于直接定位缺陷,所以應(yīng)優(yōu)先進(jìn)行靜態(tài)白盒測試有助于直接定位缺陷,所以應(yīng)優(yōu)先進(jìn)行靜態(tài)白盒測試,特別是重要的、核心的功能模塊,應(yīng)靜態(tài)白盒測試,特別是重要的、核心的功能模塊,應(yīng)進(jìn)行嚴(yán)格的評(píng)審。檢查的內(nèi)容包括對(duì)程序代碼的結(jié)構(gòu)進(jìn)行嚴(yán)格的評(píng)審。檢查的內(nèi)容包括對(duì)程序代碼的結(jié)構(gòu)進(jìn)行分析、對(duì)代碼質(zhì)量進(jìn)行度量。同時(shí)在靜態(tài)測試的進(jìn)行分析、對(duì)代碼質(zhì)量進(jìn)行度量。同時(shí)在靜態(tài)測試的過程中,應(yīng)不斷總結(jié)經(jīng)驗(yàn),更新缺陷檢查表等規(guī)范性過程中,應(yīng)不斷總結(jié)經(jīng)驗(yàn),更新缺陷檢查表等規(guī)范性文檔。文檔。l應(yīng)盡量采用現(xiàn)有的測試工具來幫助分析代碼的結(jié)構(gòu)和應(yīng)盡量采用現(xiàn)有的測試工具來幫助分析代碼的結(jié)構(gòu)和評(píng)估代碼質(zhì)量。評(píng)估代碼質(zhì)量。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試白盒方法應(yīng)用策略白盒方法應(yīng)用策略1032 2l針對(duì)黑盒測試檢查不到或難以檢查的地方(如內(nèi)存泄針對(duì)黑盒測試檢查不到或難以檢查的地方(如內(nèi)存泄漏)使用特殊的白盒測試方法。漏)使用特殊的白盒測試方法。l根據(jù)代碼的不同結(jié)構(gòu),選用合理的測試覆蓋指標(biāo),評(píng)根據(jù)代碼的不同結(jié)構(gòu),選用合理的測試覆蓋指標(biāo),評(píng)估黑盒測試方法是否存在漏洞和冗余,若有漏洞,應(yīng)估黑盒測試方法是否存在漏洞和冗余,若有漏洞,應(yīng)有針對(duì)性地補(bǔ)充更多必要的測試用例。有針對(duì)性地補(bǔ)充更多必要的測試用例。l對(duì)于系統(tǒng)測試,也可以借鑒白盒測試中的路徑測試方對(duì)于系統(tǒng)測試,也可以借鑒白盒測試中的路徑測試方法的思想,展開相應(yīng)的測試工作。法的思想,展開相應(yīng)的測試工作。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實(shí)施任務(wù)實(shí)施104策略分析策略分析l白盒測試主要針對(duì)被測軟件的內(nèi)部如何進(jìn)行工作的測試。邏輯覆蓋的關(guān)注點(diǎn)主要在于條件判定表達(dá)式本身的復(fù)雜度。而路徑測試必然滿足基本的邏輯覆蓋指標(biāo),所以優(yōu)先考慮路徑測試。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實(shí)施任務(wù)實(shí)施105步驟步驟l導(dǎo)出過程的流圖l確定環(huán)形復(fù)雜性度量V(G)l確定基本路徑集合(即獨(dú)立路徑集合)。l為每一條獨(dú)立路徑各設(shè)計(jì)一組測試用例,以便強(qiáng)迫程序沿著該路徑至少執(zhí)行一次。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實(shí)施任務(wù)實(shí)施106步驟步驟1 1南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實(shí)施任務(wù)實(shí)施107步驟步驟2 21.1.V(G)=6(V(G)=6(個(gè)區(qū)域個(gè)區(qū)域)2.2.V(G)=EV(G)=EN+2=16N+2=1612+2=612+2=6其中其中E E為流圖中的邊數(shù),為流圖中的邊數(shù),N N為結(jié)點(diǎn)數(shù)為結(jié)點(diǎn)數(shù);3.3.V(G)=P+1=5+1=6V(G)=P+1=5+1=6其中其中P P為謂詞結(jié)點(diǎn)的個(gè)數(shù)。在流圖中,結(jié)點(diǎn)為謂詞結(jié)點(diǎn)的個(gè)數(shù)。在流圖中,結(jié)點(diǎn)2 2、3 3、5 5、6 6、9 9是謂詞結(jié)點(diǎn)。是謂詞結(jié)點(diǎn)。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實(shí)施任務(wù)實(shí)施108步驟步驟3 3l可確定6條獨(dú)立的路徑:路徑1:1-2-9-10-12路徑2:1-2-9-11-12路徑3:1-2-3-9-10-12路徑4:1-2-3-4-5-8-2路徑5:1-2-3-4-5-6-8-2路徑6:1-2-3-4-5-6-7-8-2南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實(shí)施任務(wù)實(shí)施109步驟步驟4-14-1l為每一條獨(dú)立路徑各設(shè)計(jì)一組測試用例,以便強(qiáng)迫程序沿著該路徑至少執(zhí)行一次。1.路徑1(1-2-9-10-12)的測試用例:scorek=有效分?jǐn)?shù)值,當(dāng)k i;scorei=1,2i50;期望結(jié)果:根據(jù)輸入的有效分?jǐn)?shù)算出正確的分?jǐn)?shù)個(gè)數(shù)n1、總分sum和平均分average。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實(shí)施任務(wù)實(shí)施110步驟步驟4-24-22.路徑2(1-2-9-11-12)的測試用例:score 1=1;期望的結(jié)果:average=1,其他量保持初值。3.路徑3(1-2-3-9-10-12)的測試用例:輸入多于50個(gè)有效分?jǐn)?shù),即試圖處理51個(gè)分?jǐn)?shù),要求前51個(gè)為有效分?jǐn)?shù);期望結(jié)果:n1=50、且算出正確的總分和平均分。3.路徑4(1-2-3-4-5-8-2)的測試用例:scorei=有效分?jǐn)?shù),當(dāng)i50;2.scorek0,k i;期望結(jié)果:根據(jù)輸入的有效分?jǐn)?shù)算出正確的分?jǐn)?shù)個(gè)數(shù)n1、總分sum和平均分average。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實(shí)施任務(wù)實(shí)施111步驟步驟4-34-35.路徑5(1-2-3-4-5-6-8-2)的測試用例:scorei=有效分?jǐn)?shù),當(dāng)i100,k i;期望結(jié)果:根據(jù)輸入的有效分?jǐn)?shù)算出正確的分?jǐn)?shù)個(gè)數(shù)n1、總分sum和平均分average。5.路徑6(1-2-3-4-5-6-7-8-2)的測試用例:scorei=有效分?jǐn)?shù),當(dāng)i1010的程序,的程序,一般會(huì)認(rèn)為過于復(fù)雜而難以測試。一般會(huì)認(rèn)為過于復(fù)雜而難以測試。2.2.在采用了路徑測試的基礎(chǔ)上在采用了路徑測試的基礎(chǔ)上 ,可針對(duì)循環(huán),進(jìn)而,可針對(duì)循環(huán),進(jìn)而采用循環(huán)測試,以驗(yàn)證循環(huán)結(jié)構(gòu)的正確性。采用循環(huán)測試,以驗(yàn)證循環(huán)結(jié)構(gòu)的正確性。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試void ReadPara(CString temp)if(temp=)m_oper.SetCurSel(0);elseif(temp=)m_oper.SetCurSel(1);elseif(temp=)m_oper.SetCurSel(2);else If(temp=)m_oper.SetCurSel(3);else if(temp=)m_oper.SetCurSel(4);elsem_oper.SetCurSel(5);return;拓展訓(xùn)練拓展訓(xùn)練113進(jìn)一步練習(xí)進(jìn)一步練習(xí)l請綜合考慮使用各白盒測試方法對(duì)下面的程序代碼段進(jìn)行測試。
收藏
編號(hào):66077335
類型:共享資源
大?。?span id="zjd3dfp" class="font-tahoma">13.30MB
格式:ZIP
上傳時(shí)間:2022-03-26
25
積分
- 關(guān) 鍵 詞:
-
軟件測試
教學(xué)PPT課件
軟件
測試
教學(xué)
PPT
課件
- 資源描述:
-
軟件測試教學(xué)PPT課件,軟件測試,教學(xué)PPT課件,軟件,測試,教學(xué),PPT,課件
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。