軟件工程-白盒測試技術(shù)-課件_第1頁
軟件工程-白盒測試技術(shù)-課件_第2頁
軟件工程-白盒測試技術(shù)-課件_第3頁
軟件工程-白盒測試技術(shù)-課件_第4頁
軟件工程-白盒測試技術(shù)-課件_第5頁
已閱讀5頁,還剩142頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

7.6白盒測試技術(shù)7.6白盒測試技術(shù)白盒測試的原則對程序模塊的所有獨立執(zhí)行路徑至少測試一次對所有的邏輯判定取“真”與取“假”的兩種情況都至少測試一次。在循環(huán)的邊界和可操作范圍內(nèi)執(zhí)行循環(huán)體測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,完成邊界條件的測試。白盒測試對程序模塊的所有獨立對所有的邏輯判定取在循環(huán)的邊界和迪杰斯特拉定律:窮盡測試永遠不可能執(zhí)行路徑:520個如果1ms完成一個測試近似為1014個需3170年迪杰斯特拉定律:窮盡測試永遠不可能執(zhí)行路徑:520個如果1m一、邏輯覆蓋語句覆蓋判定覆蓋條件覆蓋判定-條件覆蓋條件組合覆蓋路徑覆蓋一、邏輯覆蓋語句覆蓋1.語句覆蓋設(shè)計測試用例,使被測程序中的每個可執(zhí)行語句至少被執(zhí)行一次1.語句覆蓋設(shè)計測試用例,使被測程序中的每個可執(zhí)行語句至inta,b;doublec;if(a>0&&b>0){c=c/a;}if(a>1||c>1){c=c+1;}c=b+c;

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1例題inta,b;doublec;c=b+cc=c/aMNM=.T.且N=.T.

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1MNM=.T.且N=.T.c=b+cc=c/ac=c+

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1Case1:a=2,b=0,c=3×此語句未覆蓋c=b+cc=c/ac=c+1TTFFa>0&&b

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1Case2輸入:a=2,b=1,c=3√×Case2輸出:c=3.5c=b+cc=c/ac=c+1TTFFa>0&&b思考:如果M為:a>0||b>0;N為:a>1&&c>1,測試用例與測試結(jié)果有設(shè)么變化?Case2:a=2,b=1,c=3Case2輸出:c=3.5語句覆蓋是弱覆蓋標準!MNBugBug

c=b+cc=c/ac=c+1TTFFa>0||b>0a>1&&c>1思考:如果M為:a>0||b>0;Case2:a=2.判定覆蓋準則設(shè)計測試用例,使被測程序中的每個判斷的取真分支和取假分支都被測試用例至少執(zhí)行一次2.判定覆蓋準則設(shè)計測試用例,使被測程序中的每個判斷的例題inta,b;doublecif(a>0&&b>0){c=c/a;}if(a>1||c>1){c=c+1;}c=b+c;MN

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1例題inta,b;doublecMNc=b+cc=

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>112345MNM=.T.且N=.T.M=.F.且N=.F.設(shè)計測試用例及預(yù)期結(jié)果c=b+cc=c/ac=c+1TTFFa>0&&b測試用例測試用例條件中的取值有被忽略的情況a=2,b=1,c=3a=-2,b=1,c=-3輸出:3.5-2判定覆蓋仍是弱覆蓋標準!

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c<1Bug條件中的取值有被忽略的情況a=2,b=1,c=3輸出:3.53.條件覆蓋準則設(shè)計測試用例,使得每個判斷中每個條件的可能取值至少滿足一次。3.條件覆蓋準則設(shè)計測試用例,使得每個判斷中每個條件的可例題inta,b;doublecif(a>0&&b>0){c=c/a;}if(a>1||c>1){c=c+1;}c=b+c;

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>112345MNP1:1-2-4P2:1-2-5P3:1-3-4P4:1-3-5例題inta,b;doublecc=b+cc=c/測試用例集對于判定M:條件a>0:取值為真為T1,取值為假為F1條件b>0:取值為真為T2,取值為假為F2對于判定N:條件a>1:取值為真為T3,取值為假為F3條件c>1:取值為真為T4,取值為假為F4雖然覆蓋了所有條件,但不能保證多個判定分支均被覆蓋到測試用例集對于判定M:雖然覆蓋了所有條件,但不能保證多個判定4、

