軟件工程實(shí)用教程6-軟件測(cè)試課件_第1頁
軟件工程實(shí)用教程6-軟件測(cè)試課件_第2頁
軟件工程實(shí)用教程6-軟件測(cè)試課件_第3頁
軟件工程實(shí)用教程6-軟件測(cè)試課件_第4頁
軟件工程實(shí)用教程6-軟件測(cè)試課件_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟 件 工 程第六章 軟件測(cè)試第六章 軟件測(cè)試任務(wù)1 進(jìn)行靜態(tài)測(cè)試軟件測(cè)試概述軟件測(cè)試的目的和原則軟件測(cè)試與軟件開發(fā)各階段的關(guān)系軟件測(cè)試的過程軟件測(cè)試方法任務(wù)2 進(jìn)行白盒測(cè)試白盒測(cè)試邏輯覆蓋基本路徑覆蓋2任務(wù)3 進(jìn)行黑盒測(cè)試黑盒測(cè)試等價(jià)類劃分邊界值分析法錯(cuò)誤推斷法因果圖法3任務(wù)1 進(jìn)行靜態(tài)測(cè)試代碼在編寫過程是與軟件測(cè)試并發(fā)執(zhí)行的。一般我們對(duì)測(cè)試的理解認(rèn)為必須讓程序跑起來才能夠查看程序是否存在問題。實(shí)際上,靜止?fàn)顟B(tài)下的源代碼也可以暴露出一些問題。下面給出一段程序,大家看看能不能直接找出問題呢?451 軟件測(cè)試概述軟件測(cè)試的重要性在整個(gè)軟件開發(fā)中,測(cè)試工作量一般占30%40%,甚至50%。 在人命

2、關(guān)天的軟件(如飛機(jī)控制、核反應(yīng)堆等)測(cè)試所花費(fèi)的時(shí)間往往是其它軟件工程活動(dòng)時(shí)間之和的三到五倍二、軟件測(cè)試的目的和原則G.Myers給出了關(guān)于測(cè)試的目的測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程;好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案;成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。軟件測(cè)試的原則所有的測(cè)試都應(yīng)追溯到用戶需求最嚴(yán)重的錯(cuò)誤(從用戶角度)是那些導(dǎo)致軟件無法滿足需求的錯(cuò)誤。程序中的問題根源可能在開發(fā)前期的各階段解決、糾正錯(cuò)誤也必須追溯到前期工作。測(cè)試與軟件開發(fā)個(gè)階段之間的關(guān)系可用V模型描述所有測(cè)試可以在任何代碼被產(chǎn)生前就被計(jì)劃和設(shè)計(jì)應(yīng)該在測(cè)試開始之前的相當(dāng)長(zhǎng)時(shí)間,就制

3、定出測(cè)試計(jì)劃。測(cè)試計(jì)劃可以在需求模型一完成就開始詳細(xì)的測(cè)試方案定義可以在設(shè)計(jì)模型被確定后立即開始軟件測(cè)試不等于程序測(cè)試,軟件測(cè)試應(yīng)貫穿于軟件定義與開發(fā)的整個(gè)期間;據(jù)美國一家公司統(tǒng)計(jì),查出的軟件錯(cuò)誤中,屬于需求分析和軟件設(shè)計(jì)的錯(cuò)誤約占 64%,屬于程序編寫的錯(cuò)誤僅占 36%。程序編寫的許多錯(cuò)誤是“先天的”。pareto原則測(cè)試發(fā)現(xiàn)的錯(cuò)誤中80%很可能起源于20%的模塊中。測(cè)試應(yīng)該從“小規(guī)模”開始,并逐步進(jìn)行“大規(guī)?!睖y(cè)試。窮舉測(cè)試是不可能的。為了達(dá)到最佳的測(cè)試效果,應(yīng)該由獨(dú)立的第三方來從事測(cè)試工作。3 軟件測(cè)試與軟件開發(fā)個(gè)階段的關(guān)系4 軟件測(cè)試的過程軟件測(cè)試的步驟單元測(cè)試又稱為模塊測(cè)試,是最小單

