版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件測(cè)試軟 件 黑 盒 測(cè) 試概覽功能性概述等價(jià)類劃分邊界值分析 因果圖與決策表法其他測(cè)試法目標(biāo) 理解功能性測(cè)試的含義 使用等價(jià)類劃分的方法設(shè)計(jì)測(cè)試用例 使用邊界值分析的方法設(shè)計(jì)測(cè)試用例 使用因果圖的方法設(shè)計(jì)測(cè)試用例 使用決策表的方法設(shè)計(jì)測(cè)試用例目錄功能性測(cè)試概述功能性測(cè)試概述功能分解等價(jià)類劃分 邊界值分析 因果圖法 決策表法其他測(cè)試方法功能性測(cè)試概述任何程序都可以看作是將從輸入定義域取值映射到輸出值域的函數(shù)將系統(tǒng)看成黒盒,又稱為黒盒測(cè)試黒盒的實(shí)現(xiàn)是不需要了解的,只需要知道輸入和預(yù)期輸出軟件功能性測(cè)試就是通過(guò)大量的測(cè)試用例來(lái)檢驗(yàn)軟件的運(yùn)行效果。功能性測(cè)試模型輸入輸出黒盒內(nèi)部實(shí)現(xiàn)不可見(jiàn)測(cè)試用例測(cè)
2、試用例定義 測(cè)試用例的定義:(1)測(cè)試用例是為特定的目的而設(shè)計(jì)的一組測(cè)試輸入、 執(zhí)行條件和預(yù)期的結(jié)果。(2)測(cè)試用例是執(zhí)行的最小實(shí)體。 測(cè)試用例的特征:(1)最有可能抓住錯(cuò)誤的;(2)不是重復(fù)的、多余的;(3)一組相似測(cè)試用例中最有效的;(4)既不是太簡(jiǎn)單,也不是太復(fù)雜。測(cè)試用例定義 測(cè)試用例的代表性 能夠代表并覆蓋各種合理的和不合理的、合法的和非法的、邊界的和越界的以及極限的輸入數(shù)據(jù)、操作和環(huán)境設(shè)置等。 測(cè)試結(jié)果的可判定性 即測(cè)試執(zhí)行結(jié)果的正確性是可判定的,每一個(gè)測(cè)試用例都應(yīng)有相應(yīng)的期望結(jié)果。 測(cè)試結(jié)果的可再現(xiàn)性 即對(duì)同樣的測(cè)試用例,系統(tǒng)的執(zhí)行結(jié)果應(yīng)當(dāng)是相同的。功能性測(cè)試的優(yōu)點(diǎn)功能性測(cè)試與軟
3、件如何實(shí)現(xiàn)無(wú)關(guān),如果實(shí)現(xiàn)發(fā)生變化,功能性測(cè)試用例仍然可用(可重用性,面向回歸測(cè)試)測(cè)試用例開(kāi)發(fā)可以與軟件開(kāi)發(fā)同時(shí)進(jìn)行,可節(jié)省軟件開(kāi)發(fā)時(shí)間,通過(guò)軟件的用例(use case)就可以設(shè)計(jì)出大部分功能性測(cè)試用例功能性測(cè)試的缺點(diǎn)測(cè)試用例數(shù)量較大測(cè)試用例可能產(chǎn)生很多冗余功能性測(cè)試的覆蓋范圍不可能達(dá)到100%功能性測(cè)試的方法 黑盒測(cè)試主要是通過(guò)將“功能分解”,然后再按照以下方法來(lái)設(shè)計(jì)測(cè)試用例。等價(jià)類劃分邊界值分析因果圖法決策表法其他測(cè)試方法黑盒測(cè)試方法目錄功能性測(cè)試概述功能分解功能分解等價(jià)類劃分 邊界值分析 因果圖法 其他測(cè)試方法功能分解含義 把軟件分解為相對(duì)獨(dú)立的功能單元目的 通過(guò)功能分解可以明確軟件功
4、能性測(cè)試的內(nèi)容 使軟件功能性測(cè)試可度量,有利于測(cè)試監(jiān)督和管理功能分解功能分解應(yīng)把握好度 不能分解得過(guò)粗 不能分解得過(guò)細(xì) 可提高軟件功能性測(cè)試度量的準(zhǔn)確性最好按照功能的需求程度分解,要求高的分解的細(xì)一點(diǎn),要求低的,可以測(cè)試的粗糙一點(diǎn)。目錄功能性測(cè)試概述功能分解等價(jià)類劃分等價(jià)類劃分 邊界值分析 因果圖與決策表法其他測(cè)試方法等價(jià)類劃分等價(jià)類是指某個(gè)輸入域的子集合 在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的,子集合中包含的元素要么全部被正確處理,要么全部都沒(méi)有被正確處理。因此,可以把全部的輸入數(shù)據(jù)劃分成若干的等價(jià)類,在每一個(gè)等價(jià)類中取一個(gè)數(shù)據(jù)來(lái)進(jìn)行測(cè)試。這樣就能以較少的具有代表性的數(shù)據(jù)進(jìn)
5、行測(cè)試,而取得較好的測(cè)試效果。 等價(jià)類劃分等價(jià)類劃分是將程序的輸入域(較多見(jiàn))或輸出域(較少見(jiàn))的不同區(qū)間劃分為不同的數(shù)據(jù)類,以便導(dǎo)出測(cè)試用例每個(gè)等價(jià)類所揭示的程序錯(cuò)誤都是等價(jià)的要求此方法的測(cè)試用例能各自發(fā)現(xiàn)一類錯(cuò)誤,從而減少必須開(kāi)發(fā)的測(cè)試用例數(shù) 測(cè)試某等價(jià)類的代表值就是等效于對(duì)于這一類其它值的測(cè)試。例如:程序在輸入小于4的數(shù)得到結(jié)果5,那么使用2還是3或者都是一樣的等價(jià)類劃分 等價(jià)類劃分法是一種重要的、常用的黑盒測(cè)試方法,它將不能窮舉的測(cè)試過(guò)程進(jìn)行合理分類,從而保證設(shè)計(jì)出來(lái)的測(cè)試用例具有完整性和代表性。 舉例:設(shè)計(jì)這樣的測(cè)試用例,來(lái)實(shí)現(xiàn)一個(gè)對(duì)所有實(shí)數(shù)進(jìn)行開(kāi)平方運(yùn)算( y = sqrt(x)
6、)的程序的測(cè)試。 思考方向: 由于開(kāi)平方運(yùn)算只對(duì)非負(fù)實(shí)數(shù)有效,這時(shí)需要將所有的實(shí)數(shù)(輸入域x)進(jìn)行劃分,可以分成:正實(shí)數(shù)、0 和 負(fù)實(shí)數(shù)。假設(shè)我們選定+1.4444代表正實(shí)數(shù),-2.345代表負(fù)實(shí)數(shù),則為該程序設(shè)計(jì)的測(cè)試用例的輸入為+1.4444、 0 和 -2.345。等價(jià)類分類有效等價(jià)類 對(duì)于程序的需求說(shuō)明來(lái)說(shuō)是合理的,有意義的輸入數(shù)據(jù)所構(gòu)成的集合 利用它可以檢驗(yàn)程序是否實(shí)現(xiàn)了預(yù)期的功能和性能(確認(rèn)過(guò)程)無(wú)效等價(jià)類 對(duì)于程序的需求說(shuō)明來(lái)說(shuō)是不合理的,沒(méi)有意義的輸入數(shù)據(jù)所構(gòu)成的集合 利用它可以檢驗(yàn)程序?qū)τ跓o(wú)效數(shù)據(jù)的處理能力(驗(yàn)證過(guò)程)等價(jià)類劃分?jǐn)?shù)學(xué)含義A=x=B C=y=D問(wèn)題1:例子中共有
7、多少個(gè)等價(jià)類?有效的幾個(gè),無(wú)效的幾個(gè)?問(wèn)題2:寫出這些等價(jià)類,這些等價(jià)類是否可以合并?問(wèn)題3:最好用多少個(gè)數(shù)據(jù)來(lái)測(cè)試?測(cè)試數(shù)據(jù)是否可以減少?確立等價(jià)類的原則 嚴(yán)格的,可以按照變量來(lái)劃分有效和無(wú)效等價(jià)類。即:-1-先按照X來(lái)劃分有效等價(jià)類和無(wú)效等價(jià)類,然后再按照Y來(lái)劃分有效等價(jià)類和無(wú)效等價(jià)類-2-最后再形成相應(yīng)的測(cè)試用例。l X: 有效等價(jià)類為: A=x=B ; 無(wú)效等價(jià)類為:xA和Bx兩個(gè)無(wú)效等價(jià)類l Y: 有效等價(jià)類為:C=y=D ; 無(wú)效等價(jià)類為:yC和D=1&=50” 兩個(gè)無(wú)效等價(jià)類為“50” 確立等價(jià)類的原則如果輸入條件是一個(gè)布爾量,則可以確立一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類 如
8、果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序要對(duì)每一個(gè)輸入值分別進(jìn)行處理,這時(shí)要對(duì)每一個(gè)規(guī)定的輸入值確立一個(gè)有效等價(jià)類,而對(duì)于這組值之外的所有值確立一個(gè)無(wú)效等價(jià)類 確立等價(jià)類的原則 如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可以確立一個(gè)有效等價(jià)類(即遵守規(guī)則的數(shù)據(jù))和若干無(wú)效等價(jià)類(從不同角度違反規(guī)則的數(shù)據(jù)),例如: 測(cè)試密碼域,要求密碼必須是數(shù)字或字母 有效等價(jià)類為“密碼是數(shù)字和字母的組合”(還可以細(xì)分) 無(wú)效等價(jià)類為“密碼包括中文”、“密碼包括其它符號(hào)”等 如果確知已劃分的等價(jià)類中的各元素在程序中的處理方式不同(例如字母還要區(qū)分大小寫等),則應(yīng)進(jìn)一步劃分成更小的等價(jià)類 等價(jià)類測(cè)試用例設(shè)計(jì)分析輸入輸出劃分有
9、效等價(jià)類、無(wú)效等價(jià)類 設(shè)計(jì)測(cè)試用例,使其盡可能多的覆蓋有效等價(jià)類 設(shè)計(jì)測(cè)試用例,使其盡可能多的覆蓋無(wú)效等價(jià)類 等價(jià)類測(cè)試用例設(shè)計(jì) 在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)同時(shí)考慮有效等價(jià)類和無(wú)效等價(jià)類測(cè)試用例的設(shè)計(jì)。 根據(jù)已列出的等價(jià)類表可確定測(cè)試用例,具體過(guò)程如下:(1)首先為等價(jià)類表中的每一個(gè)等價(jià)類分別規(guī)定一個(gè)唯一的編號(hào)。(2)設(shè)計(jì)一個(gè)新的測(cè)試用例,使它能夠盡量覆蓋尚未覆蓋的有效等價(jià)類。重復(fù)這個(gè)步驟,直到所有的有效等價(jià)類均被測(cè)試用例所覆蓋。(3)設(shè)計(jì)一個(gè)新的測(cè)試用例,使它僅覆蓋一個(gè)尚未覆蓋的無(wú)效等價(jià)類。重復(fù)這一步驟,直到所有的無(wú)效等價(jià)類均被測(cè)試用例所覆蓋。 ?3的順序是否可以和2顛倒? ?123好還是132好
10、?為什么?等價(jià)類測(cè)試用例設(shè)計(jì) 針對(duì)是否對(duì)無(wú)效數(shù)據(jù)進(jìn)行測(cè)試,可以將等價(jià)類測(cè)試分為 標(biāo)準(zhǔn)等價(jià)類測(cè)試和健壯等價(jià)類測(cè)試。 標(biāo)準(zhǔn)等價(jià)類測(cè)試不考慮無(wú)效數(shù)據(jù)值,測(cè)試用例使用 每個(gè)等價(jià)類中的一個(gè)值。 健壯等價(jià)類測(cè)試主要的出發(fā)點(diǎn)是考慮了無(wú)效等價(jià)類。對(duì)有效輸入,測(cè)試用例從每個(gè)有效等價(jià)類中取一個(gè)值; 對(duì)無(wú)效輸入,一個(gè)測(cè)試用例有一個(gè)“無(wú)效值”,其他值均取“有效值”。 健壯等價(jià)類測(cè)試存在兩個(gè)問(wèn)題: (1)需要花費(fèi)精力定義無(wú)效測(cè)試用例的期望輸出 (2)對(duì)強(qiáng)類型的語(yǔ)言沒(méi)有必要考慮無(wú)效的輸入,程序可以自己檢測(cè)。舉例1(保險(xiǎn)費(fèi)率計(jì)算)按照輸入域劃分等價(jià)類的例子。 某保險(xiǎn)公司承擔(dān)人壽保險(xiǎn),該公司保費(fèi)計(jì)算方式為:保費(fèi)=投保額*保險(xiǎn)
11、率,保險(xiǎn)率依點(diǎn)數(shù)不同而有別,10點(diǎn)以上(含10點(diǎn))費(fèi)率為0.6%,10點(diǎn)以下費(fèi)率為0.1% 點(diǎn)數(shù)的計(jì)算是年齡、性別、婚姻、撫養(yǎng)人數(shù)所得的點(diǎn)數(shù)的總和 輸入:年齡、性別、婚姻、撫養(yǎng)人數(shù) 輸出:保險(xiǎn)率輸入數(shù)據(jù)說(shuō)明 年齡20396點(diǎn)40594點(diǎn)99以下59以上、20以下1以上2點(diǎn)性別男5點(diǎn)女3點(diǎn)婚姻已婚3點(diǎn)未婚5點(diǎn)撫養(yǎng)人數(shù)1人扣0.5點(diǎn)最多扣3點(diǎn)(四舍五入)第一步:輸入和輸出變量確認(rèn)按照輸入域劃分等價(jià)類的例子。輸入:年齡、性別、婚姻、撫養(yǎng)人數(shù)輸出:保險(xiǎn)率等價(jià)類劃分原則:按照輸入變量來(lái)確認(rèn)等價(jià)類(有效等價(jià)類和無(wú)效等價(jià)類)第二步:等價(jià)類劃分輸入年齡有效等價(jià)類2039(6點(diǎn))(1)4059 (4點(diǎn))(2)6
12、099、119 (2點(diǎn))(3)無(wú)效等價(jià)類空白(未知)(4)99 (未知)(6)包含非數(shù)字字符(未知)(7)性別有效等價(jià)類男(5點(diǎn))(8)女(3點(diǎn))(9)婚姻有效等價(jià)類已婚(3點(diǎn))(10)未婚(5點(diǎn))(11)是否可以有更多無(wú)效等價(jià)類?第二步:等價(jià)類劃分輸入撫養(yǎng)人數(shù)有效等價(jià)類12 (1點(diǎn))(12)34 (2點(diǎn))(13)4 (3點(diǎn))(14)無(wú)效等價(jià)類空白(未知)(15)=10點(diǎn)(0.6%)(18)10點(diǎn)(0.1%)(19)第三步:設(shè)計(jì)測(cè)試用例按照輸入域劃分等價(jià)類的例子。1、設(shè)計(jì)測(cè)試用例,盡可能的覆蓋尚未覆蓋的有效等價(jià)類。(1)(8)(10)(12)(2)(9)(11)(13)(3)(8)(10)(1
13、4)2、設(shè)計(jì)測(cè)試用俐,使得每一個(gè)新設(shè)計(jì)的測(cè)試用例只包含一個(gè)無(wú)效等價(jià)類,其他的選擇有效等價(jià)類。(4)(8)(10)(12)(5)(9)(11)(13)(6)(8)(10)(14)(7)(8)(10)(14)(1)(8)(10)(15)(2)(9)(11)(16)(3)(8)(10)(16)說(shuō)明:在設(shè)計(jì)無(wú)效部分的測(cè)試用例的時(shí)候,有效等價(jià)類部分,可以任意選擇。第四步:選取測(cè)試用例用例編號(hào)輸入輸出備注年齡性別婚姻撫養(yǎng)人數(shù)保險(xiǎn)率122男已婚10.6%(1)(8)(10)(12)(18) 13點(diǎn)245女未婚40.1%(2)(9)(11)(13)(19) 8點(diǎn)365男已婚80.1%(3)(8)(10)(14
14、)(19) 7點(diǎn)4空白男未婚1錯(cuò)誤(4)5-1男未婚2錯(cuò)誤(5)6122男未婚8錯(cuò)誤(6)7“tt1”女已婚1錯(cuò)誤(7)822女已婚空白錯(cuò)誤(15)922女已婚-1錯(cuò)誤(16)1022女未婚“ ct2 ”錯(cuò)誤(17)思考1、是否可以按照輸出域來(lái)設(shè)計(jì)測(cè)試用例?2、按照輸入域設(shè)計(jì)的結(jié)果和按照輸出域設(shè)計(jì)的結(jié)果會(huì)有何不同?舉例2(三角形問(wèn)題)按照輸出域劃分等價(jià)類的例子。 1、輸入3個(gè)整數(shù)變量a、b、c 2、a、b和c均在1100之間 3、a、b和c任意2個(gè)加起來(lái)大于第三個(gè) 4、測(cè)試是否為等邊三角形、等腰三角形、一般三角形和非三角形。第一步:輸入和輸出變量確認(rèn)按照輸入域劃分等價(jià)類的例子。輸入:三個(gè)變量(
15、a、b、c);a、b和c都在1到100之間。輸出:是否為三角形或各類三角形?分析:輸入域較為復(fù)雜,很難明晰界定。輸出域則較為清晰。等價(jià)類劃分原則:按照輸出變量來(lái)確認(rèn)等價(jià)類(有效等價(jià)類和無(wú)效等價(jià)類)第二步:等價(jià)類劃分輸出域有效等價(jià)類等邊三角形(1)等腰三角形(2)一般三角形(3)非三角形(4)a無(wú)效等價(jià)類100(6)b無(wú)效等價(jià)類100(8)c無(wú)效等價(jià)類100(10)增加的測(cè)試用例思考1、什么情況下按照輸入域來(lái)設(shè)計(jì)測(cè)試用例?什么情況下按照輸出域來(lái)設(shè)計(jì)測(cè)試用例?2、等價(jià)類劃分在我們編程過(guò)程中對(duì)哪些模塊比較有效?為什么?A、錄入模塊;B、查詢模塊;C、報(bào)表模塊;D、算法模塊;E、邏輯處理模塊。實(shí)際應(yīng)用
16、:有一個(gè)員工管理系統(tǒng),現(xiàn)對(duì)其錄入模塊進(jìn)行測(cè)試。其中,人員信息包括:1、編號(hào):必須有,系統(tǒng)自動(dòng)編號(hào);2、姓名:必須有,要求為不超過(guò)5個(gè)漢字;3、身份證:必須有,長(zhǎng)度為15或18位置,末尾為數(shù)字或X,注意大小寫;4、郵箱:要么為空白,輸入必須包含和.5、年齡:18-80之間的數(shù)字6、住址:可以空白注意:如果錄入正確,則提示錄入成功,錄入錯(cuò)誤,則提示數(shù)據(jù)不對(duì)。要求:1、確認(rèn)輸入域和輸出域;2、劃出有效等價(jià)類和無(wú)效等價(jià)類;3、給出測(cè)試用例的個(gè)數(shù)。4、請(qǐng)大家上來(lái)介紹自己的劃分。目錄功能性測(cè)試概述功能分解等價(jià)類劃分 邊界值分析邊界值分析 因果圖與決策表法其他測(cè)試方法邊界值分析 邊界值分析法就是對(duì)輸入或輸出
17、的邊界值進(jìn)行測(cè)試的一種黑盒測(cè)試方法。通常邊界值分析法是作為對(duì)等價(jià)類劃分法的補(bǔ)充,這種情況下,其測(cè)試用例來(lái)自等價(jià)類的邊界。 為什么使用邊界值分析法? 無(wú)數(shù)的測(cè)試實(shí)踐表明,大量的故障往往發(fā)生在輸入定義域或輸出值域的邊界上,而不是在其內(nèi)部。因此,針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,通常會(huì)取得很好的測(cè)試效果。 怎樣用邊界值分析法設(shè)計(jì)測(cè)試用例?(1)首先確定邊界情況。通常輸入或輸出等價(jià)類的邊界就是應(yīng)該著重測(cè)試的邊界情況。(2)選取正好等于、剛剛大于或剛剛小于邊界的值作為測(cè)試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值。舉例 常見(jiàn)的邊界值 對(duì)16-bit 的整數(shù)而言 32767 和 -32768 是邊界 屏幕上光標(biāo)
18、在最左上、最右下位置 報(bào)表的第一行和最后一行 數(shù)組元素的第一個(gè)和最后一個(gè) 循環(huán)的第 0 次、第 1 次和倒數(shù)第 2 次、最后一次邊界值分析數(shù)學(xué)含義A=x=B C=y=D確立邊界值的原則 如果輸入條件或輸出條件規(guī)定了值的范圍并且有效條件包括了值的邊界,可分別對(duì)邊界和略超出邊界取值,例如: 數(shù)據(jù)范圍是1=x=50正整數(shù) 邊界值取為:1、50、0、51 如果輸入條件或輸出條件規(guī)定了值的范圍并且有效條件不包括了值的邊界,可分別對(duì)邊界和略處于邊界內(nèi)取值,例如: 數(shù)據(jù)范圍是1x 輸入 (i)=0 輸出 (a)=0 和 (b) Error測(cè)試用例有兩個(gè): 輸入4,輸出2。對(duì)應(yīng)于 (ii) 和 (a) 。 輸
19、入-10,輸出0和錯(cuò)誤提示。對(duì)應(yīng)于 (i) 和 (b) 。邊界值分析:劃分(ii)的邊界為0和最大正實(shí)數(shù);劃分(i)的邊界為最小負(fù)實(shí)數(shù)和0。由此得到以下測(cè)試用例: 輸入 最小負(fù)實(shí)數(shù) 輸入 絕對(duì)值很小的負(fù)數(shù) 輸入 0 輸入 絕對(duì)值很小的正數(shù) 輸入 最大正實(shí)數(shù)舉例(找零錢最佳組合 )假設(shè)商店商品價(jià)格X皆不大于100元(整數(shù)),若顧客買一件商品,付款Y在100元內(nèi),求找給顧客的最少貨幣張數(shù)?貨幣面值: 50元R50 20元R20 10元R10 5元R5 2元R2 1元R1分析輸入X 1000 X = 100X 100X= Y = 100Y X 分析輸出0 = R50 = 10 = R20 = 20
20、= R10 = 10 = R5 = 10 = R2 = 20 = R1 100 X 100 Y = 50 找R50 20 = S 50 找R20 10 = S 20 找R10 5 = S 10 找R5 2 = S 5 找R2 1 = S 100 錯(cuò)誤 X = 0 錯(cuò)誤 0 X 100 錯(cuò)誤 0 X = 100, Y 100 ; 0X=100; X100 ; 0Y=100; Y=0 思考3:這個(gè)等價(jià)類劃分是否測(cè)試充分?漏掉了什么情況? 思考4:如果按照輸出結(jié)果劃分等價(jià)類,效果如何? 思考5: 應(yīng)用輸入結(jié)果的等價(jià)類劃分測(cè)試與邊界值分析相比,哪一個(gè)更簡(jiǎn)便,哪一個(gè)有效?如何協(xié)調(diào)?邊界值分析主題思想 采
21、用邊界值分析測(cè)試的基本思想是:故障往往出現(xiàn)在輸入變量的邊界值附近。 因此,邊界值分析法利用輸入變量的最小值(min)、略大于最小值(min+)、輸入值域內(nèi)的任意值(nom)、略小于最大值(max-)和最大值(max)來(lái)設(shè)計(jì)測(cè)試用例。 邊界值分析法是基于可靠性理論中稱為“單故障”的假設(shè),即有兩個(gè)或兩個(gè)以上故障同時(shí)出現(xiàn)而導(dǎo)致軟件失效的情況很少,也就是說(shuō),軟件失效基本上是由單故障引起的。 因此,在邊界值分析法中獲取測(cè)試用例的方法是: (1) 每次保留程序中一個(gè)變量,讓其余的變量取正常值,被保留的變量依次取min、min+、nom、max-和max。 (2) 對(duì)程序中的每個(gè)變量重復(fù) (1) 。邊界值分
22、析法測(cè)試用例 例:例:有兩個(gè)輸入變量x1(ax1b)和x2(cx2d)的程序F的邊界值分析測(cè)試用例如下: , , , , , , , , x1x2a bcd邊界值分析法測(cè)試用例 例例2:有二元函數(shù)f(x,y),其中x1,12,y1,31。 則采用邊界值分析法設(shè)計(jì)的測(cè)試用例是: , , , , , , , , 推論:對(duì)于一個(gè)含有推論:對(duì)于一個(gè)含有n個(gè)變量的程序,采用邊界值分析法測(cè)試程序會(huì)個(gè)變量的程序,采用邊界值分析法測(cè)試程序會(huì)產(chǎn)生產(chǎn)生4n+1個(gè)測(cè)試用例。個(gè)測(cè)試用例。 練習(xí):練習(xí):有函數(shù)f(x,y,x),其中x1900,2100,y1,12,z1,31的。請(qǐng)寫出該函數(shù)采用邊界值分析法設(shè)計(jì)的測(cè)試用例
23、。 , , , , , , , , , , , , 健壯性測(cè)試用例 健壯性測(cè)試是作為邊界值分析的一個(gè)簡(jiǎn)單的擴(kuò)充,它除了對(duì)變量的5個(gè)邊界值分析取值外,還需要增加一個(gè)略大于最大值(max+)以及略小于最小值(min-)的取值,檢查超過(guò)極限值時(shí)系統(tǒng)的情況。因此,對(duì)于有n個(gè)變量的函數(shù)采用健壯性測(cè)試需要6n+1個(gè)測(cè)試用例。 前面例1中的程序F的健壯性測(cè)試如下圖所示:x1x2a bcd等價(jià)類劃分與邊界值分析的結(jié)合回到等價(jià)類劃分的例子結(jié)合邊界值分析和等價(jià)類劃分,可以達(dá)到更好的測(cè)試目的舉例(三角形問(wèn)題 )輸入3個(gè)數(shù):1=a、b、c=100測(cè)試是否為等邊三角形、等腰三角形、一般三角形或非三角形思考:如何按照等價(jià)
24、類劃分和邊界值分析相結(jié)合設(shè)計(jì)測(cè)試用例?舉例(三角形問(wèn)題 )1、按照輸出結(jié)果來(lái)劃分等價(jià)類,分為等邊三角形、等腰三角形、一般三角形、非三角形2、邊界值分析: a取值:1、2、50、99、100 b取值:1、2、50、99、100 c取值:1、2、50、99、100a、b、c分別增加健壯性測(cè)試0和101等測(cè)試取值。測(cè)試用例共有多少個(gè)?等價(jià)類劃分與邊界值分析的結(jié)合思考:有效等價(jià)類和邊界值分析主要是基于什么原則來(lái)設(shè)計(jì)測(cè)試用例的?它們都沒(méi)有考慮到變量的相關(guān)性。目錄功能性測(cè)試概述功能分解等價(jià)類劃分 邊界值分析 因果圖與決策表法因果圖與決策表法其他測(cè)試方法因果圖法介紹 因果圖法產(chǎn)生的背景: 等價(jià)類劃分法和邊界
25、值分析方法都是著重考慮輸入條件,但沒(méi)有考慮輸入條件的各種組合、輸入條件之間的相互制約關(guān)系。這樣雖然各種輸入條件可能出錯(cuò)的情況已經(jīng)測(cè)試到了,但多個(gè)輸入條件組合起來(lái)可能出錯(cuò)的情況卻被忽視了。 因果圖法能夠幫助測(cè)試人員按照一定的步驟,高效率的開(kāi)發(fā)測(cè)試用例,以檢測(cè)程序輸入條件的各種組合情況,它是將自然語(yǔ)言轉(zhuǎn)化為形式語(yǔ)言規(guī)格說(shuō)明的一種嚴(yán)格方法,可以指出規(guī)格說(shuō)明存在的不完整性和二義性。因果圖法介紹 因果圖法是基于這樣的一種思想:一些程序的功能可以用判定表(或稱決策表)的形式來(lái)表示,并根據(jù)輸入條件的組合情況規(guī)定相應(yīng)的操作。即:因果圖法不過(guò)是決策表法的前期階段。我們也可以直接應(yīng)用決策表。 因果圖法的定義:是一
26、種利用圖解法分析輸入的各種組合情況,從而設(shè)計(jì)測(cè)試用例的方法,它適合于檢查程序輸入條件的各種組合情況。 采用因果圖法設(shè)計(jì)測(cè)試用例的步驟:(1)根據(jù)程序規(guī)格說(shuō)明書描述,分析并確定因(輸入條件)和果(輸出結(jié)果或程序狀態(tài)的改變),畫出因果圖。(2)將得到的因果圖轉(zhuǎn)換為判定表。(3)為判定表中每一列所表示的情況設(shè)計(jì)一個(gè)測(cè)試用例。判定表介紹 在一些數(shù)據(jù)處理問(wèn)題中,某些操作依賴多個(gè)邏輯條件的取值。處理這類問(wèn)題的一個(gè)非常有力的分析和表達(dá)工具是判定表 一些軟件的功能需求可用判定表表達(dá)得非常清楚,在檢驗(yàn)程序的功能時(shí)判定表也就成為一個(gè)非常有力的工具判定表介紹 決策表通常由以下4部分組成: 條件樁列出問(wèn)題的所有條件
27、條件項(xiàng)針對(duì)條件樁給出的條件列出所有可能的取值 動(dòng)作樁列出問(wèn)題規(guī)定的可能采取的操作 動(dòng)作項(xiàng)指出在條件項(xiàng)的各組取值情況下應(yīng)采取的動(dòng)作 條件樁條件樁動(dòng)作樁動(dòng)作樁 條件項(xiàng)條件項(xiàng) 動(dòng)作項(xiàng)動(dòng)作項(xiàng)規(guī)規(guī)則則將任何一個(gè)條件組合的特定取值及相應(yīng)要執(zhí)行的動(dòng)作稱為一條規(guī)則。在決策表中貫穿條件項(xiàng)和動(dòng)作項(xiàng)的一列就是一條規(guī)則。判定表圖示1:表示為是或者取該值;0:表示為否或者不取該值;:表示該值取什么都可以。判定表舉例 規(guī)則取值12345678問(wèn)題覺(jué)得疲倦YYYYNNNN感興趣嗎YYNNYYNN糊涂嗎?YNYNYNYN建議重讀繼續(xù)跳下一章休息條件樁動(dòng)作樁條件項(xiàng)動(dòng)作項(xiàng)因果圖法步驟 分析軟件規(guī)格說(shuō)明描述中的因果關(guān)系(輸入與輸出
28、的因果關(guān)系) 找出原因與結(jié)果、原因與原因之間的對(duì)應(yīng)關(guān)系,畫出因果圖在因果圖上標(biāo)記約束或限制條件把因果圖轉(zhuǎn)化為判定表將判定表中的每一列拿出來(lái)設(shè)計(jì)測(cè)試用例 因果圖介紹因果圖中使用4種因果關(guān)系符號(hào)來(lái)表達(dá)因果關(guān)系:恒等 非或與因果圖介紹 因果圖中的4種基本關(guān)系 在因果圖的基本符號(hào)中,圖中的左結(jié)點(diǎn)ci表示輸入狀態(tài)(或稱原因),右結(jié)點(diǎn)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,否則 e
29、1 為0。 與:若 c1 和 c2 都是1,則 e1 為1,否則 e1 為0。因果圖介紹 因果圖中的約束 在實(shí)際問(wèn)題中輸入狀態(tài)相互之間、輸出狀態(tài)相互之間可能存在某些依賴關(guān)系,稱為“約束”。對(duì)于輸入條件之間的約束有E(Exclusive or)、I(In)、O(Only)、R(Request)四種約束,對(duì)于輸出條件的約束只有M(Mandate)約束。(1)原因與原因之間的約束 E約束(異):輸入a和b中最多有一個(gè)可能為1,即a和b不能同時(shí) 為1。 I 約束(或):輸入a、b、c中至少有一個(gè)必須為1,即 a、b、c不能同時(shí)為0。 O約束(唯一):輸入a和b必須有一個(gè)且僅有一個(gè)為1。 R約束(要求)
30、:輸入a是1時(shí),輸入b必須是1,即a為1時(shí),b不能為0。(2)結(jié)果與結(jié)果之間的約束 M約束(強(qiáng)制):若結(jié)果a為1,則結(jié)果b強(qiáng)制為0。因果圖介紹因果圖中用來(lái)表示約束關(guān)系的約束符號(hào):異異E或或I唯一唯一OR要求要求M強(qiáng)制強(qiáng)制因果圖法主題思想 因果圖法最終生成的是決策表。利用因果圖生成測(cè)試用例的基本步驟如下:(1)分析軟件規(guī)格說(shuō)明中哪些是原因(即輸入條件或輸入條件的等價(jià)類),哪些是結(jié)果(即輸出條件),并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識(shí)符。(即:找出原因和結(jié)果)(2)分析軟件規(guī)格說(shuō)明中的語(yǔ)義,找出原因與結(jié)果之間、原因與原因之間對(duì)應(yīng)的關(guān)系, 根據(jù)這些關(guān)系畫出因果圖。 (即:標(biāo)定因果關(guān)系)(3)由于語(yǔ)法或環(huán)境
31、的限制,有些原因與原因之間、原因與結(jié)果之間的組合情況不可能出現(xiàn)。為表明這些特殊情況,在因果圖上用一些記號(hào)表明約束或限制條件。(4)把因果圖轉(zhuǎn)換為決策表。(5)根據(jù)決策表中的每一列設(shè)計(jì)測(cè)試用例。因果圖法案例 第一列字符必須是#或*,第二列字符必須是一個(gè)數(shù)字,在此情況下進(jìn)行文件的修改。但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。 解題步驟(1)分析程序的規(guī)格說(shuō)明,列出原因和結(jié)果。(2)找出原因與結(jié)果之間的因果關(guān)系、原因與原因之間的約束關(guān)系,畫出因果圖。(3)將因果圖轉(zhuǎn)換成決策表。(4)根據(jù)(3)中的決策表,設(shè)計(jì)測(cè)試用例的輸入數(shù)據(jù)和預(yù)期輸出。因果分析 原因: c1第一
32、列字符是# c2第一列字符是* c3第二列字符是一數(shù)字 10 第一列字符是#或是* 結(jié)果: e1給出信息L e2修改文件 e3給出信息M因果分析(1)分析程序規(guī)格說(shuō)明中的原因和結(jié)果:(2)畫出因果圖(編號(hào)為10的中間結(jié)點(diǎn)是導(dǎo)出結(jié)果的進(jìn)一步原因):原因結(jié)果 c1:第一個(gè)字符是# e1:給出信息L c2:第一個(gè)字符是* e2:修改文件 c3:第二個(gè)字符是一個(gè)數(shù)字 e3:給出信息Mc1c2c3e110e2e3E不可能同時(shí)存在由因果圖建立的判定表(3)將因果圖轉(zhuǎn)換成如下所示的決策表:12345678條件:條件:C1C2C310111110101110010111010100100000動(dòng)作:動(dòng)作:e1
33、e2e3不可能不可能測(cè)試用例測(cè)試用例#3#A*6*BA1GT規(guī)則規(guī)則選項(xiàng)選項(xiàng)從決策表中得到測(cè)試用例(4)根據(jù)決策表中的每一列設(shè)計(jì)測(cè)試用例:測(cè)試用例編號(hào)輸入數(shù)據(jù)預(yù)期輸出1#3修改文件2#A給出信息M3*6修改文件4*B給出信息M5A1給出信息N6GT給出信息N和信息M思考1、什么情況下按照因果圖和決策表法來(lái)設(shè)計(jì)測(cè)試用例?是否可以不用因果圖,不畫因果圖直接來(lái)設(shè)計(jì)測(cè)試用例,這一般是在什么情況下?2、因果圖與決策表法在我們編程過(guò)程中對(duì)哪些模塊比較有效?為什么?A、錄入模塊;B、查詢模塊;C、報(bào)表模塊;D、算法模塊;E、邏輯處理模塊。練習(xí)(中國(guó)象棋走馬下法)1、以中國(guó)象棋中馬的走法為例子,具體說(shuō)明:1、
34、如果落點(diǎn)在棋盤外,則不移動(dòng)棋子;2、如果落點(diǎn)與起點(diǎn)不構(gòu)成日字型,則不移動(dòng)棋子;3、如果落點(diǎn)處有自己方棋子,則不移動(dòng)棋子;4、如果在落點(diǎn)方向的鄰近交叉點(diǎn)有棋子(絆馬腿),則不移動(dòng)棋子;5、如果不屬于1-4條,且落點(diǎn)處無(wú)棋子,則移動(dòng)棋子;6、如果不屬于1-4條,且落點(diǎn)處為對(duì)方棋子 (非老將) ,則移動(dòng)棋子并除去對(duì)方棋子;7、如果不屬于1-4條,且落點(diǎn)處為對(duì)方老將,則移動(dòng)棋子,并提示戰(zhàn)勝對(duì)方,游戲結(jié)束。請(qǐng)繪制出因果圖和判定表,并給出相應(yīng)的測(cè)試用例。練習(xí)(中國(guó)象棋走馬下法)第一步:分析原因和結(jié)果原因:1、落點(diǎn)在棋盤外;2、不構(gòu)成日字;3、落點(diǎn)有自方棋子;4、絆馬腿;5、落點(diǎn)無(wú)棋子;6、落點(diǎn)為對(duì)方棋子;
35、7、落點(diǎn)為對(duì)方老將。結(jié)果:21、不移動(dòng);22、移動(dòng);23、移動(dòng)己方棋子消除對(duì)方棋子;24、移動(dòng)并戰(zhàn)勝對(duì)方。練習(xí)(中國(guó)象棋跳馬下法)第二步:畫出因果圖可以判定程序中應(yīng)該包括12個(gè)函數(shù)或方法練習(xí)(中國(guó)象棋走馬下法)第三步:轉(zhuǎn)換成判定表 因果圖法總結(jié) 優(yōu)點(diǎn)優(yōu)點(diǎn)1、因果圖法能夠幫助我們按照一定步驟,高效的選擇測(cè)試用例,設(shè)計(jì)多個(gè)輸入條件組合用例2、因果圖分析還能為我們指出,軟件規(guī)格說(shuō)明描述中存在的問(wèn)題 3、可以依據(jù)因果圖檢驗(yàn)需求的邏輯和程序未來(lái)應(yīng)包含的函數(shù)或方法。 缺點(diǎn)缺點(diǎn)1、輸入條件與輸出結(jié)果的因果關(guān)系,有時(shí)難以從軟件需求規(guī)格說(shuō)明書得到。2、即時(shí)得到了這些因果關(guān)系,也會(huì)因?yàn)橐蚬P(guān)系復(fù)雜導(dǎo)致因果圖非常龐
36、大,測(cè)試用例數(shù)目極其龐大(需要使用正交表法簡(jiǎn)化需要使用正交表法簡(jiǎn)化)。 思考1、因果圖法設(shè)計(jì)測(cè)試用例最關(guān)鍵的步驟是什么?(1)找出原因和結(jié)果;(2)畫出正確的因果圖。2、如果原因眾多,我們?cè)趺崔k?按照原因與原因或結(jié)果之間的關(guān)聯(lián)關(guān)系,將原因和結(jié)果之間的因果圖細(xì)分來(lái)分成更小的因果圖來(lái)測(cè)試。習(xí)題1、某軟件的一個(gè)模塊的需求規(guī)格說(shuō)明書中描述:(1)年薪制員工:嚴(yán)重過(guò)失,扣年終風(fēng)險(xiǎn)金的4%;過(guò)失,扣年終風(fēng)險(xiǎn)金的2%。(2)非年薪制員工:嚴(yán)重過(guò)失,扣當(dāng)月薪資的8%;過(guò)失,扣當(dāng)月薪資的4%。 請(qǐng)繪制出因果圖和判定表,并給出相應(yīng)的測(cè)試用例。目錄功能性測(cè)試概述功能分解等價(jià)類劃分 邊界值分析 因果圖法 其他測(cè)試方法
37、其他測(cè)試方法隨機(jī)測(cè)試使用隨機(jī)數(shù)生成器選取測(cè)試用例值避免測(cè)試偏見(jiàn)(只選取邊界值)存在問(wèn)題:測(cè)試用例是否充分錯(cuò)誤推測(cè)法 錯(cuò)誤推測(cè)法是基于經(jīng)驗(yàn)和直覺(jué)推測(cè)程序中所有可能存在的各種錯(cuò)誤,從而有針對(duì)性地設(shè)計(jì)測(cè)試用例錯(cuò)誤推測(cè)法基本思想列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況來(lái)設(shè)計(jì)測(cè)試用例例如: 以前測(cè)試時(shí)曾出現(xiàn)過(guò)錯(cuò)誤的地方,包括單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、前幾次回歸測(cè)試 輸入數(shù)據(jù)的問(wèn)題,如是否可為空,是否可以有特殊字符,是否可以小于0、等于0等等 一些問(wèn)題的范圍或邊界測(cè)試方法的選擇 通常在確定測(cè)試策略時(shí),有以下5條參考原則:(1)在任何情況下都必須采用邊界值分析法。這種方法設(shè)計(jì)出的測(cè)試用例發(fā)現(xiàn)程序錯(cuò)誤的能力最強(qiáng)。(2)必要時(shí)采用等價(jià)類劃分法補(bǔ)充測(cè)試用例。(3)采用錯(cuò)誤推斷法再追加測(cè)試用例。(4)對(duì)照程序邏輯,檢查已設(shè)計(jì)出的測(cè)試用例的邏輯覆蓋 程度。如果沒(méi)有達(dá)到要求的覆蓋標(biāo)準(zhǔn),則應(yīng)當(dāng)再補(bǔ)充更多的測(cè)試用例。(5)如果程序的功能說(shuō)明中含有輸入條件的組合情況,則應(yīng)一開(kāi)始就選
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 按揭購(gòu)房貸款合同范本
- 展覽宣傳活動(dòng)合同
- 企業(yè)資產(chǎn)抵押貸款合同
- 2024購(gòu)車協(xié)議書合同范本
- 批量購(gòu)房合同協(xié)議
- 2024企業(yè)員工勞動(dòng)合同樣本
- 企業(yè)資產(chǎn)買賣合同模板
- 房屋轉(zhuǎn)讓協(xié)議標(biāo)準(zhǔn)合同范本
- 2024建設(shè)施工合同有些分類
- 2024公司股權(quán)轉(zhuǎn)讓及后續(xù)合伙經(jīng)營(yíng)合同
- 公司組織架構(gòu)圖模板課件
- 遼寧省葫蘆島市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 植物種子的傳播方式課件
- 電纜敷設(shè)施工方案及安全措施
- 百合干(食品安全企業(yè)標(biāo)準(zhǔn))
- 肺血栓栓塞癥臨床路徑(縣級(jí)醫(yī)院版)
- 國(guó)開(kāi)成本會(huì)計(jì)第10章綜合練習(xí)試題及答案
- 《西游記》-三打白骨精(劇本臺(tái)詞)精選
- T∕CSCS 012-2021 多高層建筑全螺栓連接裝配式鋼結(jié)構(gòu)技術(shù)標(biāo)準(zhǔn)-(高清版)
- 充電站項(xiàng)目合作方案-高新
- 急診科臨床診療指南-技術(shù)操作規(guī)范更新版
評(píng)論
0/150
提交評(píng)論