判定—條件覆蓋準則設(shè)計足夠測試用例,使得判定中的所有條件可能取值至少執(zhí)行一次,同時,所有判定的可能結(jié)果至少執(zhí)行一次。判定-條件覆蓋能同時滿足判定、條件兩種覆蓋標準。4、判定—條件覆蓋準則設(shè)計足夠測試用例,使得判定中的所有條例題inta,b;doublecif(a>0&&b>0){c=c/a;}if(a>1||c>1){c=c+1;}c=b+c;

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>112345MN例題inta,b;doublecc=b+cc=c/測試用例集為了使被測程序得到充分測試,不僅每個條件需要被覆蓋,而且每個條件的組合也應(yīng)該被覆蓋到。測試用例集為了使被測程序得到充分測試,不僅每個條件需要被覆蓋判定—條件覆蓋準則的不足inta,b;doublec1if(a>0&&b>0){2c=c/a;3}4if(a>1||c<1){5c=c+1;6}7c=b+c;Buga=2,b=1,c=3a=-2,b=1,c=-3

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c<112345輸出:3.5-2判定—條件覆蓋準則的不足inta,b;doublec5.條件組合覆蓋準則設(shè)計足夠的測試用例,使得判定中每個條件的所有可能組合至少出現(xiàn)一次,并且每個判定結(jié)果也至少出現(xiàn)一次。與條件覆蓋準則的區(qū)別不是簡單的要求每個條件都出現(xiàn)“真”與“假”兩種結(jié)果,而是要求所有可能組合都至少被覆蓋一次5.條件組合覆蓋準則設(shè)計足夠的測試用例,使得判定中每個條例題對于第一個判定:條件a>0:取值為真為T1,取值為假為F1條件b>0:取值為真為T2,取值為假為F2對于第二個判定條件:條件a>0:取值為真為T3,取值為假為F3條件c>1:取值為真為T4,取值為假為F4例題對于第一個判定:所有的組合條件所有的組合條件測試用例集不能保證所有路徑被覆蓋到測試用例集不能保證所有路徑被覆蓋到6.路徑覆蓋設(shè)計測試用例,來覆蓋被測程序中的所有可能的執(zhí)行路徑6.路徑覆蓋設(shè)計測試用例,來覆蓋被測程序中的所有可能的P1:1-2-4P2:1-2-5P3:1-3-4P4:1-3-5

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>112345MNc=b+cc=c/ac=c+1TTFFa>0&&b路徑覆蓋測試用例集不滿足條件組合覆蓋準則路徑覆蓋測試用例集不滿足條件組合覆蓋準則完全覆蓋測試用例集完全覆蓋測試用例集小結(jié)小結(jié)A^BTFA^BTFA^BTFA^BTFA^BTFA^BTFA^BTFA^BTFA^BTFA^BTF7、覆蓋準則間的層次關(guān)系如果滿足準則A的測試用例集一定滿足準則B,那么我們就認為準則A包含準則B。例如:判定覆蓋準則包含語句覆蓋準則7、覆蓋準則間的層次關(guān)系如果滿足準則A的測試用例集一定滿足準語句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋條件組合覆蓋路徑覆蓋語句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋條件組合覆蓋路徑覆蓋作業(yè):為以下流程圖所示的程序段設(shè)計一組測試用例,要求分別滿足語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合覆蓋和路徑覆蓋。X>8&&Y>5X>0||Y>0Z=1Z=2FTFTX>16||Y>10Z=3FT作業(yè):為以下流程圖所示的程序段設(shè)計一組測試用例,要求分別滿足四

