邊界測(cè)試?yán)碚撆c實(shí)踐_第1頁(yè)
邊界測(cè)試?yán)碚撆c實(shí)踐_第2頁(yè)
邊界測(cè)試?yán)碚撆c實(shí)踐_第3頁(yè)
邊界測(cè)試?yán)碚撆c實(shí)踐_第4頁(yè)
邊界測(cè)試?yán)碚撆c實(shí)踐_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、邊界測(cè)試?yán)碚撆c實(shí)踐操作維護(hù)/測(cè)試工具室 譚曉松 定義 1)邊界范圍的測(cè)試)邊界范圍的測(cè)試 2)邊界點(diǎn)(上)的測(cè)試)邊界點(diǎn)(上)的測(cè)試 測(cè)試范圍 1)一個(gè)特定的值)一個(gè)特定的值 2)一個(gè)數(shù)值域)一個(gè)數(shù)值域 3)一組相關(guān)值()一組相關(guān)值(enum 類(lèi)型)類(lèi)型) 4)一個(gè)布爾條件)一個(gè)布爾條件邊界測(cè)試不僅僅只是數(shù)值范疇上的測(cè)試! 測(cè)試方法 1 1)如何把漫無(wú)邊際的隨機(jī)測(cè)試變成針?shù)h相對(duì)的測(cè))如何把漫無(wú)邊際的隨機(jī)測(cè)試變成針?shù)h相對(duì)的測(cè)試?試? 2 2)如何盡可能用少量有代表性的用例代替大量?jī)?nèi))如何盡可能用少量有代表性的用例代替大量?jī)?nèi)容相似的測(cè)試?容相似的測(cè)試? 3 3)如何判斷所有的情況都測(cè)試到了?)如何

2、判斷所有的情況都測(cè)試到了? 實(shí)現(xiàn)測(cè)試的高效性、經(jīng)濟(jì)性、完備性!實(shí)現(xiàn)測(cè)試的高效性、經(jīng)濟(jì)性、完備性! 定義 1)等價(jià)類(lèi)劃分是一種典型的黑盒測(cè)試方法。 2)所謂等價(jià)分類(lèi),就是把輸入數(shù)據(jù)的可能值劃分為若干等價(jià)類(lèi),使每類(lèi)中的任何一個(gè)測(cè)試用例都能代表同一等價(jià)類(lèi)中的其他測(cè)試用例。 3)如果從某一等價(jià)類(lèi)中任意選出一個(gè)測(cè)試用例未能發(fā)現(xiàn)程序的錯(cuò)誤,就可以合理地認(rèn)為在該類(lèi)中其他測(cè)試用例也不會(huì)發(fā)現(xiàn)程序的錯(cuò)誤!反之亦然。 實(shí)質(zhì):對(duì)揭露程序中的錯(cuò)誤來(lái)說(shuō),實(shí)質(zhì):對(duì)揭露程序中的錯(cuò)誤來(lái)說(shuō),集合中的每個(gè)輸入條件是等效的!集合中的每個(gè)輸入條件是等效的!類(lèi)別:類(lèi)別: 1)有效等價(jià)類(lèi): 有效等價(jià)類(lèi),指對(duì)程序有意義的、合理的輸入數(shù)據(jù)所構(gòu)

3、成的集合。在具體問(wèn)題中,有效等價(jià)類(lèi)可以是一個(gè),也可以是多個(gè)。 2)無(wú)效等價(jià)類(lèi): 無(wú)效等價(jià)類(lèi),指對(duì)程序無(wú)意義的、不合理的輸入數(shù)據(jù)所構(gòu)成的集合。對(duì)于具體的問(wèn)題,無(wú)效等價(jià)類(lèi)至少應(yīng)有一個(gè),也可能有多個(gè)。 在考慮在考慮劃分劃分等價(jià)類(lèi)時(shí),等價(jià)類(lèi)時(shí),必須必須注意區(qū)別注意區(qū)別這這兩種不同的情況兩種不同的情況! 問(wèn)題:如何確定等價(jià)類(lèi)?問(wèn)題:如何確定等價(jià)類(lèi)? 劃分原則 1)輸入條件代表一個(gè)范圍或是需要特定的值(例如:某輸入項(xiàng)值必須要求是100):確定一個(gè)有效等價(jià)類(lèi)和兩個(gè)無(wú)效等價(jià)類(lèi)。 2)輸入條件代表集合的某個(gè)元素或是布爾式:確定一個(gè)有效等價(jià)類(lèi)和一個(gè)無(wú)效等價(jià)類(lèi)。 3)如果我們確知,已劃分的等價(jià)類(lèi)中各元素各元素在程序

