第2章基于需求的測(cè)試生成_第1頁(yè)
第2章基于需求的測(cè)試生成_第2頁(yè)
第2章基于需求的測(cè)試生成_第3頁(yè)
第2章基于需求的測(cè)試生成_第4頁(yè)
第2章基于需求的測(cè)試生成_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2章基于需求的測(cè)試生成

講解人:林青霞引言設(shè)計(jì)測(cè)試輸入和相應(yīng)的預(yù)期輸出(即設(shè)計(jì)測(cè)試用例),是任何測(cè)試機(jī)構(gòu)最基本的技術(shù)活動(dòng)之一。常用的測(cè)試設(shè)計(jì)策略有:基于需求的測(cè)試生成,基于模型的測(cè)試生成和基于代碼的測(cè)試生成等。軟件需求是設(shè)計(jì)測(cè)試的基本出發(fā)點(diǎn),需求規(guī)范可以是非正式的規(guī)范、嚴(yán)格的規(guī)范或形式化的規(guī)范,也可以是這三種規(guī)范的混合體。需求規(guī)范的形式化程度越高,則越有機(jī)會(huì)進(jìn)行自動(dòng)化測(cè)試。軟件輸入域是測(cè)試設(shè)計(jì)的依據(jù),可從非正式的和嚴(yán)格的需求規(guī)范中提取出來(lái)。2.2測(cè)試用例選擇問(wèn)題關(guān)鍵:如何構(gòu)造測(cè)試用例集合,使得該集合能夠盡可能多地發(fā)現(xiàn)軟件中存在的缺陷。軟件輸入域:指軟件在執(zhí)行過(guò)程中可能接收的全部合法輸入的集合。窮舉測(cè)試:指測(cè)試人員逐個(gè)地使用輸入域中的所有元素對(duì)軟件實(shí)施測(cè)試。例:1.y=x+3x∈Z,x∈[1,12]

2.y=x+3x∈[1,12]基于需求的測(cè)試用例選擇方法等價(jià)類劃分邊界值分析類別劃分法因果圖分析基于謂詞的測(cè)試生成2.3等價(jià)類劃分對(duì)輸入范圍進(jìn)行劃分,把所有可能的輸入數(shù)據(jù),即程序輸入域劃分為若干個(gè)互不相交的子集,稱為等價(jià)類,然后從每個(gè)等價(jià)類中選取少數(shù)具有代表性的數(shù)據(jù)作為測(cè)試用例。一個(gè)軟件的全部輸入的集合至少分成兩個(gè)子集:一個(gè)包含所有正常和合法的輸入(E);另一個(gè)包含所有異常和非法輸入(U)。這兩個(gè)集合可進(jìn)一步劃分為若干子集。概括:

(1)交集為空

(2)并集為全集