基本路徑測試法基本路徑:保證被測程序的每個可執(zhí)行語句至少被執(zhí)行一次的最小路徑集四基本路徑測試法基本路徑:保證被測程序的每個可執(zhí)行語句基本路徑測試法通過以下4個步驟來實現(xiàn)繪制程序控制流圖分析環(huán)路復(fù)雜度導出基本可執(zhí)行路徑集設(shè)計測試用例基本路徑測試法通過以下4個步驟來實現(xiàn)39流程圖inta,b;doublec;if(a>0&&b>0){c=c/a;}if(a>1||c>1){c=c+1;}c=b+c;

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1步驟1:構(gòu)造程序的控制流圖39流程圖inta,b;doublec;c=b+c

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1c=b+cc=c/ac=c+1TTFFa>0&&b步驟2:計算程序環(huán)路復(fù)雜度環(huán)路復(fù)雜度又稱圈復(fù)雜度或復(fù)雜度程序邏輯復(fù)雜性的度量值環(huán)路復(fù)雜度=基本路徑數(shù)目經(jīng)驗表明,程序的可能存在的BUG數(shù)與環(huán)路復(fù)雜度有著很大的相關(guān)性。步驟2:計算程序環(huán)路復(fù)雜度環(huán)路復(fù)雜度又稱圈復(fù)雜度或復(fù)雜度計算程序環(huán)路復(fù)雜度V(G)ACEDB123V(G)=區(qū)域數(shù)目V(G)=邊的數(shù)目-節(jié)點數(shù)目+2V(G)=判斷節(jié)點數(shù)目+1計算程序環(huán)路復(fù)雜度V(G)ACEDB123V(G)=區(qū)域數(shù)目步驟3:確定基本路徑集存在多個可行的基本路徑集其中一個可行的基本路徑集包含如下基本路徑A—C—EA—B—C—EA—B—C—D—E程序流程圖ACEDB步驟3:確定基本路徑集存在多個可行的基本路徑集程序流程圖AC步驟4:設(shè)計測試用例步驟4:設(shè)計測試用例例題1:確定圖示控制流流圖的基本路徑集。123456879環(huán)路復(fù)雜度:方法1:4方法2:11-9+2=4方法3:3+1=4基本路徑集:1->91->2->3->4->6->8->1->91->2->3->5->6->8->1->91->2->7->8->1->9例題1:確定圖示控制流流圖的基本路徑集。123456879環(huán)6354217環(huán)路復(fù)雜度:方法1:3方法2:8-7+2=3方法3:2+1=3基本路徑集:12712346271235627例題2:確定圖示控制流流圖的基本路徑集。6354217環(huán)路復(fù)雜度:基本路徑集:例題2:確定圖示控制流3EDBACFG9187654210R1R5R4R3R2例題3:確定圖示控制流流圖的基本路徑集。環(huán)路復(fù)雜度:方法1:5方法2:10-7+2=5方法3:4+1=3基本路徑集:ADFGADEFGABEFGABCBEFG3EDBACFG9187654210R1R5R4R3R2例題第六講黑盒測試技術(shù)第六講黑盒測試技術(shù)引言本章將開始講黑盒測試的基本概念與基本方法,介紹等價類劃分、邊界值分析、決策表法、因果圖法等方法,并通過實例來介紹測試技術(shù)的應(yīng)用。引言本章將開始講黑盒測試的基本概念與基本方法,介紹等價類劃分一、黑盒測試概述功能測試、基于規(guī)格說明的測試、數(shù)據(jù)驅(qū)動測試依據(jù)設(shè)計規(guī)格書(Specification)需求文檔(Requirement)設(shè)計文檔(Design)一、黑盒測試概述功能測試、基于規(guī)格說明的測試、數(shù)據(jù)驅(qū)動測試軟件輸入黑盒測試不深入代碼細節(jié)輸出軟件輸入黑盒測試不深入代碼細節(jié)輸出測試對象描述類比測試對象描述類比黑盒測試的內(nèi)容不正確或遺漏了的功能正確地接受輸入數(shù)據(jù)并產(chǎn)生正確地輸出界面出錯和界面美觀問題安裝中的出現(xiàn)的問題初始化和終止錯誤問題操作邏輯問題黑盒測試不正確或遺漏了的功能正確地接受輸入數(shù)據(jù)界面出錯和界面通過測試(正面測試)確認軟件能做什么?黑盒測試失敗測試(負面測試)迫使出錯!黑盒測試的兩種基本思路通過測試黑盒測試失敗測試黑盒測試的兩種基本思路正面測試負面測試正面測試負面測試等價類(EquivalenceClassPartitioning,ECP)對于某個輸入域的集合,如果用集合中的一個輸入條件作為測試數(shù)據(jù)進行測試不能發(fā)現(xiàn)程序中的錯誤,那么使用集合中的其他輸入條件進行測試也不可能發(fā)現(xiàn)錯誤,對于檢測程序中的錯誤來說,集合中每個輸入條件都是等價的,就稱該集合中的條件為等價類。1.概念二等價類劃分法等價類(EquivalenceClassPartitio有效等價類是合理的、有意義的輸入數(shù)據(jù)所構(gòu)成的集合驗證預(yù)期的功能和性能的實現(xiàn)無效等價類是不合理的,沒有意義的輸入數(shù)據(jù)構(gòu)成的集合對無效數(shù)據(jù)的處理能力有效等價類①、如果輸入條件規(guī)定了取值范圍,則可以劃分一個有效等價類和兩個無效等價類。2.等價類的劃分規(guī)則例:輸入值是學生成績,范圍是0~100有效等價類:①0≤成績≤100無效等價類:①成績<0,②成績>100①、如果輸入條件規(guī)定了取值范圍,則可以劃分一個有效等價類和兩②、如果輸入數(shù)據(jù)是給定值或布爾值,則可以劃分出一個有效等價類和一個無效等價類。例:程序輸入條件x=10有效等價類:①x=10無效等價類:①x≠10程序輸入性別:男有效等價類:男無效等價類:女②、如果輸入數(shù)據(jù)是給定值或布爾值,則可以劃分出一個有效等價類③、如果輸入數(shù)據(jù)是一個數(shù)組(包括n個輸入),且程序?qū)Σ煌斎胫底霾煌幚恚瑒t有n個有效等價類和一個無效等價類。例:輸入條件說明學歷可為:專科、本科、碩士、博士四種之一有效等價類:①???、②本科、③碩士、④博士無效等價類:①其它任何學歷③、如果輸入數(shù)據(jù)是一個數(shù)組(包括n個輸入),且程序?qū)Σ煌斎擘?、如果輸入?shù)據(jù)必須遵循某種規(guī)則,可確定一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。例:校內(nèi)電話號碼撥外線為9開頭有效等價類:①

