




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三講 黑盒測(cè)試技術(shù) 主講人:鐘海東主講人:鐘海東概覽在本章中,我們將學(xué)習(xí):1.黑盒測(cè)試的基本概念2.黑盒測(cè)試的方法3.黑盒測(cè)試的依據(jù)和流程1.黑盒測(cè)試的概念黑盒測(cè)試又稱(chēng)為功能測(cè)試,把被測(cè)軟件看成一個(gè)封閉的盒子,在完全不考慮軟件內(nèi)部邏輯和內(nèi)部結(jié)構(gòu)的情況下進(jìn)行的測(cè)試。黑盒測(cè)試常見(jiàn)的錯(cuò)誤1、功能不正確或者遺漏2、界面錯(cuò)誤。在接口上輸入能否正確地接受。能否輸出正確的結(jié)果3、數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)錯(cuò)誤4、性能上能否滿(mǎn)足要求5、是否有初始化或終止錯(cuò)誤黑盒測(cè)試的優(yōu)點(diǎn) 1、黑盒測(cè)試與軟件如何實(shí)現(xiàn)無(wú)關(guān),如果實(shí)現(xiàn)發(fā)生變化,黑盒測(cè)試用例仍然可用(可重用性,面向回歸測(cè)試) 2、用例設(shè)計(jì)可以與軟件的實(shí)現(xiàn)同時(shí)進(jìn)行,加快了軟件測(cè)試與
2、開(kāi)發(fā)的速度黑盒測(cè)試的缺點(diǎn) 1、只能找到缺陷,難以查找錯(cuò)誤的具體原因。 2、沒(méi)有清晰的需求規(guī)格說(shuō)明書(shū),測(cè)試用例很難被設(shè)計(jì)。 3、相比白盒測(cè)試,測(cè)試用例產(chǎn)生遺漏或冗余的可能性大大增加1,與軟件的具體實(shí)現(xiàn)方法無(wú)關(guān),所以即使實(shí)現(xiàn)方式發(fā)生改變,測(cè)試用例仍然有用。我想這點(diǎn)原因也是很多人認(rèn)為測(cè)試比開(kāi)發(fā)入門(mén)要簡(jiǎn)單的緣故,只要能看懂文檔即可,不需要關(guān)注程序語(yǔ)言。2,由于黑盒測(cè)試的依據(jù)是需求,設(shè)計(jì)文檔,開(kāi)發(fā)的依據(jù)也是需求和設(shè)計(jì)文檔。那么設(shè)計(jì)測(cè)試用例與開(kāi)發(fā)是可以同時(shí)進(jìn)行,大大縮短項(xiàng)目周期。1,可能有未測(cè)試的實(shí)現(xiàn)行為,要彌補(bǔ)這一點(diǎn)只有靠測(cè)試用例設(shè)計(jì)者使用合適的用例設(shè)計(jì)方法,并且要有經(jīng)驗(yàn)來(lái)測(cè)試程序的異常行為。2,測(cè)試用
3、例之間會(huì)存在嚴(yán)重的冗余問(wèn)題;開(kāi)發(fā)方面,代碼可以重用。但是測(cè)試用例的重用率較低黑盒測(cè)試的特點(diǎn) 從理論上講,黑盒測(cè)試只有采用窮舉輸入測(cè)試,把所有可能的輸入都作為測(cè)試情況考慮,才能查出所有的錯(cuò)誤。 實(shí)際上測(cè)試情況是無(wú)窮多的,完全測(cè)試是不可能的。那么我們?nèi)绾卧O(shè)計(jì)黑盒測(cè)試用例滿(mǎn)足“最盡可能少的測(cè)試用例去發(fā)現(xiàn)盡可能多的軟件缺陷”呢?典型的黑盒測(cè)試方法 等價(jià)類(lèi)劃分法 邊界值分析法 因果圖法 其他方法(正交試驗(yàn)法、錯(cuò)誤推測(cè)法、判定表法)等價(jià)類(lèi)劃分法 等價(jià)類(lèi)劃分法是一種重要的、常用的黑盒測(cè)試方法,它將不能窮舉的測(cè)試過(guò)程進(jìn)行合理分類(lèi),從而保證設(shè)計(jì)出來(lái)的測(cè)試用例具有完整性和代表性。舉例:設(shè)計(jì)這樣的測(cè)試用例,來(lái)實(shí)現(xiàn)一
4、個(gè)對(duì)所有實(shí)數(shù)進(jìn)行開(kāi)平方運(yùn)算( y = sqrt(x) )的程序的測(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à)類(lèi)劃分法(續(xù))n方法:等價(jià)類(lèi)劃分是將程序的輸入域(較多見(jiàn))或輸出域(較少見(jiàn))的不同區(qū)間劃分為不同的數(shù)據(jù)類(lèi),以便導(dǎo)出測(cè)試用例n意義:每個(gè)等價(jià)類(lèi)所揭示的程序錯(cuò)誤都是等價(jià)的n目的:要求此方法的測(cè)試用例能各自發(fā)現(xiàn)一類(lèi)錯(cuò)誤,從而減少必須開(kāi)發(fā)的測(cè)試用例數(shù) n概念理解:測(cè)試某等價(jià)類(lèi)的代
5、表值就是等效于對(duì)于這一類(lèi)其它值的測(cè)試。n例如:程序在輸入小于4的數(shù)得到結(jié)果5,那么使用2還是3或者都是一樣的等價(jià)類(lèi)分類(lèi)有效等價(jià)類(lèi) 對(duì)于程序的需求說(shuō)明來(lái)說(shuō)是合理的,有意義的輸入數(shù)據(jù)所構(gòu)成的集合利用它可以檢驗(yàn)程序是否實(shí)現(xiàn)了預(yù)期的功能和性能無(wú)效等價(jià)類(lèi) 對(duì)于程序的需求說(shuō)明來(lái)說(shuō)是不合理的,沒(méi)有意義的輸入數(shù)據(jù)所構(gòu)成的集合 利用它可以檢驗(yàn)程序?qū)τ跓o(wú)效數(shù)據(jù)的處理能力等價(jià)類(lèi)劃分?jǐn)?shù)學(xué)含義A=x=B C=y=D問(wèn)題1:例子中共有多少個(gè)等價(jià)類(lèi)?有效的幾個(gè),無(wú)效的幾個(gè)?問(wèn)題2:寫(xiě)出這些等價(jià)類(lèi),這些等價(jià)類(lèi)是否可以合并?問(wèn)題3:最好用多少個(gè)數(shù)據(jù)來(lái)測(cè)試?測(cè)試數(shù)據(jù)是否可以減少?確立等價(jià)類(lèi)的原則 嚴(yán)格的,可以按照變量來(lái)劃分有效和
6、無(wú)效等價(jià)類(lèi)即:-1-先按照X來(lái)劃分有效等價(jià)類(lèi)和無(wú)效等價(jià)類(lèi),然后再按照Y來(lái)劃分有效等價(jià)類(lèi)和無(wú)效等價(jià)類(lèi)-2-最后再形成相應(yīng)的測(cè)試用例。lX: 有效等價(jià)類(lèi)為: A=x=B ; 無(wú)效等價(jià)類(lèi)為:xA和Bx兩個(gè)無(wú)效等價(jià)類(lèi)lY: 有效等價(jià)類(lèi)為:C=y=D ; 無(wú)效等價(jià)類(lèi)為:yC和D=1&=50” 兩個(gè)無(wú)效等價(jià)類(lèi)為“50” 確立等價(jià)類(lèi)的原則如果輸入條件是一個(gè)布爾量,則可以確立一個(gè)有效等價(jià)類(lèi)和一個(gè)無(wú)效等價(jià)類(lèi) 如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序要對(duì)每一個(gè)輸入值分別進(jìn)行處理,這時(shí)要對(duì)每一個(gè)規(guī)定的輸入值確立一個(gè)有效等價(jià)類(lèi),而對(duì)于這組值之外的所有值確立一個(gè)無(wú)效等價(jià)類(lèi)確立等價(jià)類(lèi)的原則如果規(guī)定了輸入數(shù)據(jù)必須遵守的
7、規(guī)則,則可以確立一個(gè)有效等價(jià)類(lèi)(即遵守規(guī)則的數(shù)據(jù))和若干無(wú)效等價(jià)類(lèi)(從不同角度違反規(guī)則的數(shù)據(jù)),例如: 測(cè)試密碼域,要求密碼必須是數(shù)字或字母 有效等價(jià)類(lèi)為“密碼是數(shù)字和字母的組合”(還可以細(xì)分) 無(wú)效等價(jià)類(lèi)為“密碼包括中文”、“密碼包括其它符號(hào)”等如果確知已劃分的等價(jià)類(lèi)中的各元素在程序中的處理方式不同(例如字母還要區(qū)分大小寫(xiě)等),則應(yīng)進(jìn)一步劃分成更小的等價(jià)類(lèi) 等價(jià)類(lèi)測(cè)試用例設(shè)計(jì)分析輸入、輸出劃分有效等價(jià)類(lèi)、無(wú)效等價(jià)類(lèi) 設(shè)計(jì)測(cè)試用例,使其盡可能多的覆蓋有效等價(jià)類(lèi) 設(shè)計(jì)測(cè)試用例,使其盡可能多的覆蓋無(wú)效等價(jià)類(lèi) 等價(jià)類(lèi)測(cè)試用例設(shè)計(jì)過(guò)程在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)同時(shí)考慮有效等價(jià)類(lèi)和無(wú)效等價(jià)類(lèi)測(cè)試用例的設(shè)計(jì)。根
8、據(jù)已列出的等價(jià)類(lèi)表可確定測(cè)試用例。 具體過(guò)程如下:(1)首先為等價(jià)類(lèi)表中的每一個(gè)等價(jià)類(lèi)分別規(guī)定一個(gè)唯一的編號(hào)。(2)設(shè)計(jì)一個(gè)新的測(cè)試用例,使它能夠盡量覆蓋尚未覆蓋的有效等價(jià)類(lèi)。重復(fù)這個(gè)步驟,直到所有的有效等價(jià)類(lèi)均被測(cè)試用例所覆蓋。(3)設(shè)計(jì)一個(gè)新的測(cè)試用例,使它僅覆蓋一個(gè)尚未覆蓋的無(wú)效等價(jià)類(lèi)。重復(fù)這一步驟,直到所有的無(wú)效等價(jià)類(lèi)均被測(cè)試用例所覆蓋。?3的順序是否可以和2顛倒?123好還是132好?為什么?等價(jià)類(lèi)測(cè)試用例設(shè)計(jì)針對(duì)是否對(duì)無(wú)效數(shù)據(jù)進(jìn)行測(cè)試,可以將等價(jià)類(lèi)測(cè)試分為標(biāo)準(zhǔn)等價(jià)類(lèi)測(cè)試和健壯等價(jià)類(lèi)測(cè)試。標(biāo)準(zhǔn)等價(jià)類(lèi)測(cè)試不考慮無(wú)效數(shù)據(jù)值,測(cè)試用例使用每個(gè)等價(jià)類(lèi)中的一個(gè)值。健壯等價(jià)類(lèi)測(cè)試主要的出發(fā)點(diǎn)是考
9、慮了無(wú)效等價(jià)類(lèi)。對(duì)有效輸入,測(cè)試用例從每個(gè)有效等價(jià)類(lèi)中取一個(gè)值; 對(duì)無(wú)效輸入,一個(gè)測(cè)試用例有一個(gè)“無(wú)效值”,其他值均取“有效值”。舉例1(保險(xiǎn)費(fèi)率計(jì)算)按照輸入域劃分等價(jià)類(lèi)的例子。某保險(xiǎn)公司承擔(dān)人壽保險(xiǎn),該公司保費(fèi)計(jì)算方式為:保費(fèi)=投保額*保險(xiǎn)率,保險(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ō)明 第一步:輸入和輸出變量確認(rèn)按照輸入域劃分等價(jià)類(lèi)的例子。輸入:年齡、性別、婚姻、撫養(yǎng)人數(shù)輸出:保險(xiǎn)率等價(jià)類(lèi)劃分原則:按照輸入變量來(lái)確認(rèn)等價(jià)類(lèi)(有效等價(jià)類(lèi)和無(wú)
10、效等價(jià)類(lèi))第二步:等價(jià)類(lèi)劃分是否可以有更多無(wú)效等價(jià)類(lèi)?第二步:等價(jià)類(lèi)劃分第三步:設(shè)計(jì)測(cè)試用例按照輸入域劃分等價(jià)類(lèi)的例子。1、設(shè)計(jì)測(cè)試用例,盡可能的覆蓋尚未覆蓋的有效等價(jià)類(lèi)。(1)(8)(10)(12)(2)(9)(11)(13)(3)(8)(10)(14)2、設(shè)計(jì)測(cè)試用俐,使得每一個(gè)新設(shè)計(jì)的測(cè)試用例只包含一個(gè)無(wú)效等價(jià)類(lèi),其他的選擇有效等價(jià)類(lèi)。(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à)類(lèi)部分,可以任
11、意選擇。第四步:選取測(cè)試用例測(cè)試用例等價(jià)類(lèi)表的建立測(cè)試用例等價(jià)類(lèi)表的建立 【例3-1】建立小區(qū)物業(yè)住宅管理系統(tǒng)“日期檢查功能”的測(cè)試用例等價(jià)類(lèi)表。 有一個(gè)小區(qū)物業(yè)住宅管理系統(tǒng),要求住戶(hù)輸入以年月表示的日期。假設(shè)日期限定在1988年1月2068年12月,并規(guī)定日期由6位數(shù)字組成,前4位表示年,后2位表示月?,F(xiàn)用等價(jià)類(lèi)劃分法設(shè)計(jì)測(cè)試用例,“日期檢查功能”的測(cè)試用例等價(jià)類(lèi)表如表3-2所示。表3-2 “日期檢查功能”的測(cè)試用例等價(jià)類(lèi)6測(cè)試用例的設(shè)計(jì)測(cè)試用例的設(shè)計(jì) 【例3-2】【例3-1】的小區(qū)物業(yè)住宅管理系統(tǒng)“日期檢查功能”的測(cè)試用例設(shè)計(jì)。 覆蓋所有的有效等價(jià)類(lèi),在表中列出了3個(gè)編號(hào),分別為;覆蓋所有
12、的無(wú)效等價(jià)類(lèi),在表中列出了7個(gè)編號(hào),分別為、,設(shè)計(jì)一個(gè)測(cè)試用例,設(shè)計(jì)的測(cè)試用例結(jié)果如表3-3所示表3-3 設(shè)計(jì)的測(cè)試用例結(jié)果邊界值分析邊界值分析法就是對(duì)輸入或輸出的邊界值進(jìn)行測(cè)試的一種黑盒測(cè)試方法。通常邊界值分析法是作為對(duì)等價(jià)類(lèi)劃分法的補(bǔ)充,這種情況下,其測(cè)試用例來(lái)自等價(jià)類(lèi)的邊界。為什么使用邊界值分析法? 無(wú)數(shù)的測(cè)試實(shí)踐表明,大量的故障往往發(fā)生在輸入定義域或輸出值域的邊界上,而不是在其內(nèi)部。因此,針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,通常會(huì)取得很好的測(cè)試效果。怎樣用邊界值分析法設(shè)計(jì)測(cè)試用例?(1)首先確定邊界情況。通常輸入或輸出等價(jià)類(lèi)的邊界就是應(yīng)該著重測(cè)試的邊界情況。(2)選取正好等于、剛剛大于或剛剛
13、小于邊界的值作為測(cè)試數(shù)據(jù),而不是選取等價(jià)類(lèi)中的典型值或任意值。舉例 常見(jiàn)的邊界值對(duì)16-bit 的整數(shù)而言 32767 和 -32768 是邊界屏幕上光標(biāo)在最左上、最右下位置報(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ù)范
14、圍是1x50正整數(shù)邊界值取為:1、50、2、49確立邊界值的原則如果輸入或輸出域是個(gè)有序的集合(如順序文件、表格等),應(yīng)注意選取有序集的第一個(gè)和最后一個(gè)元素以及集合外但靠近集合的元素作為邊界 ,例如:輸入文件名介于file0101file0120之間邊界值取為file0100,file0101,file0120,file0121邊界值分析邊界值分析使用與等價(jià)類(lèi)劃分法相同的劃分,只是邊界值分析假定錯(cuò)誤更多地存在于劃分的邊界上,因此在等價(jià)類(lèi)的邊界上以及兩側(cè)的情況設(shè)計(jì)測(cè)試用例。例例:測(cè)試計(jì)算平方根的函數(shù) 輸入:實(shí)數(shù) 輸出:實(shí)數(shù) 規(guī)格說(shuō)明:當(dāng)輸入一個(gè)0或比0大的數(shù)的時(shí)候,返回其正平方根;當(dāng)輸入一個(gè)小于
15、0的數(shù)時(shí),顯示錯(cuò)誤信息“平方根非法-輸入值小于0”并返回0;庫(kù)函數(shù)Print-Line可以用來(lái)輸出錯(cuò)誤信息。邊界值分析等價(jià)類(lèi)劃分:可以考慮作出如下劃分:輸入 (i)=0輸出 (a)=0 和 (b) Error測(cè)試用例有兩個(gè):輸入4,輸出2。對(duì)應(yīng)于 (ii) 和 (a) 。輸入-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ù)舉例(找零錢(qián)最佳組合 )假設(shè)商店商品價(jià)格X皆不大于100元(整數(shù)),若顧客買(mǎi)一件
16、商品,付款Y在100元內(nèi),求找給顧客的最少貨幣張數(shù)?貨幣面值:50元R5020元R2010元R105元R52元R21元R1分析輸入X 100(無(wú)效) 0 X = 100(有效)X 100 (無(wú)效) X= Y = 100 (有效)Y X (無(wú)效) 分析輸出0 = R50 = 10 = R20 = 20 = R10 = 10 = R5 = 10 = R2 = 20 = R1 100X 100Y = 50 找R5020 = S 50 找R2010 = S 20 找R105 = S 10 找R52 = S 5 找R21 = S 100 錯(cuò)誤X = 0 錯(cuò)誤0 X 100 錯(cuò)誤0 X = 100, Y
17、100 ; 0X=100; X100 ; 0Y=100; Y=0思考3:這個(gè)等價(jià)類(lèi)劃分是否測(cè)試充分?漏掉了什么情況?思考4:如果按照輸出結(jié)果劃分等價(jià)類(lèi),效果如何?思考5: 應(yīng)用輸入結(jié)果的等價(jià)類(lèi)劃分測(cè)試與邊界值分析相比,哪一個(gè)更簡(jiǎn)便,哪一個(gè)有效?如何協(xié)調(diào)?邊界值分析主題思想采用邊界值分析測(cè)試的基本思想是:故障往往出現(xiàn)在輸入變量的邊界值附近。 因此,邊界值分析法利用輸入變量的最小值(min)、略大于最小值(min+)、輸入值域內(nèi)的任意值(nom)、略小于最大值(max-)和最大值(max)來(lái)設(shè)計(jì)測(cè)試用例。因此,在邊界值分析法中獲取測(cè)試用例的方法是: (1) 每次保留程序中一個(gè)變量,讓其余的變量取正
18、常值,被保留的變量依次取min、min+、nom、max-和max。 (2) 對(duì)程序中的每個(gè)變量重復(fù) (1) 。邊界值分析法測(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è)試個(gè)變量的程序,采用邊界值分析法測(cè)試程序會(huì)產(chǎn)生程序會(huì)產(chǎn)生4n+1個(gè)測(cè)試用例。個(gè)測(cè)試用例。練習(xí):練習(xí):有函
19、數(shù)f(x,y,x),其中x1900,2100,y1,12,z1,31的。請(qǐng)寫(xiě)出該函數(shù)采用邊界值分析法設(shè)計(jì)的測(cè)試用例。 ;健壯性測(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à)類(lèi)劃分與邊界值分析的結(jié)合回到等價(jià)類(lèi)劃分的例子結(jié)合邊界值分析和等價(jià)類(lèi)劃分,可以達(dá)到更好的測(cè)試目的等價(jià)類(lèi)劃分與邊界值分析的結(jié)合思考:有效等價(jià)類(lèi)和邊界值分析主要是
20、基于什么原則來(lái)設(shè)計(jì)測(cè)試用例的?它們都沒(méi)有考慮到變量的相關(guān)性。因果圖法介紹因果圖法產(chǎn)生的背景: 等價(jià)類(lèi)劃分法和邊界值分析方法都是著重考慮輸入條件,但沒(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ō)明存在的不完整性和二義性。因果圖法介紹因果圖法是基于這樣的一種思想:一些程序的功能可以用判定表(或稱(chēng)決策表)的形式來(lái)表示,并根據(jù)輸入條件的組
21、合情況規(guī)定相應(yīng)的操作。即:因果圖法不過(guò)是決策表法的前期階段。我們也可以直接應(yīng)用決策表。因果圖法的定義:是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計(jì)測(cè)試用例的方法,它適合于檢查程序輸入條件的各種組合情況。采用因果圖法設(shè)計(jì)測(cè)試用例的步驟:(1)根據(jù)程序規(guī)格說(shuō)明書(shū)描述,分析并確定因(輸入條件)和果(輸出結(jié)果或程序狀態(tài)的改變),畫(huà)出因果圖。(2)將得到的因果圖轉(zhuǎn)換為判定表。(3)為判定表中每一列所表示的情況設(shè)計(jì)一個(gè)測(cè)試用例判定表介紹在一些數(shù)據(jù)處理問(wèn)題中,某些操作依賴(lài)多個(gè)邏輯條件的取值。處理這類(lèi)問(wèn)題的一個(gè)非常有力的分析和表達(dá)工具是判定表一些軟件的功能需求可用判定表表達(dá)得非常清楚,在檢驗(yàn)程序的功能時(shí)判
22、定表也就成為一個(gè)非常有力的工具判定表介紹決策表通常由以下4部分組成:條件樁列出問(wèn)題的所有條件條件項(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)作稱(chēng)為一條規(guī)則。在決策表中貫穿條件項(xiàng)和動(dòng)作項(xiàng)的一列就是一條規(guī)則。判定表圖示1:表示為是或者取該值;0:表示為否或者不取該值;:表示該值取什么都可以。判定表舉例條件樁動(dòng)作樁條件項(xiàng)動(dòng)作項(xiàng)因果圖法步驟 分析軟件規(guī)格說(shuō)明描述中的因果關(guān)系(輸入與輸出的因果關(guān)系) 找出原因與結(jié)果、原因與原
23、因之間的對(duì)應(yīng)關(guān)系,畫(huà)出因果圖在因果圖上標(biāo)記約束或限制條件把因果圖轉(zhuǎn)化為判定表將判定表中的每一列拿出來(lái)設(shè)計(jì)測(cè)試用例 因果圖介紹n因果圖中使用4種因果關(guān)系符號(hào)來(lái)表達(dá)因果關(guān)系:恒等 非或與因果圖介紹n因果圖中的4種基本關(guān)系 在因果圖的基本符號(hào)中,圖中的左結(jié)點(diǎn)ci表示輸入狀態(tài)(或稱(chēng)原因),右結(jié)點(diǎn)ei表示輸出狀態(tài)(或稱(chēng)結(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,
24、則 e1 為1,否則 e1 為0。因果圖介紹n因果圖中的約束 在實(shí)際問(wèn)題中輸入狀態(tài)相互之間、輸出狀態(tài)相互之間可能存在某些依賴(lài)關(guān)系,稱(chēng)為“約束”。對(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約束(要求):輸入a是1時(shí),輸入b必須是1,即a為1時(shí),b不能為
25、0。(2)結(jié)果與結(jié)果之間的約束M約束(強(qiáng)制):若結(jié)果a為1,則結(jié)果b強(qiáng)制為0。因果圖介紹n因果圖中用來(lái)表示約束關(guān)系的約束符號(hào):異異E或或I唯一唯一OR要求要求M強(qiáng)制強(qiáng)制因果圖法主題思想(具體)因果圖法最終生成的是決策表。利用因果圖生成測(cè)試用例的基本步驟如下:(1)分析軟件規(guī)格說(shuō)明中哪些是原因(即輸入條件或輸入條件的等價(jià)類(lèi)),哪些是結(jié)果(即輸出條件),并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識(shí)符。(即:找出原因和結(jié)果)(2)分析軟件規(guī)格說(shuō)明中的語(yǔ)義,找出原因與結(jié)果之間、原因與原因之間對(duì)應(yīng)的關(guān)系, 根據(jù)這些關(guān)系畫(huà)出因果圖。 (即:標(biāo)定因果關(guān)系)(3)由于語(yǔ)法或環(huán)境的限制,有些原因與原因之間、原因與結(jié)果之間的組
26、合情況不可能出現(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)系,畫(huà)出因果圖。(3)將因果圖轉(zhuǎn)換成決策表。(4)根據(jù)(3)中的決策表,設(shè)計(jì)測(cè)試用例的輸入數(shù)據(jù)和預(yù)期輸出。因果分析原因:c1第一列字符是#c2第一列字符是*c3第二列字符是一數(shù)字1
27、0 第一列字符是#或是*結(jié)果:e1給出信息Le2修改文件e3給出信息M因果分析(1)分析程序規(guī)格說(shuō)明中的原因和結(jié)果:(2)畫(huà)出因果圖(編號(hào)為10的中間結(jié)點(diǎn)是導(dǎo)出結(jié)果的進(jìn)一步原因):c1c2c3e110e2e3E不可能同時(shí)存在由因果圖建立的判定表(3)將因果圖轉(zhuǎn)換成如下所示的決策表:規(guī)則規(guī)則選項(xiàng)選項(xiàng)從決策表中得到測(cè)試用例(4)根據(jù)決策表中的每一列設(shè)計(jì)測(cè)試用例:課堂練習(xí)(中國(guó)象棋走馬下法)1、以中國(guó)象棋中馬的走法為例子,具體說(shuō)明:1、如果落點(diǎn)在棋盤(pán)外,則不移動(dòng)棋子;2、如果落點(diǎn)與起點(diǎn)不構(gòu)成日字型,則不移動(dòng)棋子;3、如果落點(diǎn)處有自己方棋子,則不移動(dòng)棋子;4、如果在落點(diǎn)方向的鄰近交叉點(diǎn)有棋子(絆馬腿)
28、,則不移動(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)在棋盤(pán)外;2、不構(gòu)成日字;3、落點(diǎn)有自方棋子;4、絆馬腿;5、落點(diǎn)無(wú)棋子;6、落點(diǎn)為對(duì)方棋子(非老將);7、落點(diǎn)為對(duì)方老將。結(jié)果:21、不移動(dòng);22、移動(dòng);23、移動(dòng)己方棋子消除對(duì)方棋子;24、移動(dòng)并戰(zhàn)勝對(duì)方。課堂練習(xí)(中國(guó)象棋跳馬下法)第二步:畫(huà)出因果圖
29、可以判定程序中應(yīng)該包括12個(gè)函數(shù)或方法課堂練習(xí)(中國(guó)象棋走馬下法)第三步:轉(zhuǎn)換成判定表 課堂練習(xí)(自動(dòng)售貨機(jī))2、有一個(gè)處理單價(jià)為5角錢(qián)的飲料的自動(dòng)售貨機(jī),其規(guī)格說(shuō)明如下:(1)若投入5角錢(qián)或1元錢(qián)的硬幣,按下橙汁或啤酒的按鈕,則相應(yīng)的飲料就送出來(lái)。(2)若售貨機(jī)沒(méi)有零錢(qián)找,則一個(gè)顯示零錢(qián)找完的紅燈亮,這時(shí)在投入1元硬幣并押下按鈕后,飲料不送出來(lái)而且1元硬幣也退出來(lái);(3)若有零錢(qián)找,則顯示零錢(qián)找完的紅燈滅,在送出飲料的同時(shí)退還5角硬幣。 請(qǐng)繪制出因果圖和判定表,并給出相應(yīng)的測(cè)試用例。課堂練習(xí)(自動(dòng)售貨機(jī))第一步:分析原因和結(jié)果原因:1、售貨機(jī)有零錢(qián)找2、投入1元硬幣3、投入5角硬幣4、押下橙汁按鈕5、押下啤酒按鈕結(jié)果:21、售貨機(jī)零錢(qián)找完燈亮22、退還1元硬幣23、退還5角硬幣 24、送出橙汁飲料25、送出啤酒飲料課堂練習(xí)(自動(dòng)售貨機(jī))第二步:畫(huà)出因果圖課堂練習(xí)(自動(dòng)售貨機(jī))第二步:畫(huà)出因果圖所有原因結(jié)點(diǎn)列在左邊,所有結(jié)果結(jié)點(diǎn)列在右邊。建立中間結(jié)點(diǎn),表示處理的中間狀態(tài)。中間結(jié)點(diǎn):11、投入1元硬幣且押下飲料按鈕12、押下橙汁或啤酒的按鈕13、應(yīng)當(dāng)找5角零錢(qián)并且售貨機(jī)有零錢(qián)找14、錢(qián)已付清課堂練習(xí)(自動(dòng)售貨機(jī))第三步:轉(zhuǎn)換成判定表因果圖法總結(jié)優(yōu)點(diǎn)優(yōu)點(diǎn)1、因果
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年陜西省咸陽(yáng)市永壽縣蒿店中學(xué)中考一模地理試題(原卷版+解析版)
- 2.3 聲的利用 說(shuō)課稿2025年初中 人教版物理八年級(jí)上冊(cè)
- 新能源項(xiàng)目經(jīng)理應(yīng)聘簡(jiǎn)歷
- 思想?yún)R報(bào)心得體會(huì)
- 醫(yī)院項(xiàng)目需求回復(fù)函
- 2025年廣東省佛山市南海區(qū)中考一模英語(yǔ)試題(原卷版+解析版)
- 項(xiàng)目執(zhí)行階段成果匯報(bào)及后期規(guī)劃
- 住宅銷(xiāo)售代理合同
- 目前光伏發(fā)電產(chǎn)品主要用于哪些方面
- 基于大數(shù)據(jù)的農(nóng)業(yè)現(xiàn)代化種植模式優(yōu)化方案
- 幼兒園課件:《黑夜我不怕》
- 2024年-急診氣道管理共識(shí)課件
- 2024年江蘇食品藥品職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
- 活動(dòng)招商合同
- 標(biāo)準(zhǔn)化法及相關(guān)知識(shí)課件
- 新視野大學(xué)英語(yǔ)(第四版)讀寫(xiě)教程1(思政智慧版)課件 Unit 6 Winning is not everything Section B
- 意識(shí)障礙診療規(guī)范2023版
- 儀表檢修規(guī)程
- 2023年10月自考03706思想道德修養(yǎng)與法律基礎(chǔ)試題及答案含評(píng)分標(biāo)準(zhǔn)
- 工廠(chǎng)組織架構(gòu)圖
- 全國(guó)IP地址段中國(guó)IP地址段各省IP段IP段最全
評(píng)論
0/150
提交評(píng)論