4、位的測(cè)試,其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯(cuò)誤。在單元測(cè)試活動(dòng)中,各獨(dú)立單元模塊將在于系統(tǒng)的其它部分相隔離的情況下進(jìn)行測(cè)試,單元測(cè)試集中對(duì)源代碼實(shí)現(xiàn)的每一個(gè)程序單元進(jìn)行測(cè)試,檢查各模塊是否正確實(shí)現(xiàn)了規(guī)定的功能。多個(gè)模塊可以并行進(jìn)行單元測(cè)試。集成測(cè)試在集成各個(gè)模塊時(shí)有兩種方式一次性集成方式首先對(duì)每個(gè)模塊進(jìn)行單元測(cè)試,然后將這些模塊組裝在一起進(jìn)行測(cè)試,最終得到要求的軟件系統(tǒng)增值式集成方式首先對(duì)每個(gè)模塊進(jìn)行單元測(cè)試,然后將其逐步組裝成較大的系統(tǒng),在組裝過程中一邊連接一邊測(cè)試,已發(fā)現(xiàn)連接過程中產(chǎn)生的問題,最后組裝成要求的軟件系統(tǒng)。增值式集成方式有三種實(shí)現(xiàn)方式自頂向下、自底向上和混合增值方式。確認(rèn)

5、測(cè)試也稱為有效性測(cè)試。基于需求規(guī)格說明書和用戶信息,驗(yàn)證軟件的功能和性能及其它特性。確認(rèn)測(cè)試的步驟進(jìn)行有效性測(cè)試在模擬的環(huán)境下,應(yīng)用黑盒測(cè)試方法,驗(yàn)證所測(cè)試的軟件是否滿足需求規(guī)格說明屬列出的需求軟件配置的復(fù)查測(cè)試和測(cè)試系統(tǒng)測(cè)試把已經(jīng)通過確認(rèn)測(cè)試的軟件,與計(jì)算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等系統(tǒng)元素結(jié)合起來,進(jìn)行組裝和測(cè)試。系統(tǒng)測(cè)試用理應(yīng)根據(jù)需求規(guī)格說明書來設(shè)計(jì),并在模擬環(huán)境下運(yùn)行。驗(yàn)收測(cè)試以用戶為主,由開發(fā)人員,測(cè)試人員,QA人員參加的測(cè)試5 軟件測(cè)試方法17軟件測(cè)試的策略和方法靜態(tài)測(cè)試方法動(dòng)態(tài)測(cè)試方法人工測(cè)試方法計(jì)算機(jī)輔助靜態(tài)分析方法白盒測(cè)試方法黑盒測(cè)試方法任務(wù)2 進(jìn)行白盒測(cè)試目前圖

6、書管理系統(tǒng)代碼已經(jīng)編寫完身份驗(yàn)證部分的代碼。如何設(shè)計(jì)合理的測(cè)試數(shù)據(jù),才能讓這個(gè)函數(shù)中的所有代碼都跑一遍,并能夠驗(yàn)證其邏輯實(shí)現(xiàn)的合理性,檢驗(yàn)程序中是否存在問題。181 白盒測(cè)試白盒測(cè)試把程序看成裝在一個(gè)透明的白盒子里,也就是完全了解程序的結(jié)構(gòu)和處理過程。這種方法按照程序內(nèi)部的邏輯測(cè)試程序,檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作。白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試。19典型的白盒測(cè)試方法邏輯覆蓋基本路徑測(cè)試條件測(cè)試數(shù)據(jù)流測(cè)試循環(huán)測(cè)試控制結(jié)構(gòu)測(cè)試2 邏輯覆蓋方法邏輯覆蓋是設(shè)計(jì)白盒測(cè)試方案的一種技術(shù),是對(duì)一系列測(cè)試過程的總稱,這組測(cè)試過程逐漸進(jìn)行越來越完整的通路測(cè)試。邏輯覆蓋方法(1)語句覆蓋(2)判定覆

7、蓋(3)條件覆蓋(4)判定/條件覆蓋(5)條件組合覆蓋舉例PROCEDURE SAMPAL (A,B:REAL; VAR X:REAL); BEGIN IF (A1) AND (B=0) THEN X:=X/A IF (A=2) OR (X1) THEN X:=X+1 END; 開始(A1) AND (B=0)(A=2) OR (X1)返回X=X/AX=X+1FFTTabdce(1)語句覆蓋使程序中每個(gè)語句至少執(zhí)行一次只需設(shè)計(jì)一個(gè)測(cè)試用例,覆蓋ace 路徑:A1 and B=0 and A=2A1 and B=0 and X/A 1 輸入數(shù)據(jù): A=2, B=0, X=4 即達(dá)到了語句覆蓋。語