9+外線號碼無效等價類:①非9開頭+外線號碼 ②9+非外線號碼,…④、如果輸入數(shù)據(jù)必須遵循某種規(guī)則,可確定一個有效等價類(符合3.測試用例的設(shè)計步驟(1)對輸入或外部條件進行等價類劃分,形成等價類表并編號;(2)設(shè)計用例,盡可能多地覆蓋尚未覆蓋的有效等價類,重復(fù);(3)設(shè)計新用例,只覆蓋一個無效等價類,重復(fù)。思考:3的順序是否可以和2顛倒?3.測試用例的設(shè)計步驟(1)對輸入或外部條件進行等價例1:報表日期

設(shè)某公司要打印2001~2005年的報表,其中報表日期為6位數(shù)字組成,其中,前4位為年份,后兩位為月份。例1:報表日期 設(shè)某公司要打印2001~2005年的報表,其第一步:劃分等價類、編號第一步:劃分等價類、編號第二步:為有效等價類設(shè)計測試用例

對表中編號為①②③的3個有效等價類用一個測試用例覆蓋:第二步:為有效等價類設(shè)計測試用例 對表中編號為①②③的3個第三步:為每一個無效等價類至少設(shè)計一個測試用例本例的10個等價類至少需要8個測試用例不能出現(xiàn)相同的測試用例第三步:為每一個無效等價類至少設(shè)計一個測試用例本例的10個等4.等價類劃分法的特點優(yōu)點:較少的用例,較完整的覆蓋。缺點:缺乏特殊用例的考慮;需要有深入的系統(tǒng)知識,才能合理的劃分等價類。4.等價類劃分法的特點優(yōu)點:較少的用例,較完整的覆蓋。對考試系統(tǒng)“成績查詢模塊”子模塊——輸入準考證號查詢成績行政專業(yè)準考證號碼為:110001~111215法律專業(yè)準考證號碼為:210001~212006財經(jīng)專業(yè)準考證號碼為:310001~314015例2:準考證號碼對考試系統(tǒng)“成績查詢模塊”子模塊——輸入準考證號查詢成績例2例:準考證號碼的等價類劃分有效等價類:(1)110001~111215(2)210001~212006(3)310001~314015

無效等價類:(4)-~110000(5)111216~210000(6)212007~310000(7)314016~+例:準考證號碼的等價類劃分等價類的劃分規(guī)則等價類的劃分規(guī)則四邊界值分析法BoundaryValueAnalysis,BVA

理論提出:長期的測試工作經(jīng)驗表明,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部。因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。四邊界值分析法BoundaryValueAnal定義:邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價類劃分法的補充,這種情況下,其測試用例來自等價類的邊界。定義:1.常見的邊界值1)對16-bit的整數(shù)而言32767和-32768是邊界2)屏幕上光標在最左上、最右下位置3)報表的第一行和最后一行4)數(shù)組元素的第一個和最后一個5)循環(huán)的第0次、第1次和倒數(shù)第2次、最后一次1.常見的邊界值1)對16-bit的整數(shù)而言3276邊界值分析的基礎(chǔ)思想是在輸入變量的取值區(qū)間內(nèi)取最小值、略高于最小值、正常值、略低于最大值和最大值5個值。邊界值分析健壯性邊界值分析2.用例設(shè)計思想邊界值分析的基礎(chǔ)思想是在輸入變量的取值區(qū)間內(nèi)取最小值、略高于例1:一個輸入年份的輸入框,其限制條件是1900年至2012年,那么選擇測試用例為:1900,1901,1950,2011,20121899,1900,1901,1950,2011,2012,2013例1:一個輸入年份的輸入框,其限制條件是1900年至2012例2:銀行取款機,取款金額是100~10000,提款的顆粒度為100元,那么選擇測試用例為:0,100,200,5000,9900,10000,10100例2:銀行取款機,取款金額是100~10000,提款的顆3.選擇測試用例技巧

