《軟件測試》課件第2章_第1頁
《軟件測試》課件第2章_第2頁
《軟件測試》課件第2章_第3頁
《軟件測試》課件第2章_第4頁
《軟件測試》課件第2章_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目二NextDate()函數(shù)的測試2.1問題情境2.2問題分析2.3任務(wù)設(shè)計與實施2.4知識總結(jié)2.5應(yīng)用實踐

NextDate()函數(shù)是有三個變量month、day和year的函數(shù),輸出的是輸入日期后一天的日期。例如,輸入2010年4月1日,則該函數(shù)的輸出為2010年4月2日。對該函數(shù)的正確性、健壯性予以測試。2.1問題情境

NextDate()函數(shù):輸入三個參數(shù)year、month和day組合成一個日期,要求輸入變量month、day和year均為整數(shù)值,并滿足下列條件:

條件1:1≤month≤12;

條件2:1≤day≤31;

條件3:1912≤year≤2050。2.2問題分析

用邊界值分析法對NextDate()函數(shù)進行正確性和健壯性測試。

步驟1:分析NextDate()函數(shù)的輸入?yún)?shù)與輸出參數(shù)(具體分析見2.2節(jié))。

步驟2:設(shè)計該程序的測試用例。

通過邊界值分析法,測試函數(shù)的健壯性,設(shè)計的測試用例如表2-1所示。2.3任務(wù)設(shè)計與實施表2-1測試用例的設(shè)計

續(xù)表步驟3測試程序并書寫測試結(jié)果報告。

用測試用例完成對程序的測試并書寫測試報告,測試結(jié)果如表2-2所示。表2-2測試結(jié)果

2.4.1黑盒測試方法——邊界值分析法

1.邊界值分析法的概念

邊界值分析法是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。通常,邊界值分析法可作為對等價類劃分法的補充,這種情況下,其測試用例來自等價類的邊界。在測試用例設(shè)計中,需要對輸入的條件進行分析并且找出其中的邊界值條件,通過對這些邊界值的測試查找出更多的錯誤。提出邊界值條件時,一定要測試臨近邊界的有效數(shù)據(jù),同時測試剛超過邊界的無效數(shù)據(jù)。2.4知識總結(jié)

2.邊界值分析法的基本思想

邊界值分析法的基本思想是:選取正好等于、剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值作為測試數(shù)據(jù)。邊界值分析法是最有效的黑盒測試法,但在邊界情況復(fù)雜的情況下,要找出適當(dāng)?shù)倪吔鐪y試用例,還需要針對問題的輸入域、輸出域邊界,耐心細致地逐個進行考察。

3.邊界值分析法與等價類劃分法的區(qū)別

(1)邊界值分析法不是從某等價類中隨便挑一個作為代表,而是要求這個等價類的每個邊界都要作為測試條件。

(2)邊界值分析法不僅要考慮輸入條件,還要考慮輸出結(jié)果的測試情況。

邊界值分析法使用與等價類劃分法相同的劃分,只是邊界值分析假定錯誤更多地存在于劃分的邊界上,因此利用等價類的邊界以及兩側(cè)的情況設(shè)計測試用例。例1測試計算平方根的函數(shù)。

輸入:實數(shù)。

輸出:實數(shù)。

規(guī)格說明:當(dāng)輸入一個0或比0大的數(shù)時,返回其正平方根;當(dāng)輸入一個小于0的數(shù)時,顯示錯誤信息“平方根非法—輸入值小于0”并返回0。

用等價類劃分法進行輸入的等價類劃分:

(1)可以考慮作出如下劃分:

輸入:(a)小于0;(b)大于等于0。

輸出:(c)

Error;(d)大于等于0。

(2)根據(jù)(1)的等價類劃分可以設(shè)計兩個測試用例:

·輸入4,輸出2。對應(yīng)于(b)和(d)。

·輸入

-10,輸出0和錯誤提示。對應(yīng)于(a)和(c)。

用邊界值分析法設(shè)計測試用例:

劃分(b)的邊界為0和最大正實數(shù);劃分(a)的邊界為最小負實數(shù)和0。由此得到以下測試用例:

·輸入{最小負實數(shù)};

·輸入{絕對值很小的負數(shù)};

·輸入0;

·輸入{絕對值很小的正數(shù)};

·輸入{最大正實數(shù)}。

4.常見的邊界值及內(nèi)部邊界值條件