8、句覆蓋是最弱的邏輯覆蓋 (2)判定覆蓋使每個(gè)判定的真假分支都至少執(zhí)行一次??稍O(shè)計(jì)兩組測(cè)試用例:第一個(gè)判定表達(dá)式為真并且第二個(gè)判定表達(dá)式為假:P1TP2F A=3,B=0 ,X=0 可覆蓋acd分支 第一個(gè)判定表達(dá)式為假并且第二個(gè)判定表達(dá)式為真:P1FP2T A=2,B=1 ,X=1 可覆蓋abe分支 兩組測(cè)試用例可覆蓋所有判定的真假分支 判定覆蓋仍是弱的邏輯覆蓋(3)條件覆蓋使每個(gè)判定的每個(gè)條件的可能取值至少執(zhí)行一次。例子中共有兩處判定表達(dá)式,每個(gè)表達(dá)式中有兩個(gè)條件,為了做到條件覆蓋應(yīng)該選取測(cè)試數(shù)據(jù)使得:在第一個(gè)判斷表達(dá)式中有下述結(jié)果出現(xiàn): A1,A 1,B=0,B 0 在第二個(gè)判定表達(dá)式中有

9、下述結(jié)果出現(xiàn): A=2,A 2,X1,X 1使用下面兩組數(shù)據(jù)就可以滿足上述覆蓋標(biāo)準(zhǔn):T1T2F3F4 A=2,B=0,X=4 可覆蓋c、e分支 F1F2T3T4 A=1,B=1,X=1 可覆蓋b、d分支 (4)判定條件覆蓋選取足夠多的測(cè)試用例,使判斷中的每個(gè)條件的所有可能取值至少執(zhí)行一次,同時(shí)每個(gè)判斷本身的所有可能判斷結(jié)果至少執(zhí)行一次.針對(duì)例子,下面兩組測(cè)試數(shù)據(jù)滿足判定條件覆蓋。P1TT1T2P2TT3T4 A=2, B=0, X=4P1FF1F2P2FF3F4 A=1,B=1,X=1條件覆蓋不一定包含判定覆蓋 判定覆蓋也不一定包含條件覆蓋(5) 條件組合覆蓋條件組合覆蓋是更強(qiáng)的邏輯覆蓋標(biāo)準(zhǔn),

10、它要求選取足夠多的測(cè)試數(shù)據(jù),使得每個(gè)判定表達(dá)式中條件的各種可能組合都至少出現(xiàn)一次。條件組合覆蓋是前述幾種覆蓋標(biāo)準(zhǔn)中最強(qiáng)的,但是不一定能夠執(zhí)行到程序中的每條路徑。上述例子共有8種可能的條件組合:A1,B=0A1,B0A1,B=0A 1,B0A=2,X1A2,X1A2,X1A2,X1下面的四組數(shù)據(jù)可以使上面列出來的的八種條件組合每種至少出現(xiàn)一次:A=2,B=0,X=4(針對(duì)1,5兩種組合,覆蓋路徑ce)A=2,B=1,X=1(針對(duì)2,6兩種組合,覆蓋路徑be)A=1,B=0,X=2(針對(duì)3,7兩種組合,覆蓋路徑be )A=1,B=1,X=1( 針對(duì)4,8兩種組合,覆蓋路徑bd )練習(xí)參考答案語句覆

11、蓋1. a路徑 x=80,y=802. bcef 路徑不存在3. bcf 路徑 (x=80 and y=80) and (x=90 and y=75) and (x75 or y=90 ,80=y=80 and y=80) and (x90 or y=75 and y=90) 80=80=90測(cè)試用例:x=85,y=90 參考答案判定覆蓋 1. 路徑: a 條件: P1T x=90 and y=90 測(cè)試用例: x=90,y=90 2. 路徑: bce,不可能 3. 路徑: dbe 條件: P1FP2FP3T x=75 and y=90 測(cè)試用例 : x=75,y=90 4. 路徑: bcf