(3)分為有效等價(jià)類和無(wú)效等價(jià)類2.3.2關(guān)系與等價(jià)類的劃分關(guān)系:一個(gè)n元組的集合。例:方法addList計(jì)算并返回一個(gè)整數(shù)列表之和,其對(duì)應(yīng)的關(guān)系可定義為:addList:L—>Z其中,L是包含所有整數(shù)列表的集合,Z是整數(shù)集。在劃分輸入域時(shí),常常采用下面的關(guān)系:R:I—>I,其中,I為輸入域,R為I上的關(guān)系,R定義了一個(gè)等價(jià)類,該等價(jià)類是I的子集。例2.3方法gprice以食品名稱作為輸入,查詢商品價(jià)格數(shù)據(jù)庫(kù)并返回相應(yīng)食品的單價(jià)(等價(jià)類pF);若無(wú)該食品,則返回錯(cuò)誤信息(等價(jià)類pNF)。pF和pNF都是gprice輸入域I的子集,同時(shí),二者形成了對(duì)輸入域I的一個(gè)劃分,有pFUpNF=I和pF∩pNF=?。2.3.2關(guān)系與等價(jià)類的劃分例2.3方法gprice以食品名稱作為輸入,查詢商品價(jià)格數(shù)據(jù)庫(kù)并返回相應(yīng)食品的單價(jià)(等價(jià)類pF);若無(wú)該食品,則返回錯(cuò)誤信息(等價(jià)類pNF)。pF和pNF都是gprice輸入域I的子集,同時(shí),二者形成了對(duì)輸入域I的一個(gè)劃分,有pFUpNF=I和pF∩pNF=?。商品單價(jià)milk2.99tomato0.99cola3.992.3.3變量的等價(jià)類類別等價(jià)類示例約束等價(jià)類代表取值范圍(range)一個(gè)取值范圍內(nèi)的等價(jià)類;兩個(gè)取值范圍外的等價(jià)類speed∈[60,90])age:int;0≤age≤120{{50}↓,{75}↑,{100}↓}{{-10}↓,{75}↑,{130}↓}字符串(string)合法字符串的類和非法字符串的類fname:string;{{ε}↓,{Sue}↑,{Sue2}↓,{TooLonganame}↓}枚舉(enumeration)每個(gè)取值對(duì)應(yīng)一個(gè)等價(jià)類auto_color∈{red,blue,green}up:boolen{{red}↑,{blue}↑,{green}↑}{{true}↑,{false}↑}數(shù)組(array)合法數(shù)組等價(jià)類,空數(shù)組等價(jià)類和大于期望長(zhǎng)度數(shù)組的等價(jià)類Javaarray:int[]aName=newint[3]{{[]}↓,{[-10,20]}↑,{[-9,0,12,15]}↓}復(fù)合數(shù)據(jù)類型(compounddatatype):包含兩個(gè)或兩個(gè)以上相互獨(dú)立的屬性的輸入數(shù)據(jù)2.3.4一元?jiǎng)澐趾投嘣獎(jiǎng)澐忠辉郑好看沃豢紤]一個(gè)輸入變量,每個(gè)輸入變量形成對(duì)輸入域的一個(gè)劃分。多元化分:將所有輸入變量的笛卡爾積視為程序的輸入域I,并定義I上的關(guān)系R。例假設(shè)某軟件的輸入為整型數(shù)據(jù)x和y,其取值范圍為3≤x≤7和5≤y≤9。采用一元化分,可產(chǎn)生6個(gè)等價(jià)類:

E1:x<3E2:3≤x≤7E3:x>7

E4:y<5E5:5≤y≤9E6:y>9

若將x和y的笛卡爾積視為軟件的輸入域,可產(chǎn)生9個(gè)等價(jià)類:

E1:x<3,y<5E2:x<3,5≤y≤9E3:x<3,y>9

E4:3≤x≤7,y<5E5:3≤x≤7,5≤y≤9E6:3≤x≤7,y>9

