05測試用例設(shè)計_第1頁
05測試用例設(shè)計_第2頁
05測試用例設(shè)計_第3頁
05測試用例設(shè)計_第4頁
05測試用例設(shè)計_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第5章 測試用例設(shè)計,本課教學(xué)目標(biāo),學(xué)習(xí)理解黑盒測試方法的基本概念 學(xué)習(xí)掌握黑盒測試的等價類劃分法 學(xué)習(xí)掌握黑盒測試的邊界值分析法 學(xué)習(xí)掌握黑盒測試的因果圖測試法和決策表法,課程內(nèi)容,5.1 測試用例設(shè)計概述 5.2 黑盒測試法的概念 5.3 黑盒測試用例設(shè)計方法 5.4 測試方法的選擇,5.1 測試用例設(shè)計概述,5.1.1 測試用例的定義和特征 5.1.2 使用測試用例的好處 5.1.3 測試用例的基本準(zhǔn)則 5.1.4 設(shè)計測試用例的著眼點 5.1.5 測試用例設(shè)計書寫標(biāo)準(zhǔn),5.1.1 測試用例的定義和特征,測試用例的定義: (1)測試用例是為特定的目的而設(shè)計的一組測試輸入、執(zhí)行條件和預(yù)期的

2、結(jié)果。 (2)測試用例是執(zhí)行的最小實體。 測試用例的特征: (1)最有可能抓住錯誤的; (2)不是重復(fù)的、多余的; (3)一組相似測試用例中最有效的; (4)既不是太簡單,也不是太復(fù)雜。,5.1.2 使用測試用例的好處,在開始實施測試之前設(shè)計好測試用例,可以避免盲目測試并提高測試效率。 測試用例的使用令軟件測試的實施重點突出、目的明確。,使用測試用例的好處(續(xù)),在軟件版本更新后只需修正少部分的測試用例便可展開測試工作,降低工作強(qiáng)度、縮短項目周期。 功能模塊的通用化和復(fù)用化使軟件易于開發(fā),而相對于功能模塊的測試用例的通用化和復(fù)用化則會使軟件測試易于開展,并隨著測試用例的不斷精化其效率也不斷攀升

3、。,5.1.3 設(shè)計測試用例的基本準(zhǔn)則,測試用例的代表性 能夠代表并覆蓋各種合理的和不合理的、合法的和非法的、邊界的和越界的以及極限的輸入數(shù)據(jù)、操作和環(huán)境設(shè)置等。 測試結(jié)果的可判定性 即測試執(zhí)行結(jié)果的正確性是可判定的,每一個測試用例都應(yīng)有相應(yīng)的期望結(jié)果。 測試結(jié)果的可再現(xiàn)性 即對同樣的測試用例,系統(tǒng)的執(zhí)行結(jié)果應(yīng)當(dāng)是相同的。,5.1.4 設(shè)計測試用例的著眼點,根據(jù)產(chǎn)品規(guī)格,測試基本功能; 考慮設(shè)計一般用戶(非專業(yè)人員)的使用方案; 考慮設(shè)計稀有或特殊的使用方案; 與系統(tǒng)其他組成部分的配合(如FAX和上網(wǎng)可能要用到MODEM,測試中考慮對設(shè)備的共享); 考慮特殊情況(如內(nèi)存和硬件的沖突等); 設(shè)計

4、極端情況(如內(nèi)存泄漏、破壞性測試等); 好的測試用例集能花費(fèi)最小的代價(人力、物力、財力、時間)做最好的測試。,5.1.5 測試用例設(shè)計書寫標(biāo)準(zhǔn),在ANSI/IEEE829-1983標(biāo)準(zhǔn)中列出了和測試設(shè)計相關(guān)的測試用例編寫規(guī)范和模板。標(biāo)準(zhǔn)模板中主要元素如下: 標(biāo)識符:惟一標(biāo)識每一個測試用例 測試項:準(zhǔn)確的描述所需要測試的項及其特征 測試環(huán)境要求:表征執(zhí)行該測試用例需要的測試環(huán)境 輸入標(biāo)準(zhǔn):執(zhí)行測試用例的輸入需求(這些輸入可能包括數(shù)據(jù)、文件或者操作) 輸出標(biāo)準(zhǔn):按照指定的環(huán)境和輸入標(biāo)準(zhǔn)得到的期望輸出結(jié)果 測試用例之間的關(guān)聯(lián):標(biāo)識該測試用例與其它的測試(或其它測試用例)之間的依賴關(guān)系,問題與討論,