12、條件: P1FP2TP3F x=90 and y=75 and y80 測(cè)試用例: x=90,y=75條件覆蓋 1、路徑: dbe 條件: F1T2F3T4T5T6 x=75 and y=90 測(cè)試用例 : x=75,y=90 2、路徑: bcf 條件: T1F2T3T4T5F6 x=90 and y=75 and y80 測(cè)試用例: x=90,y=75 3、路徑: bdf 條件: F1F2F3F4F5F6 x75and y=80 y=80 x=90 y=75 x=75 y=90 x=80 y=90 y=75 y90 x=80 x=75 x=90 x80 y80 x90 y75 x75 y90

13、1. T1T2 x=80 y=802. T1F2T3T4T5F6 x=90 y=753. F1T2F3T4F5T6 x=74 y=914. F1F2F3F4F5F6 x=74 y=745. F1T2F3T4T5T6 x=75 y=916. T1F2T3F4T5F6 x=76 y=743 基本路徑測(cè)試基本路徑測(cè)試是Tom McCabe提出的一種白盒測(cè)試技術(shù)。使用這種技術(shù)設(shè)計(jì)測(cè)試用例時(shí),首先計(jì)算過程設(shè)計(jì)結(jié)果的邏輯復(fù)雜度,并以該復(fù)雜度為指南定義執(zhí)行路徑的基本集合,從該基本集合導(dǎo)出的測(cè)試用例可以保證程序中的每條語句至少執(zhí)行一次,而且每個(gè)條件在執(zhí)行時(shí)都將分別取真和假值。流圖在設(shè)計(jì)測(cè)試方案時(shí),往往需要仔細(xì)

14、分析程序的控制流。為了突出表示程序的控制流,可以使用流圖(也稱為程序圖)。流圖僅僅描繪程序的控制流程,它完全不表現(xiàn)對(duì)數(shù)據(jù)的具體操作以及分支或循環(huán)的具體條件。在流圖中用圓表示節(jié)點(diǎn),一個(gè)圓代表一條或多條語句。程序流程圖中的一個(gè)處理框序列和一個(gè)菱形判定框,可以映射成流圖中的一個(gè)節(jié)點(diǎn)。流圖中的箭頭線稱為邊,它和程序流程圖中的箭頭線類似,代表控制流。在流圖中一條邊必須終止于一個(gè)節(jié)點(diǎn),即使這個(gè)節(jié)點(diǎn)并不代表任何語句(實(shí)際上相當(dāng)于一個(gè)空語句)。由邊和節(jié)點(diǎn)圍成的面積稱為區(qū)域,當(dāng)計(jì)算區(qū)域數(shù)時(shí)應(yīng)該包括圖外部未被圍起來的那個(gè)區(qū)域。 舉例說明把程序流程圖映射成流圖的方法順序結(jié)構(gòu)選擇While循環(huán)Util循環(huán)由包含復(fù)合條

15、件的PDL映射成的流圖用任何方法表示的過程設(shè)計(jì)的結(jié)果,都可以翻譯成流圖用PDL表示的處理過程以及與之對(duì)應(yīng)的流圖procedure:sort1:do while records remain read record;2:if record field 1=03:then process record; store in buffer; incremert counter;4:elseifrecardfield2=05:then reset counter;6:else process record;store in file;7a:end ifendif7b:enddo8:end由PDL翻譯成的

16、流圖使用基本路徑測(cè)試技術(shù)設(shè)計(jì)測(cè)試用例的步驟如下:根據(jù)過程設(shè)計(jì)結(jié)果畫出相應(yīng)的流圖舉例:PROCEDURE average;/*這個(gè)過程計(jì)算不超過100個(gè)在規(guī)定值域內(nèi)的有效數(shù)字的平均值;同時(shí)計(jì)算有效數(shù)字的總和及個(gè)數(shù)。*/INTERFACE RETURNS average,totalinput,totalvalid;INTERFACE ACCEPTS value,minimum,maximum;TYPE value1.100 IS SCALAR ARRAY;TYPE average,total,input,totalvalid;minimum,maximum,sum IS SCALAR;TYPE i

17、 IS INTEGER;1:i1; total,inputtotalvalid0; sum0;2:DO WHILE valuei-9993:AND totalinput1004:increment totalinput by1;5:IF valueiminimum6:AND valueimaximum7:THEN increment totalvalid by 1; sumsum+valuei;8:ENDIF increment i by 1;9:ENDDO10:IF totalvalid011:THEN averagesum/totalvalid;12:ELSE average-999;13