E7:x>7,y<5E8:x>7,5≤y≤9E9:x>7,y>9采用多元化分方法得到的測(cè)試用例,往往比采用一元化分方法得到的測(cè)試用例更能充分地測(cè)試被測(cè)軟件,但其等價(jià)類數(shù)量會(huì)隨輸入變量個(gè)數(shù)的增加而成指數(shù)增長(zhǎng)。2.3.5等價(jià)類劃分的完整過(guò)程步驟1確定輸入域認(rèn)真分析需求并確定所有輸入、輸出變量,以及變量類型和變量使用條件。步驟2等價(jià)類劃分將每個(gè)變量的取值集合劃分為互不相交的子集,則每個(gè)子集對(duì)應(yīng)一個(gè)等價(jià)類,所有等價(jià)類構(gòu)成了對(duì)輸入域的一個(gè)劃分。步驟3組合等價(jià)類可采用多元化分方法,將等價(jià)類組合起來(lái)。(也可忽略該步驟:直接根據(jù)那些為單個(gè)變量定義的等價(jià)類選擇測(cè)試用例,但可能無(wú)法獲得高效的測(cè)試用例。)步驟4確定不可測(cè)的等價(jià)類有些輸入數(shù)據(jù)組合在實(shí)際測(cè)試過(guò)程中是無(wú)法生成的,包含這種數(shù)據(jù)的等價(jià)類就是不可測(cè)等價(jià)類。2.3.6等價(jià)類劃分實(shí)例例NextDate(Y,M,D),Y[1900,2100]M[1,12]D[1,31](1)d++(2)m++,d=1(3)y++,m=1,d=1有效等價(jià)類y:{平年},{閏年}m:{2},{12},{1,3,5,7,8,10},{4,6,9,11}d:{1,2,……,27},{28},{29},{30},{31}無(wú)效等價(jià)類y:{y<1900},{y>2100},{小數(shù)}m:{m<1},{m>12},{小數(shù)}d:{d<1},{d>31},{小數(shù)}弱一般等價(jià)類測(cè)試強(qiáng)一般等價(jià)類測(cè)試弱健壯等價(jià)類測(cè)試強(qiáng)健壯等價(jià)類測(cè)試2.3.7GUI設(shè)計(jì)與等價(jià)類GUI(GraphicalUserInterface,圖形用戶接口)是指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面。與早期計(jì)算機(jī)使用的命令行界面相比,圖形界面對(duì)于用戶來(lái)說(shuō)在視覺(jué)上更易于接受,操作更加簡(jiǎn)便。精心的GUI設(shè)計(jì)能實(shí)現(xiàn)對(duì)輸入域的限制,通常存在兩種GUI:一種能夠阻止所有的變量接受非法輸入;另一種允許部分變量接受非法輸入。設(shè)計(jì)測(cè)試用例時(shí)必須考慮GUI的具體實(shí)現(xiàn),合理的GUI設(shè)計(jì)可以大大降低測(cè)試用例的數(shù)量。2.4邊界值分析

邊界值分析是一種有效的測(cè)試用例選擇方法,可以發(fā)現(xiàn)位于等價(jià)類邊界處的軟件缺陷。通常在設(shè)計(jì)測(cè)試用例時(shí),同時(shí)采用邊界值分析和等價(jià)類劃分兩種方法。其生成測(cè)試用例的主要步驟如下:步驟1使用一元?jiǎng)澐址椒▌澐州斎胗?。步驟2為每種劃分確定邊界,也可利用輸入變量之間的特定關(guān)系確定邊界。步驟3設(shè)計(jì)測(cè)試用例,確保每個(gè)邊界值至少出現(xiàn)在一個(gè)測(cè)試輸入數(shù)據(jù)中。注意:確定邊界時(shí)需要仔細(xì)考慮個(gè)輸入變量之間的關(guān)系,進(jìn)而找出不明顯的邊界;使用單個(gè)變量等價(jià)類的笛卡爾積所構(gòu)成的輸入域劃分,將獲得更多的測(cè)試用例。(min-,min,min+,nom,max-,max,max+)2.5類別劃分法類別劃分法是一種從軟件需求生成測(cè)試用例的系統(tǒng)化方法,包含手工和自動(dòng)完成的步驟。其步驟如下:步驟1分析功能規(guī)范確定所有能夠獨(dú)立測(cè)試的功能模塊,對(duì)于大的軟件系統(tǒng)而言,功能模塊可能對(duì)應(yīng)于可獨(dú)立測(cè)試的各個(gè)子系統(tǒng),而子系統(tǒng)又可以進(jìn)一步分為可獨(dú)立測(cè)試的子模塊。步驟2確定類別對(duì)各被測(cè)模塊的功能規(guī)范進(jìn)行分析,確定相應(yīng)的輸入、環(huán)境中的對(duì)象以及各個(gè)參數(shù)和環(huán)境對(duì)象的特征。2.5類別劃分法步驟3類別劃分根據(jù)每個(gè)類別中各不同情況,對(duì)功能模塊進(jìn)行測(cè)試。步驟4確定約束條件對(duì)某功能模塊的測(cè)試,包括對(duì)該模塊各參數(shù)、環(huán)境對(duì)象所有選項(xiàng)的組合的測(cè)試。由于輸入?yún)?shù)間必須滿足某些約束條件,因此有一部分的選項(xiàng)組合是無(wú)法實(shí)現(xiàn)的。步驟5編(重)寫測(cè)試規(guī)范采用具有嚴(yán)格語(yǔ)法的測(cè)試規(guī)范語(yǔ)言編寫測(cè)試規(guī)范。步驟6處理測(cè)試規(guī)范對(duì)測(cè)試生成的若干個(gè)測(cè)試框架進(jìn)行分析,找出框架中以相同方式測(cè)試被測(cè)軟件的冗余內(nèi)容。2.5類別劃分法步驟7評(píng)價(jià)生成器的輸出檢查步驟6所生成的各測(cè)試框架中是否包含冗余用例以及是否缺少某些用例,進(jìn)而轉(zhuǎn)入步驟5。步驟8生成測(cè)試腳本從測(cè)試框架產(chǎn)生的測(cè)試用例要被組合成測(cè)試腳本(即一組測(cè)試用例),通常將環(huán)境設(shè)置相同的測(cè)試用例編為一組,這樣可以提高測(cè)試驅(qū)動(dòng)器執(zhí)行測(cè)試用例的效率。2.6因果圖分析