5、郵箱登錄功能測試用例編寫?,輸入,輸出,黑盒測試(功能測試或數(shù)據(jù)驅(qū)動測試):在測試時,把被測程序視為一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下進(jìn)行。,5.2 黑盒測試法的概念,5.2 黑盒測試法的概念(續(xù)),采用黑盒測試的目的主要是在已知軟件產(chǎn)品所應(yīng)具有的功能的基礎(chǔ)上,進(jìn)行: (1)檢查程序功能能否按需求規(guī)格說明書的規(guī)定正常使用,測試各個功能是否有遺漏,檢測性能等特性要求是否滿足。 (2)檢測人機(jī)交互是否錯誤,檢測數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問是否錯誤,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出結(jié)果,并保持外部信息(如數(shù)據(jù)庫或文件)的完整性。 (3)檢測程序初始化和終止方面的

6、錯誤。,黑盒測試并不是無知的測試。 黑盒測試意味著產(chǎn)品內(nèi)部知識在測試中不起重要作用。 黑盒測試強(qiáng)調(diào)有關(guān)軟件的用戶和環(huán)境知識。,5.2 黑盒測試法的概念(續(xù)),5.3 黑盒測試用例設(shè)計方法,5.3.1 等價類劃分 5.3.2 邊界值分析 5.3.3 決策表法 5.3.4 因果圖 5.3.5 正交試驗法 5.3.6 錯誤推測法,5.3.1 等價類劃分法, 等價類的劃分原則 等價類劃分法的測試用例設(shè)計 常見等價類劃分測試形式 使用等價類劃分法測試的實例,等價類劃分法,等價類劃分法是一種重要的、常用的黑盒測試方法,它將不能窮舉的測試過程進(jìn)行

7、合理分類,從而保證設(shè)計出來的測試用例具有完整性和代表性。 舉例:設(shè)計這樣的測試用例,來實現(xiàn)一個對所有實數(shù)進(jìn)行開平方運(yùn)算( y = sqrt(x) )的程序的測試。 思考方向: 由于開平方運(yùn)算只對非負(fù)實數(shù)有效,這時需要將所有的實數(shù)(輸入域x)進(jìn)行劃分,可以分成:正實數(shù)、0 和 負(fù)實數(shù)。假設(shè)我們選定+1.4444代表正實數(shù),-2.345代表負(fù)實數(shù),則為該程序設(shè)計的測試用例的輸入為+1.4444、 0 和 -2.345。,等價類劃分法(續(xù)),等價類劃分法是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分為若干部分(子集),然后從每一個子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例。 所謂等價類是指某個輸入域的子

8、集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的,它們具有等價特性,即每一類的代表性數(shù)據(jù)在測試中的作用都等價于這一類中的其它數(shù)據(jù)。這樣,對于表征該類的數(shù)據(jù)輸入將能代表整個子集合的輸入。因此,可以合理的假定: 測試某等價類的代表值就是等效于對于這一類其它值的測試。, 等價類的劃分原則,等價類是輸入域的某個子集合,而所有等價類的并集就是整個輸入域。因此,等價類對于測試有兩個重要的意義: 完備性整個輸入域提供一種形式的完備性 無冗余性若互不相交則可保證一種形式的無冗余性 如何劃分?先從程序的規(guī)格說明書中找出各個輸入條件,再為每個輸入條件劃分兩個或多個等價類,形成若干的互不