(1)輸入條件:范圍——剛剛達到這個范圍的邊界的值,以及剛剛超越這個范圍邊界的值例如:如果程序的規(guī)格說明中規(guī)定:“重量在10公斤至50公斤范圍內(nèi)的郵件,其郵費計算公式為……”。測試用例:9.99,10

,10.01,25,49.99,50,50.013.選擇測試用例技巧

(1)輸入條件:范圍例如:如果程(2)輸入條件:值的個數(shù)——最大個數(shù),最小個數(shù),比最小個數(shù)少一,比最大個數(shù)多一例如:一個輸入文件應(yīng)包括1~255個記錄……則測試用:0,1,122,255,256等。(2)輸入條件:值的個數(shù)例如:一個輸入文件應(yīng)包括1~255個(3)(1)、(2)應(yīng)用于輸出條件例如:某程序的規(guī)格說明要求計算出“每月保險金扣除額為0至1165.25元”……測試用例選取應(yīng)能使計算結(jié)果為0.00和1165.25、以及-0.01及1165.26等。例如:檢索系統(tǒng)程序,要求每次“最少顯示1條、最多顯示4條檢索信息"……測試用例應(yīng)能使輸出結(jié)果為:1,4,還應(yīng)包括0,5等。(3)(1)、(2)應(yīng)用于輸出條件例如:某程序的規(guī)格說明要求(4)輸入、輸出域是有序集合——集合的第一個元素和最后一個元素(5)內(nèi)部數(shù)據(jù)結(jié)構(gòu)——內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值(6)分析規(guī)格說明,找出其它可能的邊界條件(7)正常值——接近取值范圍中間值即可(4)輸入、輸出域是有序集合例:“輸入3個值,輸出三角形的類型”測試用例:例:“輸入3個值,輸出三角形的類型”測試用例:邊界值是特殊的等價類邊界值分析不僅考慮輸入,還要考慮輸出。4.邊界值與等價類的區(qū)別邊界值是特殊的等價類4.邊界值與等價類的區(qū)別5.邊界值的弱點“單缺陷”假設(shè):即由于缺陷導致的程序失效極少是由兩個(或多個)缺陷的同時作用引起。程序輸入是多個獨立的變量,比較適合邊界值變量之間相互影響時,效果不好(人的身高體重)邊界值分析與等價類劃分效果與測試人員的經(jīng)驗密切相關(guān)。5.邊界值的弱點“單缺陷”假設(shè):即由于缺陷導致的程序失效組合分析法考慮思想:錯誤的主要來源來自于各種因素的組合,而非一個因素。優(yōu)點:實現(xiàn)成本低、維護成本低、容易自動化、錯誤發(fā)現(xiàn)效率高、測試方式靈活。組合分析法考慮思想:錯誤的主要來源來自于各種因素的組合,而非作業(yè):1.閱讀偽代碼,完成下列任務(wù)(1)畫出程序流程圖、盒圖。(2)按照不同的覆蓋準則,確定測試用例的數(shù)量,并設(shè)計測試用例。語句覆蓋判定覆蓋條件覆蓋路徑覆蓋(3)畫出控制流圖,用基本路徑法設(shè)計測試用例。IfX>8andY>5thenifX>16orY>10then Z=3endifElseIfX>0orY>0then Z=2Else Z=1endifendif作業(yè):IfX>8andY>5then2.用邊界值法設(shè)計以下函數(shù)的測試用例。(1)y=ABS(x);(2)y=sin(x)3.用等價類劃分法測試成績輸入文本框設(shè)計測試用例。(1)百分制;(2)五級制。4.需要測試學號輸入文本框,學號結(jié)構(gòu)為8位數(shù)字字符組成,前兩位是年代后兩位,3、4兩位是專業(yè)編號(1-50),5、6位為班級編號(1-20),7、8位為50以內(nèi)的流水號。2.用邊界值法設(shè)計以下函數(shù)的測試用例。作業(yè):1.為以下流程圖所示的程序段設(shè)計一組測試用例,要求分別滿足語句覆蓋、判定覆蓋、條件覆蓋和路徑覆蓋設(shè)計測試用例。2.用基本路徑法設(shè)計測試用例。X>8&&Y>5X>0||Y>0Z=1Z=2FTFTX>16||Y>10Z=3FT作業(yè):1.為以下流程圖所示的程序段設(shè)計一組測試用例,要求分別劃分等價類、編號劃分等價類、編號軟件工程--白盒測試技術(shù)--課件判定表又稱決策表定義:把輸入條件各種組合以及對應(yīng)輸出值都羅列出來而形成的表格。是一個典型的組合分析方法把問題的各種可能都列舉出來,簡明且不會遺漏。是最嚴格,最具有邏輯性的黑盒測試方法。五