等價(jià)類劃分法和邊界值分析方法都是著重考慮輸入條件,如果程序輸入之間沒(méi)有什么聯(lián)系,采用等價(jià)類劃分和邊界值分析是一種比較有效的方法。但如果輸入之間有關(guān)系,例如,約束關(guān)系、組合關(guān)系,這種關(guān)系用等價(jià)類劃分和邊界值分析是很難描述的,測(cè)試效果難以保障。因此必須考慮使用一種適合于描述對(duì)于多種條件的組合,產(chǎn)生多個(gè)相應(yīng)動(dòng)作的測(cè)試方法,因果圖正是在此背景下提出的。2.6因果圖分析

因果圖也稱作依賴關(guān)系模型,主要用于描述軟件輸入條件(即“原因”)與軟件輸出條件(即“結(jié)果”)之間的依賴關(guān)系?!霸颉笔侵杠浖枨笾心苡绊戃浖敵龅娜我廨斎霔l件;“結(jié)果”是指軟件對(duì)某些輸入條件的組合所做出的響應(yīng)。

利用因果圖方法生成測(cè)試用例的一般過(guò)程為:1)仔細(xì)研讀軟件需求規(guī)范,確定原因和結(jié)果,并賦予唯一的標(biāo)識(shí)。2)用因果圖描述原因與結(jié)果之間的依賴關(guān)系。3)將因果圖轉(zhuǎn)換為一個(gè)有限入口的判定表。4)根據(jù)判定表生成測(cè)試用例。2.6.1因果圖中的基本符號(hào)因果關(guān)系(實(shí)線原因在左,結(jié)果在右)c1e1恒等c1e1非~c1e1或c2c3∨c1e1與c2∧2.6.1因果圖中的基本符號(hào)原因之間的約束關(guān)系(虛線)ab互斥Eab包含Icab唯一ORab要求Mab屏蔽2.6.2創(chuàng)建因果圖創(chuàng)建因果圖的兩個(gè)步驟:1.確定哪些是原因,哪些是結(jié)果,明確因果關(guān)系和約束關(guān)系。2.構(gòu)造因果圖,表達(dá)提取到的依賴關(guān)系。例:某個(gè)軟件的規(guī)格說(shuō)明中包含這樣的要求:“第一列字符必須是A或B,第二列字符必須是一個(gè)數(shù)字,在此情況下進(jìn)行文件的修改。但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。2.6.2因果圖實(shí)例例:某個(gè)軟件的規(guī)格說(shuō)明中包含這樣的要求:“第一列字符必須是A或B,第二列字符必須是一個(gè)數(shù)字,在此情況下進(jìn)行文件的修改。但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。原因:

1--第一列字符是A;2--第一列字符是B;3--第二列字符是數(shù)字。結(jié)果:

21--修改文件;22--給出信息L;23--給出信息M。