9、相交的子集。 采用等價類劃分法設(shè)計測試用例通常分兩步進(jìn)行: (1)確定等價類,列出等價類表。 (2)確定測試用例。,等價類的劃分原則(續(xù)),劃分等價類可分為兩種情況: (1)有效等價類 是指對軟件規(guī)格說明而言,是有意義的、合理的輸入數(shù)據(jù)所組成的集合。利用有效等價類,能夠檢驗程序是否實現(xiàn)了規(guī)格說明中預(yù)先規(guī)定的功能和性能。 (2)無效等價類 是指對軟件規(guī)格說明而言,是無意義的、不合理的輸入數(shù)據(jù)所構(gòu)成的集合。利用無效等價類,可以鑒別程序異常處理的情況,檢查被測對象的功能和性能的實現(xiàn)是否有不符合規(guī)格說明要求的地方。,等價類的劃分原則(續(xù)),進(jìn)行等價類劃分的依據(jù):,(1)按照區(qū)間劃分 在輸入條件規(guī)定了取

10、值范圍或值的個數(shù)的情況下,可以確定一個有效等價類和兩個無效等價類。,例:在程序的規(guī)格說明書中,對輸入條件有這么一句話:“程序輸入條件為小于100大于10的整數(shù)x” 則有效等價類為10 x100,兩個無效等價類為x10和x100。,等價類的劃分原則(續(xù)),進(jìn)行等價類劃分的依據(jù):,例:程序輸入x取值于一個固定的枚舉類型1,3,7,15,且程序 中對這4個數(shù)值分別進(jìn)行了處理,則有效等價類為x=1、x=3、 x=7、x=15,無效等價類為x1,3,7,15的值的集合。,(2)按照數(shù)值劃分 在規(guī)定了一組輸入數(shù)據(jù)(假設(shè)包括 n個輸入值),并且程序要對每一個輸入值分別進(jìn)行處理的情況下,可確定 n 個有效等價

11、類(每個值確定一個有效等價類)和一個無效等價類(所有不允許的輸入值的集合)。,等價類的劃分原則(續(xù)),(3)按照數(shù)值集合劃分 在輸入條件規(guī)定了輸入值的集合或規(guī)定了“必須如何”的條件下,可以確定一個有效等價類和一個無效等價類(該集合有效值之外)。,例:程序輸入條件為取值為奇數(shù)的整數(shù)x,則有效等價類為x的值為奇數(shù)的整數(shù),無效等價類為x的值不為奇數(shù)的整數(shù)。,進(jìn)行等價類劃分的依據(jù):,等價類的劃分原則(續(xù)),例:程序輸入條件為以字符a開頭、長度為8的字符串,并且字符串不包含a z之外的其它字符,則有效等價類為滿足了上述所有條件的字符串,無效等價類為不以a開頭的字符串、長度不為8的字符串和包含了a z之外

12、其它字符的字符串。,(4)按照限制條件或規(guī)則劃分 在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則或限制條件的情況下,可確定一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。,進(jìn)行等價類劃分的依據(jù):,(5)細(xì)分等價類 在確知已劃分的等價類中各元素在程序中的處理方式不同的情況下,則應(yīng)再將該等價類進(jìn)一步劃分為更小的等價類,并建立等價類表。,進(jìn)行等價類劃分的依據(jù):,等價類的劃分原則(續(xù)), 等價類劃分法的測試用例設(shè)計,在設(shè)計測試用例時,應(yīng)同時考慮有效等價類和無效等價類測試用例的設(shè)計。 根據(jù)已列出的等價類表可確定測試用例,具體過程如下: (1)首先為等價類表中的每一個等價類分別規(guī)定一個唯