4、中的處理方式是不同的:則應(yīng)將此等價(jià)類(lèi)進(jìn)一步劃分成更小等價(jià)類(lèi)。 確定用例方法 首先為每個(gè)等價(jià)類(lèi)編號(hào),然后按以下方法確定用例: 1)設(shè)計(jì)一個(gè)測(cè)試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價(jià)類(lèi)。重復(fù)這一步,使所有有效等價(jià)類(lèi)均被測(cè)試用例覆蓋; 2)為每一個(gè)無(wú)效等價(jià)類(lèi)至少設(shè)計(jì)一個(gè)測(cè)試用例,該用例只覆蓋一個(gè)無(wú)效等價(jià)類(lèi)。重復(fù)這一步,使所有無(wú)效等價(jià)類(lèi)均被覆蓋。 問(wèn)題:有何特點(diǎn)?問(wèn)題:有何特點(diǎn)?Why? 特點(diǎn) 1)允許多個(gè)有效等價(jià)類(lèi)合用一個(gè)測(cè)試用例減少減少測(cè)試次數(shù),提高測(cè)試效率;測(cè)試次數(shù),提高測(cè)試效率; 2)每一個(gè)無(wú)效等價(jià)類(lèi)至少要用一個(gè)測(cè)試用例測(cè)測(cè)試完備性,防止漏掉某一類(lèi)錯(cuò)誤;試完備性,防止漏掉某一類(lèi)錯(cuò)誤; 3)

5、每次只覆蓋一個(gè)無(wú)效等價(jià)類(lèi)如果使用一如果使用一個(gè)測(cè)試用例可發(fā)現(xiàn)多個(gè)缺陷,則可能個(gè)測(cè)試用例可發(fā)現(xiàn)多個(gè)缺陷,則可能在測(cè)試中只發(fā)現(xiàn)其中的一個(gè),另一些在測(cè)試中只發(fā)現(xiàn)其中的一個(gè),另一些被忽視、掩蓋。被忽視、掩蓋。 小節(jié) 1)優(yōu)點(diǎn):等價(jià)類(lèi)劃分法能夠全面、系統(tǒng)地考慮黑盒測(cè)試的測(cè)試用例設(shè)計(jì)問(wèn)題; 2)缺點(diǎn):沒(méi)有注意選用一些“高效的”、“有針對(duì)性的”測(cè)試用例。 問(wèn)題:如何解決?問(wèn)題:如何解決? 解決之道: 引入“邊界值分析法” 定義 1)邊界值分析是一種補(bǔ)充等價(jià)劃分的測(cè)試用例設(shè)計(jì)技術(shù)。 2)所謂邊值分析法,是指列出單元功能、輸入、狀態(tài)及控制的合法邊界值和非法邊界值,設(shè)計(jì)測(cè)試用例,包含全部邊界值的方法。 3)典型地

6、包括IFIF語(yǔ)句中的判別值語(yǔ)句中的判別值,定義域、值定義域、值域邊界域邊界,空或畸形輸入空或畸形輸入,末受控狀態(tài)末受控狀態(tài)等。 實(shí)質(zhì):實(shí)質(zhì):邊值分析法邊值分析法就是設(shè)計(jì)使得就是設(shè)計(jì)使得被測(cè)程序能在邊界值及其附近運(yùn)行的被測(cè)程序能在邊界值及其附近運(yùn)行的測(cè)試用例!測(cè)試用例! 特點(diǎn) 1)邊值分析法不是“相同相同類(lèi)找一個(gè)例子類(lèi)找一個(gè)例子”的方法,而是以邊界情況的處理作為主要目標(biāo)專(zhuān)門(mén)設(shè)計(jì)測(cè)試用例的方法。 2)邊值分析不僅考查輸入的邊值,也要考慮輸輸出的邊值出的邊值(How do?How do?)。 Why do Boundary Value Analysis? 實(shí)踐表明,許多軟件在數(shù)組長(zhǎng)度數(shù)組長(zhǎng)度、循環(huán)循

7、環(huán)次數(shù)、次數(shù)、數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)以及輸入輸出數(shù)據(jù)輸入輸出數(shù)據(jù)的邊界邊界值附近值附近程序出錯(cuò)的概率往往較大。 運(yùn)行這個(gè)區(qū)域的測(cè)試用例,發(fā)現(xiàn)錯(cuò)誤的運(yùn)行這個(gè)區(qū)域的測(cè)試用例,發(fā)現(xiàn)錯(cuò)誤的概率很高!概率很高! 設(shè)計(jì)用例的原則 1)如果輸入條件是取值范圍,則應(yīng)以該范圍的邊界內(nèi)及剛剛超出范圍的邊界外的值,包括邊界,作為測(cè)試用例; 2)如果輸入條件規(guī)定了值的個(gè)數(shù)(特定值),則分別對(duì)最大、最小及稍小于最小、稍大于最大個(gè)數(shù)作為測(cè)試用例(例如:規(guī)定例如:規(guī)定一個(gè)表中只能插入一個(gè)表中只能插入5 5條記錄條記錄); 3)如果輸入條件代表一組值(一個(gè)集合),測(cè)試用例應(yīng)當(dāng)執(zhí)行其中的最大值和最小值,還應(yīng)當(dāng)測(cè)試略大于最小值和略小于