1

2

11

3

23

21

22∨~∧~E2.6.3從因果圖生成判定表在所有的黑盒測(cè)試方法中,基于判定表的測(cè)試是最嚴(yán)格,最具有邏輯性的測(cè)試方法。判定表是把作為條件的所有輸入的各種組合值以及對(duì)應(yīng)輸出值都羅列出來(lái)而形成的表格。它能夠?qū)?fù)雜的問(wèn)題按照各種可能的情況全部列舉出來(lái),簡(jiǎn)明并避免遺漏。因此,利用判定表能夠設(shè)計(jì)出完整的測(cè)試用例集合。2.6.3從因果圖生成判定表實(shí)例例:某個(gè)軟件的規(guī)格說(shuō)明中包含這樣的要求:“第一列字符必須是A或B,第二列字符必須是一個(gè)數(shù)字,在此情況下進(jìn)行文件的修改。但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。樁123456781TTTTFFFF2TTFFTTFF3TFTFTFTF21--x

x

22--

xx23--

x

x

x2.6.3.1判定表組成判定表通常由4個(gè)部分組成:條件樁:列出了問(wèn)題的所有條件。通常認(rèn)為列出的條件的次序無(wú)關(guān)緊要。動(dòng)作樁:列出了問(wèn)題規(guī)定可能采取的操作。這些操作的排列順序,沒(méi)有約束。條件項(xiàng):列出針對(duì)它左列條件的取值,在所有可能情況下的真假值。動(dòng)作項(xiàng):列出在條件項(xiàng)的各種取值情況下應(yīng)該采取的動(dòng)作。規(guī)則:任何一個(gè)條件組合的特定取值及相應(yīng)要執(zhí)行的操作。在判定表中貫穿條件項(xiàng)和動(dòng)作項(xiàng)的一列就是一條規(guī)則。2.6.3.2判定表的生成步驟(1)確定規(guī)則的個(gè)數(shù)。有n個(gè)條件的決策表有2n個(gè)規(guī)則(每個(gè)條件取真、假值)。(2)列出所有的條件樁和動(dòng)作樁。(3)填入條件項(xiàng)。(4)填入動(dòng)作項(xiàng),得到初始判定表。(5)簡(jiǎn)化判定表,合并相似規(guī)則。若表中有兩條以上規(guī)則具有相同的動(dòng)作,并且在條件項(xiàng)之間存在極為相似的關(guān)系,便可以合并。合并后的條件項(xiàng)用符號(hào)“-”表示,說(shuō)明執(zhí)行的動(dòng)作與該條件的取值無(wú)關(guān),稱為無(wú)關(guān)條件。樁123456781TTTTFFFF2TTFFTTFF3TFTFTFTF21--x

x

22--

xx23--

x

x

x樁12345671TTTFFFF2TFFTTFF3-TFTFTF21-x

x

22-

xx23-

x

x

x2.7基于謂詞的測(cè)試生成

規(guī)則可以形式化地表示為謂詞。例如,考慮軟件需求“若打印機(jī)處于ON狀態(tài)且具備打印紙,則發(fā)送要打印的文件”。這句話包含一個(gè)條件和一個(gè)動(dòng)作。下面的謂詞,記為pr,表示這句話的條件部分:謂詞pr包含兩個(gè)由布爾運(yùn)算符“∧”連接的關(guān)系表達(dá)式。兩個(gè)關(guān)系表達(dá)式都使用了等于符號(hào)(=)。編程人員可能正確地為pr編碼,也可能沒(méi)有正確編碼,導(dǎo)致程序中存在缺陷。我們的目標(biāo)是,根據(jù)謂詞產(chǎn)生測(cè)試用例,從而可以確保在測(cè)試中發(fā)現(xiàn)某種類型的所有缺陷。這種用于驗(yàn)證謂詞實(shí)現(xiàn)是否正確的測(cè)試稱之為謂詞測(cè)試。2.7.1謂詞與布爾表達(dá)式設(shè)relop表示集合{<,>,≤,≥,=,≠}中的一個(gè)關(guān)系運(yùn)算符。設(shè)bop表示集合{∧,∨,∨—,﹁}中的一個(gè)布爾運(yùn)算符,其中∧,∨,∨—是二元布爾運(yùn)算符,﹁是一元布爾運(yùn)算符。布爾變量的取值集合為{true,false},對(duì)于給定的布爾變量a,﹁a和a都表示a的補(bǔ)。關(guān)系表達(dá)式是指形如e1relope2的表達(dá)式,其中e1和e2取值為有限或無(wú)限集合S。可將S中的元素進(jìn)行排序,從而可以使用任意關(guān)系運(yùn)算符對(duì)e2和e1進(jìn)行比較。