13、一的編號。 (2)設(shè)計一個新的測試用例,使它能夠盡量覆蓋尚未覆蓋的有效等價類。重復(fù)這個步驟,直到所有的有效等價類均被測試用例所覆蓋。 (3)設(shè)計一個新的測試用例,使它僅覆蓋一個尚未覆蓋的無效等價類。重復(fù)這一步驟,直到所有的無效等價類均被測試用例所覆蓋。, 常見等價類劃分測試形式,針對是否對無效數(shù)據(jù)進(jìn)行測試,可以將等價類測試分為: 標(biāo)準(zhǔn)等價類測試不考慮無效數(shù)據(jù)值,測試用例使用每個等價類中的一個值。 健壯等價類測試主要的出發(fā)點是考慮了無效等價類。對有效輸入,測試用例從每個有效等價類中取一個值;對無效輸入,一個測試用例有一個無效值,其他值均取有效值。 健壯等價類測試存在兩個問題: (1

14、)需要花費(fèi)精力定義無效測試用例的期望輸出 (2)對強(qiáng)類型的語言沒有必要考慮無效的輸入, 使用等價類劃分法測試的實例,實例1 城市電話號碼問題,城市電話號碼由三部分組成。它們的名稱和內(nèi)容分別是: 地區(qū)碼:空白或三位數(shù)字; 前 綴:首位非0或1的三位數(shù)字; 后 綴:4位數(shù)字。 假定被測程序能接受一切符合上述規(guī)定的電話號碼,拒絕所有不符合規(guī)定的電話號碼。根據(jù)該程序的規(guī)格說明,作等價類的劃分,并設(shè)計測試方案。,使用等價類劃分法測試的實例(續(xù)),實例1 城市電話號碼問題,第一步:劃分等價類,列出等價類列表,第二步:根據(jù)等價類列表確定測試用例,使用等價類劃分法測試的實例(續(xù)),問題與討論,保

15、險公司計算保費(fèi)費(fèi)率的程序 某保險公司的人壽保險的保險費(fèi)率依點數(shù)不同而有別,10點及10點以上保險費(fèi)率為0.6%,10點以下保險費(fèi)率為0.1%;而點數(shù)又是由 投保人的年齡、性別、婚姻狀況和撫養(yǎng)人數(shù)來決定,具體規(guī)則如下:,請使用等價類劃分法列出輸入域等價類表,并設(shè)計相應(yīng)的測試用例。,5.3.2 邊界值分析法, 邊界值分析法概要 邊界值分析法測試用例設(shè)計 邊界值分析法測試舉例, 邊界值分析法概要,邊界值分析法就是對輸入或輸出的邊界值進(jìn)行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價類劃分法的補(bǔ)充,這種情況下,其測試用例來自等價類的邊界

16、。 為什么使用邊界值分析法? 無數(shù)的測試實踐表明,大量的故障往往發(fā)生在輸入定義域或輸出值域的邊界上,而不是在其內(nèi)部。因此,針對各種邊界情況設(shè)計測試用例,通常會取得很好的測試效果。 怎樣用邊界值分析法設(shè)計測試用例? (1)首先確定邊界情況。通常輸入或輸出等價類的邊界就是應(yīng)該著重測試的邊界情況。 (2)選取正好等于、剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值。,舉例 常見的邊界值,對16-bit 的整數(shù)而言 32767 和 -32768 是邊界 報表的第一行和最后一行 數(shù)組元素的第一個和最后一個 循環(huán)的第 0 次、第 1 次和倒數(shù)第 2 次、最后一次,邊界值分析,邊

17、界值分析使用與等價類劃分法相同的劃分,只是邊界值分析假定錯誤更多地存在于劃分的邊界上,因此在等價類的邊界上以及兩側(cè)的情況設(shè)計測試用例。 例:測試計算平方根的函數(shù) 輸入:實數(shù) 輸出:實數(shù) 規(guī)格說明:當(dāng)輸入一個0或比0大的數(shù)的時候,返回其正平方根;當(dāng)輸入一個小于0的數(shù)時,顯示錯誤信息“平方根非法-輸入值小于0”并返回0;庫函數(shù)Print-Line可以用來輸出錯誤信息。,等價類劃分: 可以考慮作出如下劃分: 輸入 (i)=0 輸出 (a)=0 和 (b) Error 測試用例有兩個: 輸入4,輸出2。對應(yīng)于 (ii) 和 (a) 。 輸入-10,輸出0和錯誤提示。對應(yīng)于 (i) 和 (b) 。 邊界