18、:ENDIF END average求平均值過程的流圖2. 計(jì)算流圖的環(huán)形復(fù)雜度環(huán)形復(fù)雜度定量度量程序的邏輯復(fù)雜性。有了描繪程序控制流的流圖之后,可以用下述三種方法之一來計(jì)算環(huán)形復(fù)雜度。 1) 流圖中的區(qū)域數(shù)等于環(huán)形復(fù)雜度。 2) 流圖G的環(huán)形復(fù)雜度V(G)E-N+2,其中E是流圖中邊的條數(shù),N是流圖中節(jié)點(diǎn)數(shù)。 3)流圖G的環(huán)形復(fù)雜度V(G)P+1,其中P是流圖中判定節(jié)點(diǎn)的數(shù)目。 使用上述任何一種方法,都可以計(jì)算出本例求平均值流圖的環(huán)形復(fù)雜度為6。 3. 確定線性獨(dú)立路徑的基本集合 所謂獨(dú)立路徑是指至少引入程序的一個(gè)新處理語句集合或一個(gè)新條件的路徑,用流圖術(shù)語描述,獨(dú)立路徑至少包含一條在定義該

19、路徑之前不曾用過的邊。 使用基本路徑測(cè)試法設(shè)計(jì)測(cè)試用例時(shí),程序的環(huán)形復(fù)雜度決定了程序中獨(dú)立路徑的數(shù)量,而且這個(gè)數(shù)是確保程序中所有語句至少被執(zhí)行一次所需的測(cè)試數(shù)量的上界。 注意,獨(dú)立路徑的基本集合并不唯一。本例,由于環(huán)形復(fù)雜度為6,因此共有6條獨(dú)立路徑: 路徑1:1-2-10-11-13 路徑2:1-2-10-12-13 路徑3:1-2-3-10-11-13 路徑4:1-2-3-4-5-8-9-2- . 路徑5:1-2-3-4-5-6-8-9-2-. 路徑6:1-2-3-4-5-6-7-8-9-2-. 路徑4、5、6后面的省略號(hào)(.)表示,可以后接通過控制結(jié)構(gòu)其余部分的任意路徑(例如,10-11

20、-13)。 注意,路徑1和路徑3不能獨(dú)立測(cè)試。4設(shè)計(jì)可強(qiáng)制執(zhí)行基本集合中每條路徑的測(cè)試用例 應(yīng)該選取數(shù)據(jù)使得在測(cè)試每條路徑時(shí)都適當(dāng)?shù)卦O(shè)置好了各個(gè)判定節(jié)點(diǎn)的條件。可以測(cè)試上述基本集合的測(cè)試用例如下:路徑1的測(cè)試用例: valuek有效輸入值,其中ki(i的定義在下面)valuei-999,其中2i100 預(yù)期結(jié)果:基于k的正確平均值和總數(shù) 注意,路徑1無法獨(dú)立測(cè)試,必須作為路徑4、5和6的一部分來測(cè)試。路徑2的測(cè)試用例: value1-999 預(yù)期結(jié)果:average-999,其他都保持初始值路徑3的測(cè)試用例:試圖處理101個(gè)或更多個(gè)值 valuei有效輸入值,其中i100前100個(gè)數(shù)值應(yīng)該是有

21、效輸入值預(yù)期結(jié)果:與測(cè)試用例1相同注意,路徑3無法獨(dú)立測(cè)試,可以作為路徑4、5、6的一部分來測(cè)試。路徑4的測(cè)試用例: valuei=有效輸入值,其中i100 valuekminimum,其中ki 預(yù)期結(jié)果:基于k的正確平均值和總數(shù)。路徑5的測(cè)試用例: valuei有效輸入值,其中i100 valuekmaximum,其中ki 預(yù)期結(jié)果:其于k的正確平均值和總數(shù)路徑6的測(cè)試用例: valuei=有效輸入值,其中i100 預(yù)期結(jié)果:正確的平均值和總數(shù)任務(wù)3 進(jìn)行黑盒測(cè)試當(dāng)圖書管理系統(tǒng)已經(jīng)完成了系統(tǒng)的集成及集成測(cè)試之后,整個(gè)程序處在可運(yùn)行狀態(tài)。下一步我們需要確認(rèn)用戶的需求是否已經(jīng)得到滿足。下面這段文