判定表方法(DecisionTable)判定表又稱決策表五判定表方法(DecisionTab

條件樁

條件項動作樁動作項判定表的結(jié)構(gòu)1.基本概念判定表的結(jié)構(gòu)1.基本概念電力公司將用戶分為兩類:單費率用戶:實行單一電價復(fù)費率用戶:在規(guī)定時間內(nèi)實行優(yōu)惠電價,在其他時間內(nèi)實行普通電價條件樁單費率復(fù)費率規(guī)定期動作樁單一電價優(yōu)惠電價普通電價1.單費率:單一電價2.復(fù)費率+在規(guī)定時間:優(yōu)惠電價3.復(fù)費率+不在規(guī)定的時間:普通電價

規(guī)則條件樁:問題的所有條件動作樁:所有可能采取的操作規(guī)則:一個條件組合的取值及其執(zhí)行的操作電力公司將用戶分為兩類:條件樁動作樁1.單費率:單一電價規(guī)

條件樁

條件項動作樁動作項動作:通常使用“0”和“1”表示不執(zhí)行動作和執(zhí)行動作條件:通常使用“0”和“1”表示條件不滿足和條件滿足判定表的結(jié)構(gòu)規(guī)則動作:通常使用“0”和“1”表示不執(zhí)行動作和執(zhí)行動作判定表條件樁動作樁規(guī)則1規(guī)則2規(guī)則3行動項:在條件條目下采取的動作或操作在判定表中貫穿條件項和動作項的一列就是一個規(guī)則條件項:條件樁的所有可能取值,“真”、“假”或其它。條件樁動作樁規(guī)規(guī)規(guī)行動項:在條件條目下采取的動作或操作在判定測試用例集測試用例集軟件工程--白盒測試技術(shù)--課件(1)判定表中條件的組合方式有多少,就有多少條規(guī)則,就有多少列,每列對應(yīng)一個測試用例。(2)如果條件都是二叉條件,稱為有限條目判定表。如果條件有多個值,甚至對應(yīng)于變量的等價類,稱為擴展條目判定表。如條件“ATM交易類型”,可以取“存款”、“查詢”和“取款”三種值。(3)由于判定表是機械地強制完備的,因此具有測試用例的完整性。2.判定表的特點(1)判定表中條件的組合方式有多少,就有多少條規(guī)則,就有多少輸入輸出輸入的等價類功能處理條件動作規(guī)則測試用例3.判定表的應(yīng)用條件動作規(guī)則測試用例輸入輸出輸入的等價類功能處理條件動作規(guī)則測試用例3.判定構(gòu)造判定表可采用以下5個步驟:(1)列出條件樁和動作樁。(2)確定規(guī)則的個數(shù)。(3)填入條件項。(4)填入動作項,得到初始判定表。(5)簡化判定表,合并相似規(guī)則。4.判定表的構(gòu)造及化簡構(gòu)造判定表可采用以下5個步驟:4.判定表的構(gòu)造及化簡判定表的化簡對于n個條件的判定表,相應(yīng)有2n個規(guī)則(每個條件分別取真、假值)。判定表的化簡是以合并相似規(guī)則為目標若表中有兩條以上規(guī)則具有相同的動作,并且在條件項之間存在極為相似的關(guān)系,便可以合并。判定表的化簡例題:打印機能否打印出正確的內(nèi)容有多個影響因素,包括驅(qū)動程序、紙張、墨粉等,打印機會自動提示:驅(qū)動是否正確、提示沒有紙張、提示沒有墨粉,根據(jù)這些信息決定決定是否打印內(nèi)容,請設(shè)計出影響條件與動作的判定表并化簡。(為了簡化問題,不考慮中途斷電、卡紙等因素;假定優(yōu)先警告缺紙,然后警告沒有墨粉,最后警告驅(qū)動程序不正確。)條件樁驅(qū)動是否正確是否有紙張是否有墨粉1規(guī)則數(shù):8動作樁打印內(nèi)容提示驅(qū)動不正確提示缺紙?zhí)崾救狈?例題:打印機能否打印出正確的內(nèi)容有多個影響因素,包括驅(qū)動程序構(gòu)造判定表簡化判定表構(gòu)簡化例題:某商場舉行一次假日商品促銷活動。在活動期間,對持會員卡的顧客,實行8.5折優(yōu)惠,滿1000元實行7折優(yōu)惠;對其他顧客,消費滿1000元的,實行9折優(yōu)惠,并免費辦理會員卡。請給出相應(yīng)的判定表及測試用例集。持卡不持卡滿1000不滿滿1000不滿條件樁持卡會員消費滿10001動作樁8.5折7折9折+辦卡其它2規(guī)則:4例題:某商場舉行一次假日商品促銷活動。在活動期間,對持會員卡判定表判定表測試用例集測試用例集什么是因果關(guān)系?拿破侖說:六、因果圖方法“失一個釘子,壞了一只蹄鐵;壞了一只蹄鐵,折了一匹戰(zhàn)馬;折了一匹戰(zhàn)馬,傷了一位騎士;傷了一位騎士,輸了一場戰(zhàn)斗;輸了一場戰(zhàn)斗,亡了一個帝國?!?/p>