1)常見的邊界值

對16bit的整數(shù)而言,32767和

-32768是邊界;

屏幕上光標(biāo)在最左上、最右下位置;

報表的第一行和最后一行;

數(shù)組元素的第一個和最后一個;

循環(huán)的第0次、第1次和倒數(shù)第2次、最后一次。

通常情況下,軟件測試所包含的邊界檢驗有幾種類型:數(shù)字、字符、位置、質(zhì)量、大小、速度、方位、尺寸、空間等。相應(yīng)地,以上類型的邊界值應(yīng)該是在最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最長、空/滿等情況下的值,如表2-3所示。表2-3利用邊界值作為測試數(shù)據(jù)

2)內(nèi)部邊界值條件

在多數(shù)情況下,邊界值條件是基于應(yīng)用程序的功能設(shè)計而需要考慮的因素,可以從軟件的規(guī)格說明或常識中得到,也是最終用戶可以很容易就發(fā)現(xiàn)問題的條件。然而,在測試用例設(shè)計過程中,某些邊界值條件是不需要呈現(xiàn)給用戶的,或者說用戶是很難注意到的,但它又確實屬于檢驗范疇內(nèi)的邊界值條件,這樣的邊界值條件稱為內(nèi)部邊界值條件或子邊界值條件。內(nèi)部邊界值條件主要有下面幾種:

數(shù)值的邊界值檢驗;

字符的邊界值檢驗;

其他邊界值檢驗。

在實際的測試用例設(shè)計中,需要將基本的軟件設(shè)計要求和程序定義的要求結(jié)合起來,即結(jié)合基本邊界值條件和內(nèi)部邊界值條件來設(shè)計有效的測試用例。

(1)數(shù)值的邊界值檢驗。計算機是基于二進制進行工作的,因此軟件的任何數(shù)值運算都有一定的范圍限制,如表2-4所示。例如對字節(jié)進行檢驗,邊界值條件可以設(shè)為254、255、256。表2-4計算機數(shù)值運算的范圍

(2)字符的邊界值檢驗。在計算機軟件中,字符也是很重要的表示元素,其中ASCII碼和Unicode碼是常見的編碼方式。表2-5中列出了一些常用字符對應(yīng)的ASCII碼值。表2-5常見字符的ASCII碼值在文本輸入或者文本轉(zhuǎn)換的測試過程中,需要非常清晰地了解ASCII碼的一些基本對應(yīng)關(guān)系,例如小寫字母z和大寫字母Z在表中的對應(yīng)是不同的,同時還必須考慮數(shù)據(jù)區(qū)域的劃分,從而定義有效等價類來設(shè)計測試用例。

(3)其他邊界值檢驗,包括默認(rèn)值、空值、空格、未輸入值、零、無效數(shù)據(jù)、不正確數(shù)據(jù)和干擾數(shù)據(jù)等。

5.基于邊界值分析方法選擇測試用例的原則

(1)如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達到這個范圍邊界的值,以及剛剛超越這個范圍邊界的值作為測試輸入數(shù)據(jù)。

例2如果程序的規(guī)格說明中規(guī)定:“重量在10公斤至50公斤范圍內(nèi)的郵件,其郵費計算公式為……”。作為測試用例,應(yīng)取10及50,還應(yīng)取10.01、49.99、9.99及50.01等。

(2)如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)、比最小個數(shù)少一、比最大個數(shù)多一的數(shù)作為測試數(shù)據(jù)。例3一個輸入文件應(yīng)包括1~255個記錄,則測試用例除可取1和255外,還應(yīng)取0及256等。

(3)將規(guī)則(1)和規(guī)則(2)應(yīng)用于輸出條件,即設(shè)計測試用例使輸出值達到邊界值及其左右的值。

例4某程序的規(guī)格說明要求計算出“每月保險金扣除額為0至1165.25元”,其測試用例可取0.00及1165.25,還可取

-0.01及1165.26等。

例5一個數(shù)據(jù)檢索系統(tǒng)的程序,要求每次“最少顯示1條、最多顯示4條情報摘要”,這時我們應(yīng)考慮的測試用例包括1和4,還應(yīng)包括0和5等。

(4)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個元素和最后一個元素作為測試用例。

(5)如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)邊界上的值作為測試用例。

(6)分析規(guī)格說明,找出其他可能的邊界條件。2.4.2健壯性測試