18、值分析: 劃分(ii)的邊界為0和最大正實數(shù);劃分(i)的邊界為最小負(fù)實數(shù)和0。由此得到以下測試用例: 輸入 最小負(fù)實數(shù) 輸入 絕對值很小的負(fù)數(shù) 輸入 0 輸入 絕對值很小的正數(shù) 輸入 最大正實數(shù),邊界值分析(續(xù)),通常情況下,軟件測試所包含的邊界檢驗有幾種類型: 數(shù)字、字符、位置、質(zhì)量、大小、速度、方位、尺寸、 空間等 相應(yīng)地,以上類型的邊界值應(yīng)該在: 最大/最小、首位/末位、上/下、最快/最慢、最高/最低、 最短/最長、 空/滿等情況下,實例分析,舉例 利用邊界值作為測試數(shù)據(jù),內(nèi)部邊界值分析,在多數(shù)情況下,邊界值條件是基于應(yīng)用程序的功能設(shè)計而需要考慮的因素,可以從軟件的規(guī)格說明或常識中得到

19、,也是最終用戶可以很容易發(fā)現(xiàn)問題的。然而,在測試用例設(shè)計過程中,某些邊界值條件是不需要呈現(xiàn)給用戶的,或者說用戶是很難注意到的,但同時確實屬于檢驗范疇內(nèi)的邊界條件,稱為內(nèi)部邊界值條件或子邊界值條件。 內(nèi)部邊界值條件主要有下面幾種: 數(shù)值的邊界值檢驗 字符的邊界值檢驗 其它邊界值檢驗,小結(jié): 在實際的測試用例設(shè)計中,需要將基本的軟件設(shè)計要求和程序定義的要求結(jié)合起來,即結(jié)合基本邊界值條件和內(nèi)部邊界值條件來設(shè)計有效的測試用例。,數(shù)值的邊界值檢驗,計算機(jī)是基于二進(jìn)制進(jìn)行工作的,因此,軟件的任何數(shù)值運(yùn)算都有一定的范圍限制。,計算機(jī)數(shù)值運(yùn)算的范圍,字符的邊界值檢驗,在計算機(jī)軟件中,字符也是很重要的表示元素,

20、其中ASCII和Unicode是常見的編碼方式。下表中列出了一些常用字符對應(yīng)的ASCII碼值。,選擇測試用例的原則,(1) 如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個范圍的邊界值以及剛剛超過這個范圍邊界的值作為測試輸入數(shù)據(jù)。 (2) 如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)和比最大個數(shù)多1個、比最小個數(shù)少1個的數(shù)作為測試數(shù)據(jù)。 (3) 根據(jù)程序規(guī)格說明的每個輸出條件,使用原則 (1)。 (4) 根據(jù)程序規(guī)格說明的每個輸出條件,使用原則 (2) 。 (5) 如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合 (如有序表、順序文件等),則應(yīng)選取集合中的第一個和 最后一個元素作為測試用例。

21、 (6) 如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例。 (7) 分析程序規(guī)格說明,找出其它可能的邊界條件。, 邊界值分析法測試用例,采用邊界值分析測試的基本思想是:故障往往出現(xiàn)在輸入變量的邊界值附近。 因此,邊界值分析法利用輸入變量的最小值(min)、略大于最小值(min+)、輸入值域內(nèi)的任意值(nom)、略小于最大值(max-)和最大值(max)來設(shè)計測試用例。 邊界值分析法是基于可靠性理論中稱為“單故障”的假設(shè),即有兩個或兩個以上故障同時出現(xiàn)而導(dǎo)致軟件失效的情況很少,也就是說,軟件失效基本上是由單故障引起的。 因此,在邊界值分析法中獲

22、取測試用例的方法是: (1) 每次保留程序中一個變量,被保留的變量取正常值,讓其余的變量依次取min、min+、nom、max-和max。 (2) 對程序中的每個變量重復(fù) (1) 。,邊界值分析法測試用例(續(xù)),例1:有兩個輸入變量x1(ax1b)和x2(cx2d)的程序F的邊界值分析測試用例如下: , , , , , , , , ,邊界值分析法測試用例(續(xù)),例2:有二元函數(shù)f(x,y),其中x1,12,y1,31。 則采用邊界值分析法設(shè)計的測試用例是: , , , , , , , , 推論:對于一個含有n個變量的程序,采用邊界值分析法測試程序會產(chǎn)生4n+1個測試用例。,健壯性測試,健壯性測