8、最大值的值; 4)如果程序中代表的輸入或輸出域是個(gè)有有序的集合序的集合(例如:順序文件、表格等)就應(yīng)注意選取有序集的第一個(gè)和最后一個(gè)元素作為測(cè)試用例; 5)如果程序數(shù)據(jù)結(jié)構(gòu)(例如:數(shù)組)有預(yù)定義的邊界,則 要測(cè)試其邊界的數(shù)據(jù)項(xiàng);其邊界的數(shù)據(jù)項(xiàng); 例如,對(duì)于數(shù)組例如,對(duì)于數(shù)組int a10,測(cè)試的下標(biāo)分為2組: a. (1、0、1) b. (8、9、10) 關(guān)注越界,否則關(guān)注越界,否則程序就可能向程序就可能向申請(qǐng)申請(qǐng)的空間以的空間以外讀寫(xiě)數(shù)據(jù)外讀寫(xiě)數(shù)據(jù)! 6)如果對(duì)程序數(shù)據(jù)結(jié)構(gòu)(變量)有預(yù)定義的大小要求,則要測(cè)試數(shù)據(jù)結(jié)構(gòu)(變量)大小的邊界。 例如,一個(gè)把某字串前X個(gè)字符改為相同字符* 的代碼段如

9、下: int a; a= /給a賦值,例如: scanf(%d, &a); char buffer = “I love footballn; memset(buffer, *,a); /可能發(fā)生越界如果如果a(sizeof(buffer)1),則將發(fā)生則將發(fā)生“寫(xiě)越界寫(xiě)越界”! 等價(jià)劃分與邊界值分析的關(guān)系 1)等價(jià)類(lèi)劃分的測(cè)試數(shù)據(jù)是在各個(gè)等價(jià)類(lèi))等價(jià)類(lèi)劃分的測(cè)試數(shù)據(jù)是在各個(gè)等價(jià)類(lèi)允許的值域內(nèi)任意選取允許的值域內(nèi)任意選取 2)邊界值分析的測(cè)試數(shù)據(jù)必須在邊界值附)邊界值分析的測(cè)試數(shù)據(jù)必須在邊界值附近選取近選取 關(guān)系實(shí)質(zhì):邊界值的測(cè)試重點(diǎn)即在各個(gè)等價(jià)關(guān)系實(shí)質(zhì):邊界值的測(cè)試重點(diǎn)即在各個(gè)等價(jià)類(lèi)的邊界上!

10、類(lèi)的邊界上! 邊界測(cè)試實(shí)踐 1)一般而言,用邊界值分析法設(shè)計(jì)的測(cè)試用例比等價(jià)分類(lèi)法的代表性更廣,發(fā)現(xiàn)錯(cuò)誤的能力也更強(qiáng);但是對(duì)邊界的分析和確定比較復(fù)雜! 2)邊界值分析法,在有些情況下,除了測(cè)試輸入值邊界外,還需要測(cè)試輸出值測(cè)試輸出值和其他可能存在的邊界。 例如: 被測(cè)程序是計(jì)算x( 10,10 )的正弦值的函數(shù)sin(x),其輸出具有3個(gè)邊界值1、0、1。則x還需要選取- /2、0、 /2作為測(cè)試數(shù)據(jù)。 3)常見(jiàn)邊界及錯(cuò)誤常見(jiàn)邊界及錯(cuò)誤:數(shù)組越界,數(shù)據(jù)結(jié)構(gòu)(變量)大小越界,循環(huán)變量錯(cuò)導(dǎo)致死循環(huán) ,IF語(yǔ)句中的判別值,定義域、值域邊界,空或畸形輸入,末受控狀態(tài)等 。 我們的方向 1)目前我們,輸出邊界的測(cè)試做得還不夠?。┠壳拔覀?,輸出邊界的測(cè)試做得還不夠!應(yīng)該多向此方面思考!應(yīng)該多向此方面思考! 2)杜絕邊界測(cè)試的隨意性,以規(guī)范、科學(xué)的)杜絕邊界測(cè)試的隨意性,以規(guī)范、科學(xué)的方法進(jìn)行邊界測(cè)試,以達(dá)到測(cè)試的高效性、經(jīng)方法進(jìn)行邊界測(cè)試,以達(dá)到測(cè)試的高效性、

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論