健壯性測試(RobustnessTesting)又稱為容錯性測試(FaultToleranceTesting)或魯棒性測試,用于測試系統(tǒng)在出現(xiàn)故障時,是否能夠自動恢復(fù)或者忽略故障繼續(xù)運行。為了使系統(tǒng)具有良好的健壯性,要求設(shè)計人員在設(shè)計系統(tǒng)時必須周密細致,尤其要注意妥善地進行系統(tǒng)異常的處理。

實際上,很多開發(fā)項目的設(shè)計者在設(shè)計過程中很容易忽略系統(tǒng)關(guān)于容錯方面的功能,這些多半是受到開發(fā)時間、人力、物力的限制。因此,系統(tǒng)容錯性差也成為目前軟件危機中的一個主要原因。不具備容錯性能的系統(tǒng)不是一個優(yōu)秀的系統(tǒng),在市場上也很難被用戶所接納。一個好的軟件系統(tǒng)必須經(jīng)過健壯性測試之后才能最終交付給用戶。

健壯性測試是作為邊界值分析法的一個簡單的擴充,它除了對變量的邊界值分析取值外,還需要增加一個略大于最大值(max+)以及略小于最小值(min-)的取值,檢查超過極限值時系統(tǒng)的情況。因此,對于有n個變量的函數(shù),進行健壯性測試時需要6n

+

1個測試用例。

說明:如果程序規(guī)格說明中沒有顯式地給出邊界值,則可以在設(shè)計測試用例前先設(shè)定取值的下限值和上限值。

1.對判斷三角形類型的程序進行邊界值分析法測試(程序由讀者自行完成)。

(1)分析判斷三角形類型的程序的輸入?yún)?shù)與輸出參數(shù)。

三個輸入?yún)?shù)a、b和c分別作為三角形的三條邊,要求a、b和c必須滿足以下條件:

條件11≤a≤100

條件21≤b≤1002.5應(yīng)用實踐條件31≤c≤100

條件4a<b

+

c

條件5b<a

+

c

條件6c<a

+

b

程序輸出的是由這三條邊構(gòu)成的三角形類型:等邊三角形、等腰三角形、一般三角形或非三角形(不能構(gòu)成三角形)。如果輸入值不滿足這些條件中的任何一個,則程序給出相應(yīng)的提示信息。

(2)設(shè)計該程序的測試用例。

通過等價類劃分法設(shè)計測試用例,如表2-6所示。

表2-6測試預(yù)期輸出

(3)測試三角形程序并書寫測試結(jié)果報告。

用測試用例完成對程序的測試并書寫測試報告。將上述測試用例逐一輸入到程序中,觀察并記錄結(jié)果,最后將其與預(yù)期輸出結(jié)果進行對比,分析得出結(jié)論。測試結(jié)果如表2-7所示。通過等價類劃分法的測試可知,該程序無明顯錯誤。表2-7測試輸出結(jié)果

2.現(xiàn)有一個學(xué)生標(biāo)準(zhǔn)化考試批閱試卷、產(chǎn)生成績報告的程序。其規(guī)格說明如下。程序的輸入文件由一些有80個字符的記錄組成,所有記錄分為三組,如圖2-1所示。圖2-1學(xué)生標(biāo)準(zhǔn)化考試批閱試卷、產(chǎn)生成績報告程序的輸入記錄

(1)標(biāo)題:只有一個記錄,其內(nèi)容為輸出成績報告的名字。

(2)試卷各題標(biāo)準(zhǔn)答案記錄:每個記錄均在第80個字符處標(biāo)以數(shù)字“2”。該組的第一個記錄的第1~3個字符為題目編號(取值為1~999),第10~59個字符給出第1~50題的答案(每個合法字符表示一個答案)。該組的第2,第3,…

個記錄對應(yīng)第51~100,第101~150,…題的答案。

(3)每個學(xué)生的答卷描述:每個記錄的第80個字符均為數(shù)字“3”。每個學(xué)生的答卷在若干個記錄中給出。如學(xué)生甲的首記錄第1~9字符給出學(xué)生姓名及學(xué)號,第10~59字符列出的是學(xué)生甲所做的第1至第50題的答案。若試題數(shù)超過50,則第2,第3,…記錄分別給出他的第51~100,第101~150,…題的解答。然后是學(xué)生乙的答卷記錄。

溫馨提示

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

評論

0/150

提交評論