23、試是作為邊界值分析的一個簡單的擴(kuò)充,它除了對變量的5個邊界值分析取值外,還需要增加一個略大于最大值(max+)以及略小于最小值(min-)的取值,檢查超過極限值時系統(tǒng)的情況。因此,對于有n個變量的函數(shù)采用健壯性測試需要6n+1個測試用例。 前面例1中的程序F的健壯性測試如下圖所示:, , , , , , , , , , , , ,問題與討論,練習(xí)1:有函數(shù)f(x,y,z),其中x1900,2100,y1,12,z1,31的。請寫出該函數(shù)采用邊界值分析法設(shè)計的測試用例。 練習(xí)2:請寫出該函數(shù)相應(yīng)的健壯性測試用例,5.3.3 決策表,在所有的黑盒測試方法中,基于決策表(也稱判定表)的測試是最為嚴(yán)格

24、、最具有邏輯性的測試方法。 決策表的概念:決策表是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的情況的工具。 決策表的優(yōu)點:能夠?qū)?fù)雜的問題按照各種可能的情況全部列舉出來,簡明并避免遺漏。因此,利用決策表能夠設(shè)計出完整的測試用例集合。 在一些數(shù)據(jù)處理問題當(dāng)中,某些操作的實施依賴于多個邏輯條件的組合,即:針對不同邏輯條件的組合值,分別執(zhí)行不同的操作。決策表很適合于處理這類問題。,決策表實例,規(guī)則,選項,“閱讀指南”決策表,決策表的組成,決策表通常由以下4部分組成: 條件樁列出問題的所有條件 條件項針對條件樁給出的條件列出所有可能的取值 動作樁列出問題規(guī)定的可能采取的操作 動作項指出在條件項的各組取值情況下

25、應(yīng)采取的動作,將任何一個條件組合的特定取值及相應(yīng)要執(zhí)行的動作稱為一條規(guī)則。在決策表中貫穿條件項和動作項的一列就是一條規(guī)則。,決策表的生成,構(gòu)造決策表的5個步驟: (1) 確定規(guī)則的個數(shù)。 有n個條件的決策表有2n個規(guī)則(每個條件取真、假值)。 (2) 列出所有的條件樁和動作樁。 (3) 填入條件項。 (4) 填入動作項,得到初始決策表。 (5) 簡化決策表,合并相似規(guī)則。 若表中有兩條以上規(guī)則具有相同的動作,并且在條件項之間存在極為相似的關(guān)系,便可以合并。 合并后的條件項用符號“-”表示,說明執(zhí)行的動作與該條件的取值無關(guān),稱為無關(guān)條件。,三角形問題的決策表,輸入三個整數(shù)a,b,c,分別作為三角

26、形的三條邊,現(xiàn)通過程序判斷由三條 邊構(gòu)成的三角形的類型為等邊三角形、等腰三角形、一般三角形以及構(gòu)不 成三角形。 現(xiàn)在要求輸入三個整數(shù)a,b,c,滿足以下條件: 1=a=100 1=b=100 1=c=100,三角形問題的決策表,規(guī)則,選項,問題與討論,NextDate函數(shù)有三個變量month,day和year的函數(shù),輸出為輸入日期后一天的日期。例如輸入為1989年5月16日,則該函數(shù)的輸出為1989年5月17日。要求輸入變量month,day和year均為整數(shù)值,并滿足下列條件: 條件1 1=month=12 條件2 1=day=31 條件3 1912=year=2050 請用決策表方法寫出該

27、函數(shù)的測試用例,5.3.4 因果圖法的簡介,因果圖法產(chǎn)生的背景: 等價類劃分法和邊界值分析方法都是著重考慮輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關(guān)系。這樣雖然各種輸入條件可能出錯的情況已經(jīng)測試到了,但多個輸入條件組合起來可能出錯的情況卻被忽視了。 如果在測試時必須考慮輸入條件的各種組合,則可能的組合數(shù)目將是天文數(shù)字,因此必須考慮采用一種適合于描述多種條件的組合、相應(yīng)產(chǎn)生多個動作的形式來進(jìn)行測試用例的設(shè)計,這就需要利用因果圖(邏輯模型)。,因果圖法的簡介(續(xù)),因果圖法是基于這樣的一種思想:一些程序的功能可以用判定表(或稱決策表)的形式來表示,并根據(jù)輸入條件的組合情況規(guī)定