22、字是從圖書管理系統(tǒng)需求規(guī)格說明書中摘取的借閱功能的需求描述,現(xiàn)在需要根據(jù)需求說明中的陳述驗(yàn)證我們的程序是否能夠達(dá)到預(yù)定的目標(biāo)。53541 黑盒測(cè)試技術(shù) 黑盒測(cè)試著重測(cè)試軟件的功能需求,也就是說,黑盒測(cè)試讓軟件工程師設(shè)計(jì)出能充分檢查程序所有功能需求的輸入條件集。黑盒測(cè)試并不能取代白盒測(cè)試技術(shù),它是與白盒測(cè)試互補(bǔ)的方法,它很可能發(fā)現(xiàn)白盒測(cè)試不易發(fā)現(xiàn)的其他不同類型的錯(cuò)誤。黑盒測(cè)試力圖發(fā)現(xiàn)下述類型的錯(cuò)誤: 功能不正確或遺漏了功能; 界面錯(cuò)誤; 數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部數(shù)據(jù)庫訪問錯(cuò)誤; 性能錯(cuò)誤; 初始化和終止錯(cuò)誤。 2 等價(jià)劃分等價(jià)劃分方法把程序的輸入域劃分成數(shù)據(jù)類,據(jù)此可以導(dǎo)出測(cè)試用例。理想的測(cè)試案例是獨(dú)

23、自發(fā)現(xiàn)一類錯(cuò)誤,從而減少設(shè)計(jì)測(cè)試用例的數(shù)量(一個(gè)用例代表了一類錯(cuò)誤)。如果把所有可能的輸入數(shù)據(jù)(有效的和無效的)劃分成若干個(gè)等價(jià)類,則可以合理地做出下述假定:每類中的一個(gè)典型值在測(cè)試中的作用與這一類中所有其他值的作用相同。2 等價(jià)類劃分等價(jià)類劃分的啟發(fā)規(guī)則: 規(guī)則1:如果輸入條件規(guī)定了取值范圍或者值的個(gè)數(shù),則可以確定一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類。 例如:假設(shè)輸入條件的取值范圍是0到150,則有效等價(jià)類定義是0 x150,無效等價(jià)類是x150。規(guī)則2:如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序要對(duì)每一個(gè)輸入值分別進(jìn)行處理,這時(shí)可以將每一個(gè)允許輸入的值定義為一個(gè)有效等價(jià)類,所有不允許輸入值的集合定義為

24、一個(gè)無效等價(jià)類。 例如,在學(xué)校內(nèi)對(duì)教授、副教授、講師、助教進(jìn)行統(tǒng)計(jì),則定義教授、副教授、講師、助教4個(gè)有效等價(jià)類,所有不符合這4類人員的輸入值(工程師)定義為一個(gè)無效等價(jià)類。規(guī)則3:如果規(guī)定了輸入條件是一個(gè)布爾量,則可以定義一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。例子:當(dāng)向系統(tǒng)中輸入密碼時(shí),該密碼是否正確結(jié)果就是布爾型的,存在/不存在(分成兩個(gè)等價(jià)類)。規(guī)則4:如果規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則,則可以定義一個(gè)有效等價(jià)類和若干個(gè)無效等價(jià)類。即把符合規(guī)則的輸入定義為一個(gè)有效等價(jià)類,把從各種不同角度違反規(guī)則的輸入定義為多個(gè)無效等價(jià)類。例:網(wǎng)絡(luò)游戲中升級(jí)裝備:角色的等級(jí)必須能夠使用該裝備;紅寶石1個(gè);翡翠2個(gè)