這就是因果關(guān)系

什么是因果關(guān)系?拿破侖說:六、因果圖方法“失一個釘子,壞了一因果圖方法(Cause-effectDiagram)是借助圖形,分析輸入條件的各種組合,每種組合是“因”,必然有一個輸出為“果”。因果圖方法最終生成判定表,適用檢查程序輸入條件的各種組合情況。因果圖中使用了簡單的邏輯符號,以直線聯(lián)接左右結(jié)點。左結(jié)點表示輸入狀態(tài)(或稱原因),右結(jié)點表示輸出狀態(tài)(或稱結(jié)果)。因果圖方法(Cause-effectDiagram)是借助1.因果圖ci表示原因,通常置于圖的左部;ei表示結(jié)果,通常在圖的右部。ci和ei均可取值0或1,0表示某狀態(tài)不出現(xiàn),1表示某狀態(tài)出現(xiàn)。c1e1恒等c1e1非①恒等:若ci是1,則ei也是1;否則ei為0。②非:若ci是1,則ei是0;否則ei是1。∽1.因果圖ci表示原因,通常置于圖的左部;ei表示結(jié)果,c2e1或orc1c3∨c2e1與andc1c3∧③或:若c1或c2或c3是1,則ei是1;否則ei為0?!盎颉笨捎腥我鈧€輸入。④與:若c1、c2和c2都是1,則ei為1;否則ei為0。“與”也可有任意個輸入。c2e1或orc1c3∨c2e1與andc1c3∧③或:因果圖因果圖2、狀態(tài)約束狀態(tài)相互之間存在依賴關(guān)系,稱為約束。輸入/輸出狀態(tài)之間都存在約束。在因果圖中,用特定的符號標明這些約束。2、狀態(tài)約束狀態(tài)相互之間存在依賴關(guān)系,稱為約束。(1)輸入條件之間的約束有以下4類:

①E約束(異):A、B至多有一個為1,即A和B不能同時為1。

②I約束(或):A、B至少有一個必須是1,即A、B不能同時為0。