28、相應(yīng)的操作。 因果圖法的定義:是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計測試用例的方法,它適合于檢查程序輸入條件的各種組合情況。 采用因果圖法設(shè)計測試用例的步驟: (1)根據(jù)程序規(guī)格說明書描述,分析并確定因(輸入條件)和果(輸出結(jié)果或程序狀態(tài)的改變),畫出因果圖。 (2)將得到的因果圖轉(zhuǎn)換為判定表。 (3)為判定表中每一列所表示的情況設(shè)計一個測試用例。,因果圖法的簡介(續(xù)),使用因果圖法的優(yōu)點: (1)考慮到了輸入情況的各種組合以及各個輸入情況之間的相互制約關(guān)系。 (2)能夠幫助測試人員按照一定的步驟,高效率的開發(fā)測試用例。 (3)因果圖法是將自然語言規(guī)格說明轉(zhuǎn)化成形式語言規(guī)格說明的一種

29、嚴(yán)格的方法,可以指出規(guī)格說明存在的不完整性和二義性。,因果圖,因果圖中用來表示4種因果關(guān)系的基本符號:,因果圖(續(xù)),因果圖中的4種基本關(guān)系 在因果圖的基本符號中,圖中的左結(jié)點ci表示輸入狀態(tài)(或稱原因),右結(jié)點ei表示輸出狀態(tài)(或稱結(jié)果)。ci 與 ei 取值0或1,0表示某狀態(tài)不出現(xiàn),1則表示某狀態(tài)出現(xiàn)。 恒等:若 c1 是1,則 e1 也為1,否則 e1 為0。 非:若 c1 是1,則 e1 為0,否則e1為1。 或:若 c1 或 c2 或 c3 是1,則 e1 為1,否則 e1 為0。 與:若 c1 和 c2 都是1,則 e1 為1,否則 e1 為0。,因果圖(續(xù)),因果圖中的約束 在

30、實際問題中輸入狀態(tài)相互之間、輸出狀態(tài)相互之間可能存在某些依賴關(guān)系,稱為“約束”。對于輸入條件的約束有E、I、O、R四種約束,對于輸出條件的約束只有M約束。 E約束(異):a和b中最多有一個可能為1,即a和b不能同時 為1。 I 約束(或):a、b、c中至少有一個必須為1,即 a、b、c不能同時為0。 O約束(唯一):a和b必須有一個且僅有一個為1。 R約束(要求):a是1時,b必須是1,即a為1時,b不能為0。 M約束(強(qiáng)制):若結(jié)果a為1,則結(jié)果b強(qiáng)制為0。,因果圖(續(xù)),因果圖中用來表示約束關(guān)系的約束符號:,因果圖(續(xù)),因果圖法最終生成的是決策表。利用因果圖生成測試用例的基本步驟如下:

31、(1)分析軟件規(guī)格說明中哪些是原因(即輸入條件或輸入條件的等價類),哪些是結(jié)果(即輸出條件),并給每個原因和結(jié)果賦予一個標(biāo)識符。 (2)分析軟件規(guī)格說明中的語義,找出原因與結(jié)果之間、原因與原因之間對應(yīng)的關(guān)系, 根據(jù)這些關(guān)系畫出因果圖。 (3)由于語法或環(huán)境的限制,有些原因與原因之間、原因與結(jié)果之間的組合情況不可能出現(xiàn)。為表明這些特殊情況,在因果圖上用一些記號表明約束或限制條件。 (4)把因果圖轉(zhuǎn)換為決策表。 (5)根據(jù)決策表中的每一列設(shè)計測試用例。,因果圖法測試舉例,實例 用因果圖法測試以下程序。 程序的規(guī)格說明要求:輸入的第一個字符必須是#或*,第二個字符必須是一個數(shù)字,此情況下進(jìn)行文件的修