25、;藍(lán)寶3個(gè)。測(cè)試用例分為有效等價(jià)類一個(gè)(滿足上述條件);無效等價(jià)類四個(gè)分別違背上述四條原則中一條。 (1)等級(jí)不夠 (2)等級(jí)夠,缺紅寶 (3)等級(jí)夠,缺翡翠 (4)等級(jí)夠,缺藍(lán)寶設(shè)計(jì)等價(jià)類測(cè)試用例要注意:有效等價(jià)類的測(cè)試用例盡量公用,以減少測(cè)試的次數(shù);無效等價(jià)類必須每類一例,以防止漏掉錯(cuò)誤。例子:某一報(bào)表處理系統(tǒng),要求用戶輸入處理報(bào)表的日期。假設(shè)日期限制在1990年1月至1999年12月,即系統(tǒng)只能對(duì)該段時(shí)期內(nèi)的報(bào)表進(jìn)行處理。如果用戶輸入的日期不在此范圍內(nèi),則顯示輸入錯(cuò)誤信息。該系統(tǒng)規(guī)定日期由年、月的六位數(shù)字字符組成,前四位代表年,后兩位代表月。先用等價(jià)類劃分的方法設(shè)計(jì)測(cè)試用例,來測(cè)試系統(tǒng)的

26、日期檢查功能。 劃分等價(jià)類并編號(hào)輸入條件有效等價(jià)類無效等價(jià)類報(bào)表輸入的長(zhǎng)度及內(nèi)容1.6位數(shù)字字符2.有非數(shù)字字符3.少于6個(gè)4.多于6個(gè)年分范圍5.199019996.小于19907.大于1999月份范圍8.01129.等于0010.大于12 為等價(jià)類設(shè)計(jì)測(cè)試用例對(duì)于表中的1,5,8對(duì)應(yīng)的三個(gè)有效等價(jià)類條件,用一個(gè)測(cè)試用例覆蓋:測(cè)試數(shù)據(jù) 期望結(jié)果 覆蓋條件199709 輸入有效 1,5,8 為每一個(gè)無效等價(jià)類設(shè)計(jì)一個(gè)測(cè)試用例測(cè)試數(shù)據(jù) 期望結(jié)果 覆蓋條件1999KD 輸入無效 219975 輸入無效 31997005 輸入無效 4198912 輸入無效 6200012 輸入無效 7199800

27、輸入無效 9199713 輸入無效 10注意:無效等價(jià)類的測(cè)試用例中,不能出現(xiàn)相同的測(cè)試用例,否則相當(dāng)于一個(gè)測(cè)試用例覆蓋一個(gè)以上不合理等價(jià)類,使測(cè)試不完全3 邊界值分析由于很多時(shí)候在輸入的邊界比中間更加容易發(fā)生錯(cuò)誤,為此可用邊界值分析(boundary value analysis BVA)作為一種測(cè)試技術(shù)。邊界值分析選擇一組測(cè)試用例檢測(cè)邊界值邊界值分析是一種補(bǔ)充等價(jià)劃分的測(cè)試案例設(shè)計(jì)技術(shù),根據(jù)等價(jià)類的邊界來設(shè)計(jì)測(cè)試用例如果輸入條件指定為以a和b為邊界的范圍a,b,測(cè)試案例應(yīng)當(dāng)包括a、b、略大于a,略小于b的值如果輸入條件指定為一組值,測(cè)試用例應(yīng)當(dāng)執(zhí)行其中的最大和最小值,還應(yīng)當(dāng)測(cè)試略大于最小值

28、和略小于最大值的值指導(dǎo)輸入的原則也適用于輸出的條件(在產(chǎn)生最大輸出和最小輸出時(shí)用到的輸入的值也要測(cè)試)如果內(nèi)部的數(shù)據(jù)結(jié)構(gòu)由于定義的邊界(如數(shù)組有100的數(shù)據(jù)項(xiàng)),要在邊界上執(zhí)行程序例子:輸入條件測(cè)試說明測(cè)試數(shù)據(jù)期望結(jié)果選取理由報(bào)表日期的類型和長(zhǎng)度1、5個(gè)數(shù)字字符2、7個(gè)數(shù)字字符3、輸入為空4、一個(gè)非數(shù)字5、全部非數(shù)字1997319971231997A0qwerty輸入出錯(cuò)輸入出錯(cuò)輸入出錯(cuò)輸入出錯(cuò)輸入出錯(cuò)略小于6略大于6輸入極限只一個(gè)非法字符全部非法字符年份范圍198902200004輸入出錯(cuò)輸入出錯(cuò)略小于1990略大于1999月份199700199713199701199712輸入出錯(cuò)輸入出錯(cuò)輸入有效輸入有效略小于01略大于12邊界值

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論