ABEABI異或(1)輸入條件之間的約束有以下4類:ABEABI異或③O約束(唯一);A、B中有且僅有1個為1。④R約束(要求):A是1時,B必須是1,即A、B必須相同。ABOABR唯一要求③O約束(唯一);A、B中有且僅有1個為1。ABOABR唯一(2)輸出條件約束類型輸出條件的約束只有M約束(強制):若結(jié)果E是1,則結(jié)果F強制為1。EFM強制(2)輸出條件約束類型EFM強制約束條件約束條件3.利用因果圖生成測試用例的步驟分析分析軟件規(guī)格說明,找出原因(輸入條件或輸入條件的等價類)與結(jié)果(輸出條件),并給每個原因和結(jié)果賦予一個標識符。找出原因與結(jié)果、原因與原因之間對應(yīng)的關(guān)系,畫出因果圖。3.利用因果圖生成測試用例的步驟分析分析軟件規(guī)格說明分析關(guān)聯(lián)原因與原因之間,原因與結(jié)果之間的組合有不可能出現(xiàn)的情況,找出這些約束或限制條件。3.利用因果圖生成測試用例的步驟分析關(guān)聯(lián)原因與原因之間,原因與結(jié)果之間的組合有不可能出現(xiàn)分析轉(zhuǎn)換關(guān)聯(lián)因果圖轉(zhuǎn)換為判定表。3.利用因果圖生成測試用例的步驟分析轉(zhuǎn)換關(guān)聯(lián)因果圖轉(zhuǎn)換為判定表。3.利用因果圖生成分析轉(zhuǎn)換輸出關(guān)聯(lián)判定表的每一列轉(zhuǎn)化成一個測試用例。3.利用因果圖生成測試用例的步驟分析轉(zhuǎn)換輸出關(guān)聯(lián)判定表的每一列轉(zhuǎn)化成一個測試用例。3例1:

某軟件規(guī)格說明書包含這樣的要求:第一列字符必須是A或B,第二列字符必須是一個數(shù)字,在此情況下進行文件的修改,但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。請畫出因果圖,生成判定表和測試用例。原因:1——第一列字符是A;2——第一列字符是B;3——第二列字符是一數(shù)字。結(jié)果:21——修改文件;22——給出信息L;23——給出信息M。1、分析例1:

某軟件規(guī)格說明書包含這樣的要求:第一列字符必須是A或?qū)?yīng)的因果圖其對應(yīng)的因果圖如下:11為中間節(jié)點;考慮到原因1和原因2不可能同時為1,因此在因果圖上施加E約束,如圖所示。11122212323VVE∽∽對應(yīng)的因果圖其對應(yīng)的因果圖如下:11122212323VVE根據(jù)因果圖建立判定表根據(jù)因果圖建立判定表把判定表的每一列拿出來作為依據(jù),設(shè)計測試用例把判定表的每一列拿出來作為依據(jù),設(shè)計測試用例4、使用因果圖法的優(yōu)點1)充分考慮了輸入的各種組合以及它們之間的相互制約關(guān)系。2)可以幫助測試人員按照一定的步驟,高效率的開發(fā)測試用例。3)因果圖法將自然語言規(guī)格說明轉(zhuǎn)化成形式語言規(guī)格說明的一種方法,可以找出規(guī)格說明存在的不完整性和二義性。4、使用因果圖法的優(yōu)點1)充分考慮了輸入的各種組合以及它們之案例分析有一個處理單價為1元5角的盒裝飲料的自動售貨機軟件。若投入1元5角硬幣,按下“可樂”,“雪碧”或“紅茶”按鈕,相應(yīng)的飲料就送出來。若投入的是兩元硬幣,在送出飲料的同時退還5角硬幣。案例分析有一個處理單價為1元5角的盒裝飲料的自動售貨機軟件。(1)分析(2)因果圖(1)分析(2)因果圖(3)判定表(3)判定表(4)設(shè)計測試用例(4)設(shè)計測試用例案例分析中國象棋中走馬的測試用例設(shè)計為例學習因果圖的使用方法(下面未注明的均指的是對馬的說明)案例分析中國象棋中走馬的測試用例設(shè)計為例學習因果圖的使用方法一、分析中國象棋中走馬的實際情況如果落點在棋盤外,則不移動棋子;如果落點與起點不構(gòu)成日字型,則不移動棋子;如果在落點方向的鄰近交叉點有棋子(絆馬腿),則不移動棋子;如果不屬于1-3條,落點處有己方棋子,則不移動棋子;如果不屬于1-3條,落點處無棋子,則移動棋子;如果不屬于1-3條,落點處為對方棋子(非老將),則移動棋子并除去對方棋子;如果不屬于1-3條,且落點處為對方老將,則移動棋子,并提示戰(zhàn)勝對方,游戲結(jié)束。一、分析中國象棋中走馬的實際情況如果落點在棋盤外,則不移動二、根據(jù)分析明確原因和結(jié)果原因:C1.落點在棋盤上;C2.落點與起點構(gòu)成日字;C3.落點方向的鄰近交叉點無棋子;C4.落點處為自己方棋子;C5.落點處無棋子;C6.落點處為對方棋子(非老將);C7.落點處為對方老將。結(jié)果:E1.不移動棋子E2.移動棋

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論