32、改;如果第一個字符不是#或*,則給出信息N,如果第二個字符不是數(shù)字,則給出信息M。 解題步驟: (1)分析程序的規(guī)格說明,列出原因和結(jié)果。 (2)找出原因與結(jié)果之間的因果關(guān)系、原因與原因之間的約束關(guān)系,畫出因果圖。 (3)將因果圖轉(zhuǎn)換成決策表。 (4)根據(jù)(3)中的決策表,設(shè)計測試用例的輸入數(shù)據(jù)和預(yù)期輸出。,因果圖法測試舉例(續(xù)),(1)分析程序規(guī)格說明中的原因和結(jié)果: (2)畫出因果圖(編號為10的中間結(jié)點是導(dǎo)出結(jié)果的進(jìn)一步原因):,因果圖法測試舉例(續(xù)),(3)將因果圖轉(zhuǎn)換成如下所示的決策表:,規(guī)則,選項,因果圖法測試舉例(續(xù)),(4)根據(jù)決策表中的每一列設(shè)計測試用例:,問題與討論,一個處

33、理單價為角錢的飲料的自動售貨機(jī)。其規(guī)格說明如下: 若投入角錢或元錢的硬幣,壓下【橙汁】或【啤酒】的按鈕,則相應(yīng)的飲料就送出來,若售貨機(jī)沒有零錢找,則一個顯示【零錢找完】的紅燈亮,這時在投入一元硬幣并押下按鈕后,飲料不送出來而且一元硬幣也退出來;若有零錢找,則顯示【零錢找完】的紅燈滅,在送出飲料的同時退還角硬幣。 請繪制出因果圖和判定表,并給出相應(yīng)的測試用例。,5.3.5 正交試驗法,正交試驗設(shè)計法(Orthogonal experimental design ),是從大量的試驗點中挑選出適量的、有代表性的點,應(yīng)用依據(jù)迦羅卡瓦理論導(dǎo)出的“正交表”,合理的安排試驗的一種科學(xué)的試驗設(shè)計方法 指標(biāo):通

34、常把判斷試驗結(jié)果優(yōu)劣的標(biāo)準(zhǔn)叫做試驗的指標(biāo) 因子(因素Factor):所有影響試驗指標(biāo)的條件 因子的狀態(tài)(水平Level):而影響實驗因子的,叫做因子的狀態(tài)(因子變量的取值),正交試驗法步驟,一:提取功能說明,構(gòu)造因子狀態(tài)表,正交試驗法步驟,二:加權(quán)篩選,生成因素分析表 計算各因子和狀態(tài)的權(quán)值,刪去一部分權(quán)值較小,即重要性較小的因子或狀態(tài),使最后生成的測試用例集縮減到允許范圍。,正交試驗法步驟,三:利用正交表構(gòu)造測試數(shù)據(jù)集 1、如果各個因子的狀態(tài)樹是不統(tǒng)一的,幾乎不可能出現(xiàn)均勻的情況,必須首先用邏輯命令來組合各因子的狀態(tài),作出布爾圖 2、根據(jù)布爾圖得到相應(yīng)階數(shù)的正交表 3、依照因果圖上根節(jié)點到葉

35、子節(jié)點的順序逐步替換正交表上的中間節(jié)點,得到最終的正交表,正交試驗法步驟,四:利用正交表每行數(shù)據(jù)構(gòu)造測試用例 正交表 正交表的表示形式:Ln(tc)其中:L為正交表的代號,n為行數(shù)(試驗次數(shù)),t為水平數(shù),c為列數(shù)(因素數(shù))。例如:L4(23),它表示需做4次實驗,最多可觀察3個因素,每個因素均為2水平。,L4(23),一個正交表中也可以各列的水平數(shù)不相等,我們稱它為混合型正交表,如L8(24 41),如下圖。此表的5列中,有1列為4水平,4列為2水平。根據(jù)正交表的數(shù)據(jù)結(jié)構(gòu)看出,正交表是一個n行c列的表,其中第j列由數(shù)碼1,2, tj 組成,這些數(shù)碼均各出現(xiàn)n/t 次,下圖中,第二列的數(shù)碼個數(shù)為2,t=2 ,即由1、2組成,各數(shù)碼均出現(xiàn)2次,如何查找正交表,1、Technical Support () 2、查Dr. GenichiTaguchi設(shè)計的正交表,http:/www.york.ac

溫馨提示

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

最新文檔

評論

0/150

提交評論