一個(gè)條件可以表示成簡(jiǎn)單謂詞或復(fù)合謂詞。簡(jiǎn)單謂詞就是一個(gè)布爾變量或關(guān)系表達(dá)式,其中變量可以取非。復(fù)合謂詞可以是一簡(jiǎn)單謂詞,或是由若干簡(jiǎn)單謂詞或其補(bǔ)通過(guò)二元布爾運(yùn)算符連接起來(lái)的一個(gè)表達(dá)式。謂詞當(dāng)中的圓括號(hào)表示布爾變量、關(guān)系表達(dá)式組合。2.7.1謂詞與布爾表達(dá)式2.7.1謂詞與布爾表達(dá)式布爾表達(dá)式可以表示為抽象語(yǔ)法樹(shù),如圖2-17所示。將謂詞pr的抽象語(yǔ)法樹(shù)記為AST(pr)。AST(pr)的每個(gè)葉結(jié)點(diǎn)代表一個(gè)布爾變量或一個(gè)關(guān)系表達(dá)式;AST(pr)的內(nèi)部結(jié)點(diǎn)是布爾運(yùn)算符,比如∧、∨、∨—、﹁,分別被稱作AND結(jié)點(diǎn)、OR結(jié)點(diǎn)、XOR結(jié)點(diǎn)、NOT結(jié)點(diǎn)。2.7.2謂詞測(cè)試中的故障模型本章論述的謂詞測(cè)試,重點(diǎn)關(guān)注三類故障:布爾運(yùn)算符故障、關(guān)系運(yùn)算符故障、算術(shù)表達(dá)式故障。引起布爾運(yùn)算符故障的原因在于:1)使用了錯(cuò)誤的布爾運(yùn)算符;2)漏用或誤用非運(yùn)算符;3)圓括號(hào)使用錯(cuò)誤;4)布爾變量使用錯(cuò)誤。當(dāng)錯(cuò)誤地使用關(guān)系運(yùn)算符時(shí)將導(dǎo)致關(guān)系運(yùn)算符故障。當(dāng)算術(shù)表達(dá)式的結(jié)果值產(chǎn)生數(shù)量為ε的偏差時(shí)(off-by-ε)就會(huì)出現(xiàn)算術(shù)表達(dá)式故障。

給定謂詞pr和測(cè)試用例t,用縮寫p(t)表示謂詞pr針對(duì)t所取的真值。例如,若pr為a<b∧r>s且t為〈a=1,b=2,r=0,s=4〉,則p(t)=false。下面舉例說(shuō)明上述的各種故障。2.7.2謂詞測(cè)試中的故障模型布爾運(yùn)算符故障設(shè)軟件需求規(guī)范要求當(dāng)(a<b)∨(c>d)∧e為真時(shí)軟件執(zhí)行某動(dòng)作。其中,a、b、c、d為整型變量,e為布爾變量。下面列出4個(gè)錯(cuò)誤編碼,分別包含不同的布爾運(yùn)算符故障:(a<b)∧(c>d)∧e布爾運(yùn)算符錯(cuò)誤(a<b)∨﹁(c>d)∧e非運(yùn)算符錯(cuò)誤(a<b)∧(c>d)∨e布爾運(yùn)算符錯(cuò)誤(a<b)∨(c>d)∧f布爾變量錯(cuò)誤(使用了f,而不是e)關(guān)系運(yùn)算符故障關(guān)系運(yùn)算符故障示例如下:(a=b)∨(c>d)∧e關(guān)系運(yùn)算符錯(cuò)誤(使用了=,而不是<)(a=b)∨(c≤d)∧e關(guān)系運(yùn)算符錯(cuò)誤(同時(shí)包含兩個(gè)故障)(a=b)∨(c>d)∨e關(guān)系運(yùn)算符錯(cuò)誤與布爾運(yùn)算符錯(cuò)誤2.7.2謂詞測(cè)試中的故障模型算術(shù)表達(dá)式故障考慮三種算術(shù)表達(dá)式的off-by-ε故障,分別為:off-by-ε、off-by-ε*、off-by-ε+??紤]正確關(guān)系表達(dá)式Ec,其形式為e1

relop1

e2;考慮錯(cuò)誤的關(guān)系表達(dá)式Ei,其形式e3relop2

e4;假設(shè)算術(shù)表達(dá)式e1、e2、e3、e4包含相同的變量集合。三種off-by-ε故障定義類型如下:Ei包含off-by-ε故障,如果對(duì)于任何測(cè)試用例e1=e2,有|e3-e4|=

ε。Ei包含off-by-ε*故障,如果對(duì)于任何測(cè)試用例e1=e2,有|e3-e4|≥

ε。Ei包含off-by-ε+故障,如果對(duì)于任何測(cè)試用例e1=e2,有|e3-e4|>ε。2.7.2謂詞測(cè)試中的故障模型算術(shù)表達(dá)式故障考慮三種算術(shù)表達(dá)式的off-by-ε故障,分別為:off-by-ε、off-by-ε*、off-by-ε+。例:假設(shè)正確的謂詞Ec為a<b+c,其中a、b為整型變量。設(shè)ε=1,則Ei的三種錯(cuò)誤故障分別如下:a<b假設(shè)c=1,Ei包含off-by-1故障,因?yàn)閷?duì)于任何測(cè)試用例a=b+c,有|a-b|=1。a<b+1假設(shè)c≥2,Ei包含off-by-1*故障,因?yàn)閷?duì)于任何測(cè)試用例a=b+c,有|a-(b+1)|≥1。a<b-1假設(shè)c>0,Ei包含off-by-1+故障,因?yàn)閷?duì)于任何測(cè)試用例a=b+c,有|a-(b+1)|>1。還存在另外兩類故障:缺失/冗余布爾變量故障2.7.3謂詞約束用BR表示符號(hào)集合{t,f,<,=,>,+ε,-ε}?!癇R”是布爾和關(guān)系(BooleanandRelational)的縮寫。集合BR中的元素稱為BR符號(hào)。一個(gè)BR符號(hào)定義了針對(duì)某個(gè)布爾變量或關(guān)系表達(dá)式的約束。例如,用符號(hào)“+ε”約束表達(dá)式E′:e1<e2時(shí),要滿足該約束就要求E′的某個(gè)測(cè)試用例確保0<e1-e2≤ε。同樣,符號(hào)“-ε”是對(duì)E′的另一個(gè)約束,要滿足該約束就要求E′的某個(gè)測(cè)試用例確保-ε≤e1-e2<0。對(duì)于pr中的變量,如果不存在滿足約束C的輸入取值,則稱約束C對(duì)謂詞pr是無(wú)效的(infeasible)。例如,對(duì)謂詞a>b∧b>d的約束(>,>),要求簡(jiǎn)單謂詞a>b和b>d都為真。但是,如果d>a為真的話,則該約束無(wú)效。謂詞pr上的約束C可有效指導(dǎo)測(cè)試集的設(shè)計(jì),為pr變量取值的選取提供清晰的線索。2.7.4謂詞測(cè)試準(zhǔn)則我們最關(guān)心的是如何從給定的謂詞pr生成測(cè)試集T,使其滿足:(a)T是最小集合;(b)T保證能

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論