版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章黑盒測(cè)試方法
軟件測(cè)試與質(zhì)量保證本章內(nèi)容黑盒測(cè)試技術(shù)概述等價(jià)類(lèi)劃分邊界值分析決策表法因果圖法正交實(shí)驗(yàn)法2軟件測(cè)試方法3軟件測(cè)試方法白盒測(cè)試靜態(tài)測(cè)試其他動(dòng)態(tài)測(cè)試按是否運(yùn)行系統(tǒng)劃分按是否查看源代碼劃分隨機(jī)測(cè)試黑盒測(cè)試冒煙測(cè)試回歸測(cè)試等價(jià)類(lèi)劃分法錯(cuò)誤推測(cè)法因果圖法邊界值分析法組合分析法手工測(cè)試自動(dòng)化測(cè)試按是否使用自動(dòng)化工具劃分邏輯覆蓋法基本路徑測(cè)試法黑盒測(cè)試技術(shù)黑盒測(cè)試,也稱(chēng)為功能測(cè)試或基于規(guī)格說(shuō)明書(shū)的測(cè)試。黑盒測(cè)試的思想——著眼于外部特征,不管內(nèi)部實(shí)現(xiàn)。需求規(guī)格說(shuō)明書(shū)是黑盒測(cè)試的主要輸入。4黑盒測(cè)試技術(shù)黑盒測(cè)試的目的,主要是為發(fā)現(xiàn)以下幾種類(lèi)型的錯(cuò)誤:軟件功能能不能按照需求規(guī)格說(shuō)明書(shū)的規(guī)定正常工作或有功能遺漏;數(shù)據(jù)結(jié)構(gòu)和外部數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)錯(cuò)誤;性能上的錯(cuò)誤,如兼容性、效率等方面的問(wèn)題;人機(jī)交互錯(cuò)誤(界面問(wèn)題)等;程序初始化和終止方面的錯(cuò)誤等。5黑盒測(cè)試的原理黑盒測(cè)試的原理如下圖所示:6被測(cè)單元輸入接口輸出接口驅(qū)動(dòng)程序/測(cè)試員樁模塊A樁模塊B調(diào)用返回調(diào)用返回獲取輸出數(shù)據(jù)輸入測(cè)試數(shù)據(jù)有效的黑盒測(cè)試數(shù)據(jù)7正常數(shù)據(jù)——在用戶(hù)需求范圍內(nèi)的、具有代表性的測(cè)試數(shù)據(jù),目的是檢驗(yàn)系統(tǒng)的正常處理功能如何邊緣數(shù)據(jù)——界于正常數(shù)據(jù)和錯(cuò)誤數(shù)據(jù)之間的數(shù)據(jù),目的是檢驗(yàn)系統(tǒng)處理能力的極限情況。錯(cuò)誤數(shù)據(jù)——與系統(tǒng)輸入規(guī)范不符的數(shù)據(jù),以及凡是可能引發(fā)異常的數(shù)據(jù),目的是檢測(cè)輸入篩選、錯(cuò)誤處理等程序分支黑盒測(cè)試的優(yōu)點(diǎn)黑盒測(cè)試與軟件如何實(shí)現(xiàn)無(wú)關(guān),如果實(shí)現(xiàn)發(fā)生變化,黑盒測(cè)試用例仍然可用(可重用性,面向回歸測(cè)試)例如:一模塊實(shí)現(xiàn)對(duì)學(xué)生考試成績(jī)的排序可以使用冒泡法排序、交換法排序、或者用例設(shè)計(jì)可以與軟件的實(shí)現(xiàn)同時(shí)進(jìn)行,加快了軟件測(cè)試與開(kāi)發(fā)的速度8黑盒測(cè)試的缺點(diǎn)只能找到缺陷,難以查找錯(cuò)誤的具體原因。沒(méi)有清晰的需求規(guī)格說(shuō)明書(shū),測(cè)試用例很難被設(shè)計(jì)。相比白盒測(cè)試,測(cè)試用例產(chǎn)生遺漏或冗余的可能性大大增加9黑盒測(cè)試的特點(diǎn)從理論上講,黑盒測(cè)試只有采用窮舉法輸入測(cè)試,把所有可能的輸入都作為測(cè)試情況考慮,才能查出所有的錯(cuò)誤。實(shí)際上測(cè)試情況是無(wú)窮多的,完全測(cè)試是不可能的。《完美測(cè)試》中weinberg舉了一個(gè)權(quán)限驗(yàn)證開(kāi)后門(mén)的例子。假如你是某系統(tǒng)的開(kāi)發(fā)人員,為維測(cè)方便,在程序中加了一個(gè)后門(mén),比如當(dāng)輸入:z+10空格+l+10個(gè)空格+l+10個(gè)空格、再重復(fù)10次,無(wú)論密碼是什么,均可以成功進(jìn)入。那么我們?nèi)绾卧O(shè)計(jì)黑盒測(cè)試用例滿(mǎn)足“最盡可能少的測(cè)試用例去發(fā)現(xiàn)盡可能多的軟件缺陷”呢?10黑盒測(cè)試用例設(shè)計(jì)方法包括:等價(jià)類(lèi)劃分法邊界值分析法因果圖法基于決策表的測(cè)試法功能圖法判定表組成法正交實(shí)驗(yàn)設(shè)計(jì)法11本章內(nèi)容黑盒測(cè)試技術(shù)概述等價(jià)類(lèi)劃分邊界值分析決策表法因果圖法正交實(shí)驗(yàn)法12等價(jià)類(lèi)測(cè)試等價(jià)類(lèi)的思想:物以類(lèi)聚人以群分歸納抽象總結(jié)13等價(jià)類(lèi)測(cè)試我們希望進(jìn)行完備的測(cè)試.同時(shí)又希望避免冗余。許多測(cè)試用例表明,大量冗余和嚴(yán)重漏洞并存。等價(jià)類(lèi)劃分法的意圖,是將不能窮舉的測(cè)試過(guò)程進(jìn)行合理分類(lèi),以設(shè)計(jì)出來(lái)具有完整性和代表性的測(cè)試用例。例如,設(shè)計(jì)一個(gè)判斷等邊三角形的測(cè)試用例:如果選擇三元組(5,5,5)作為輸入,就沒(méi)有必要再設(shè)置諸如(6,6,6)和(100,100,100)這樣的測(cè)試用例了對(duì)于發(fā)現(xiàn)程序中的故障來(lái)說(shuō),等價(jià)類(lèi)中的每個(gè)元素是等效的。14什么是等價(jià)類(lèi)?如何設(shè)計(jì)測(cè)試輸入數(shù)據(jù),有兩個(gè)條件非常重要:整個(gè)數(shù)據(jù)的集合,必須具有形式上的正確性和完備性;不同的數(shù)據(jù)子集,必須互不相交(形式上無(wú)冗余性)。符合這樣條件的集合就是等價(jià)類(lèi)。等價(jià)類(lèi)測(cè)試的思想,就是通過(guò)每個(gè)等價(jià)類(lèi)中的一個(gè)或有限個(gè)元素設(shè)計(jì)測(cè)試用例。所有等價(jià)類(lèi)的并集對(duì)應(yīng)整個(gè)輸入域提供完備性等價(jià)類(lèi)的互不相交保證無(wú)冗余性15等價(jià)類(lèi)劃分法的過(guò)程在等價(jià)類(lèi)劃分法設(shè)計(jì)測(cè)試用例的過(guò)程中,需要使用兩個(gè)過(guò)程:分類(lèi)和抽象。分類(lèi):將輸入(出)域按照相同特性或者類(lèi)似功能進(jìn)行分類(lèi),即把所有可能的輸入數(shù)據(jù),按照輸入域劃分成若干部分(子集)。抽象:在各個(gè)子類(lèi)中抽象出相同特性并用實(shí)例來(lái)表征這個(gè)特性。這樣,就可以從每一個(gè)子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測(cè)試用例。16有效等價(jià)類(lèi)與無(wú)效等價(jià)類(lèi)有效等價(jià)類(lèi)和無(wú)效等價(jià)類(lèi)定義如下:有效等價(jià)類(lèi)——滿(mǎn)足需求規(guī)格說(shuō)明中的約束,即有效的、有意義的輸入數(shù)據(jù)所構(gòu)成的集合。得到有效等價(jià)類(lèi),就可以檢驗(yàn)程序是否滿(mǎn)足規(guī)格說(shuō)明所規(guī)定的功能和性能。無(wú)效等價(jià)類(lèi)——不滿(mǎn)足需求規(guī)格說(shuō)明中的約束,即無(wú)效的、錯(cuò)誤的輸入數(shù)據(jù)構(gòu)成的集合。使用無(wú)效等價(jià)類(lèi),可以鑒別程序異常情況的處理,保障在輸入錯(cuò)誤的時(shí)候能有異常保護(hù),這樣才能保證軟件的可靠性。17常用的等價(jià)類(lèi)劃分原則(1)按區(qū)間劃分如果規(guī)格說(shuō)明規(guī)定了輸入條件的取值范圍或值的數(shù)量,則可以確定一個(gè)有效等價(jià)類(lèi)和兩個(gè)無(wú)效等價(jià)類(lèi)。例如:如果軟件規(guī)格說(shuō)明“學(xué)生允許選修5到8門(mén)課……”,則一個(gè)有效等價(jià)類(lèi)可取“選課5到8門(mén)”,無(wú)效等價(jià)類(lèi)可取“選課不足5門(mén)”和“選課超過(guò)8門(mén)”。18你所做的系統(tǒng)中哪些功能模塊滿(mǎn)足按區(qū)間劃分常用的等價(jià)類(lèi)劃分原則(2)按數(shù)值劃分如果規(guī)格說(shuō)明規(guī)定了輸入數(shù)據(jù)的一組值(假定n個(gè)),并且程序要對(duì)每一個(gè)輸入值分別處理的情況下,可確立n個(gè)有效等價(jià)類(lèi)和1個(gè)無(wú)效等價(jià)類(lèi)。例:輸入條件說(shuō)明學(xué)歷可為:專(zhuān)科、本科、碩士、博士四種之一,則分別取這四個(gè)值作為四個(gè)有效等價(jià)類(lèi),另外把四種學(xué)歷之外的任何學(xué)歷作為無(wú)效等價(jià)類(lèi)。19你所做的系統(tǒng)中哪些功能模塊滿(mǎn)足按數(shù)值劃分常用的等價(jià)類(lèi)劃分原則(3)按數(shù)值集合劃分如果規(guī)格說(shuō)明規(guī)定了輸入值的集合,則可以確定1個(gè)有效等價(jià)類(lèi)和1個(gè)無(wú)效等價(jià)類(lèi)。例如,某程序要求輸入為T(mén)OM、DICK或HARRY這些名字之一,那么定義一個(gè)有效等價(jià)類(lèi)(采用有效名字之一)和一個(gè)無(wú)效等價(jià)類(lèi)(采用有效名字之外的名字,如JOE)。20你所做的系統(tǒng)中哪些功能模塊滿(mǎn)足按數(shù)值集合劃分常用的等價(jià)類(lèi)劃分原則(4)按限制條件或規(guī)則劃分如果規(guī)格說(shuō)明規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則或限制條件,則可以確立1個(gè)有效等價(jià)類(lèi)(符合規(guī)則)和若干個(gè)無(wú)效等價(jià)類(lèi)(從不同角度違反規(guī)則)。例如,若某個(gè)輸入條件說(shuō)明了一個(gè)必須成立的情況(如輸入數(shù)據(jù)必須是數(shù)字),則可劃分一個(gè)有效等價(jià)類(lèi)(輸入數(shù)據(jù)是數(shù)字)和一個(gè)無(wú)效等價(jià)類(lèi)(輸入數(shù)據(jù)為非數(shù)字)。21你所做的系統(tǒng)中哪些功能模塊滿(mǎn)足按限制條件或規(guī)則劃分常用的等價(jià)類(lèi)劃分原則(5)細(xì)分等價(jià)類(lèi)在確知已劃分的等價(jià)類(lèi)中各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價(jià)類(lèi)進(jìn)一步的劃分為更小的等價(jià)類(lèi)。22輸入條件有效等價(jià)類(lèi)無(wú)效等價(jià)類(lèi)………………等價(jià)類(lèi)表實(shí)例需求是:對(duì)用戶(hù)輸入的分?jǐn)?shù)進(jìn)行評(píng)級(jí),其中90到100為A,80-89為B,70-79為C,60-69為D,60以下為E。輸入分?jǐn)?shù)要求必須是正整數(shù)或0。根據(jù)分析得出以下等價(jià)類(lèi)劃分?23輸入條件有效等價(jià)類(lèi)無(wú)效等價(jià)類(lèi)分?jǐn)?shù)0-5960-6970-7980-8990-100空負(fù)數(shù)大于100的數(shù)小數(shù)含字母的字符串實(shí)例如果開(kāi)發(fā)一個(gè)針對(duì)未成年人心理咨詢(xún)平臺(tái)的軟件,里面有關(guān)于家庭類(lèi)型的分類(lèi):家庭類(lèi)型={正常家庭、單親家庭,重組家庭、隔代家庭}該分類(lèi)全嗎?24函數(shù)F的功能擴(kuò)展25有兩個(gè)變量x1和x2的函數(shù)F。如果函數(shù)F實(shí)現(xiàn)為一個(gè)程序,則輸入兩個(gè)變量x1和x2會(huì)有一些(可能未規(guī)定)邊界:
a≤x1≤d區(qū)間為[a,b),[b,c),[c,d]e≤x2≤g區(qū)間為[e,f),[f,g]abegcdfx1x2弱一般等價(jià)類(lèi)測(cè)試弱一般等價(jià)類(lèi)測(cè)試是基于單缺陷假設(shè)的;弱一般等價(jià)類(lèi)測(cè)試通過(guò)使用一個(gè)測(cè)試用例中的每個(gè)等價(jià)類(lèi)(區(qū)間)的一個(gè)變量實(shí)現(xiàn)。26abegcdf強(qiáng)一般等價(jià)類(lèi)測(cè)試強(qiáng)一般等價(jià)類(lèi)測(cè)試是基于多缺陷假設(shè)的;等價(jià)類(lèi)笛卡兒積的每個(gè)元素對(duì)應(yīng)的測(cè)試用例;27abegcdf弱健壯等價(jià)類(lèi)測(cè)試對(duì)于有效輸入,使用每個(gè)有效類(lèi)的一個(gè)值(就像我們?cè)谒^弱一般等價(jià)類(lèi)測(cè)試中所做的一樣。)對(duì)于無(wú)效輸入,測(cè)試用例將擁有一個(gè)無(wú)效值,并保持其余的值都是有效的28abegcdf強(qiáng)健壯等價(jià)類(lèi)測(cè)試所有等價(jià)類(lèi)笛卡兒積的每個(gè)元素中獲得測(cè)試用例29abegcdf等價(jià)類(lèi)劃分法示意圖30弱一般等價(jià)類(lèi)測(cè)試用例強(qiáng)一般等價(jià)類(lèi)測(cè)試用例弱健壯等價(jià)類(lèi)測(cè)試用例強(qiáng)健壯等價(jià)類(lèi)測(cè)試用例有效等價(jià)類(lèi)有效等價(jià)類(lèi)含無(wú)效等價(jià)類(lèi)含無(wú)效等價(jià)類(lèi)使用等價(jià)類(lèi)設(shè)計(jì)測(cè)試用例的要點(diǎn)為每個(gè)等價(jià)類(lèi)規(guī)定惟一的編號(hào)。設(shè)計(jì)一個(gè)新的測(cè)試用例,盡可能多地覆蓋尚未被覆蓋的有效等價(jià)類(lèi),重復(fù)這一步,直到測(cè)試用例覆蓋了所有的有效等價(jià)類(lèi)。設(shè)計(jì)一個(gè)新的測(cè)試用例,使其覆蓋并且只覆蓋一個(gè)還沒(méi)有被覆蓋的無(wú)效等價(jià)類(lèi)。重復(fù)這一步,直至測(cè)試用例覆蓋了所有的無(wú)效等價(jià)類(lèi)。31編號(hào)操作數(shù)取值所屬等價(jià)類(lèi)11—100之間的整數(shù)有效等價(jià)類(lèi)2小于1的整數(shù)無(wú)效等價(jià)類(lèi)13大于100的整數(shù)無(wú)效等價(jià)類(lèi)24小數(shù)無(wú)效等價(jià)類(lèi)35字母或漢字無(wú)效等價(jià)類(lèi)46特殊字符無(wú)效等價(jià)類(lèi)57空格無(wú)效等價(jià)類(lèi)68空值無(wú)效等價(jià)類(lèi)71個(gè)有效等價(jià)類(lèi)、7個(gè)無(wú)效等價(jià)類(lèi)等價(jià)類(lèi)測(cè)試用例設(shè)計(jì)示例測(cè)試一個(gè)加法器。約束:兩個(gè)操作數(shù)的取值范圍是1—100的整數(shù)。32思考:該測(cè)試用例全面嗎?不全面。無(wú)效等價(jià)類(lèi)沒(méi)有被全部覆蓋到。編號(hào)操作數(shù)1操作數(shù)2預(yù)期結(jié)果所屬等價(jià)類(lèi)134043有效等價(jià)類(lèi)20-1提示出錯(cuò)無(wú)效等價(jià)類(lèi)13102123提示出錯(cuò)無(wú)效等價(jià)類(lèi)2表加法器測(cè)試用例1分析:還有多少無(wú)效等價(jià)類(lèi)?見(jiàn)下表:加法器的有效等價(jià)類(lèi)和無(wú)效等價(jià)類(lèi)編號(hào)操作數(shù)取值所屬等價(jià)類(lèi)11—100之間的整數(shù)有效等價(jià)類(lèi)2小于1的整數(shù)無(wú)效等價(jià)類(lèi)13大于100的整數(shù)無(wú)效等價(jià)類(lèi)24小數(shù)無(wú)效等價(jià)類(lèi)35字母或漢字無(wú)效等價(jià)類(lèi)46特殊字符無(wú)效等價(jià)類(lèi)57空格無(wú)效等價(jià)類(lèi)68空值無(wú)效等價(jià)類(lèi)7重新設(shè)計(jì)加法器的測(cè)試用例:編號(hào)操作數(shù)1操作數(shù)2預(yù)期結(jié)果所屬等價(jià)類(lèi)134043有效等價(jià)類(lèi)20-1提示出錯(cuò)無(wú)效等價(jià)類(lèi)13102123提示出錯(cuò)無(wú)效等價(jià)類(lèi)241.20.8提示出錯(cuò)無(wú)效等價(jià)類(lèi)35A好提示出錯(cuò)無(wú)效等價(jià)類(lèi)46¥@提示出錯(cuò)無(wú)效等價(jià)類(lèi)57空格空格提示出錯(cuò)無(wú)效等價(jià)類(lèi)68空值空值提示出錯(cuò)無(wú)效等價(jià)類(lèi)7表加法器測(cè)試用例2思考:“出錯(cuò)信息”怎樣提示?出錯(cuò):請(qǐng)輸入1—100之間的整數(shù)。等價(jià)類(lèi)劃分的測(cè)試運(yùn)用:三角形類(lèi)型假定3個(gè)輸入a、b和c在1~100之間取值,三角形問(wèn)題可以更詳細(xì)地描述為:輸入3個(gè)整數(shù)a、b和c分別作為三角形的三條邊,要求a、b和c必須滿(mǎn)足以下條件:Con1.1≤a≤100Con2.1≤b≤100Con3.1≤c≤100Con4.a(chǎn)<b+cCon5.b<a+cCon6.c<a+b輸入三個(gè)整數(shù)a、b和c分別作為三角形的3條邊,通過(guò)程序判斷由這3條邊構(gòu)成的三角形類(lèi)型是:等邊三角形、等腰三角形、一般三角形或非三角形。等價(jià)類(lèi)劃分的測(cè)試運(yùn)用(續(xù))程序輸出是由這3條邊構(gòu)成的三角形類(lèi)型:等邊三角形、等腰三角形、一般三角形或非三角形。如果a、b和c滿(mǎn)足Con1、Con2和Con3,則輸出下列4種情況之一:如果不滿(mǎn)足條件Con4、Con5和Con6中有一個(gè),則程序輸出為“非三角形”。如果三條邊相等,則程序輸出為“等邊三角形”。如果恰好有兩條邊相等,則程序輸出為“等腰三角形”。如果三條邊都不相等,則程序輸出為“一般三角形”。顯然,這四種情況相互排斥。輸
入
三個(gè)
整
數(shù)有效等價(jià)類(lèi)編號(hào)無(wú)效等價(jià)類(lèi)編號(hào)整數(shù)1一邊為非整數(shù)二邊為非整數(shù)三邊均為非整數(shù)567三個(gè)數(shù)2只有一條邊只有二條邊多余三條邊89101≤a≤1001≤b≤1001≤c≤1003一邊為零二邊為零三邊為零111213一邊
<零二邊
<零三邊
<零141516一邊
>100二邊
>100三邊
>100171819a<b+cb<a+cc<a+c4a≥b+cb≥a+cc≥a+c202122三角形問(wèn)題的等價(jià)類(lèi)(輸入域):測(cè)試用例Test1=(3,4,5)便可覆蓋有效等價(jià)類(lèi)1-4。測(cè)試用例輸入a,b,c期望輸出覆蓋等價(jià)類(lèi)Test21.5,4,5提示“請(qǐng)輸入1~100之間的整數(shù)”5Test33.5,2.5,5提示“請(qǐng)輸入1~100之間的整數(shù)”6Test42.5,4.5,5.5提示“請(qǐng)輸入1~100之間的整數(shù)”7Test53提示“請(qǐng)輸入三條邊長(zhǎng)”8Test64,5提示“請(qǐng)輸入三條邊長(zhǎng)”9Test72,3,4,5提示“請(qǐng)輸入三條邊長(zhǎng)”10Test83,0,8提示“邊長(zhǎng)不能為0”11Test90,6,0提示“邊長(zhǎng)不能為0”12Test100,0,0提示“邊長(zhǎng)不能為0”13Test11-3,4,6提示“邊長(zhǎng)不能為負(fù)”14Test122,-7,-5提示“邊長(zhǎng)不能為負(fù)”15Test13-3,-5,-7提示“邊長(zhǎng)不能為負(fù)”16Test14101,4,8提示“請(qǐng)輸入1~100之間的整數(shù)”17Test153,101,101提示“請(qǐng)輸入1~100之間的整數(shù)”18Test16101,101,101提示“請(qǐng)輸入1~100之間的整數(shù)”19Test1720,4,5提示“請(qǐng)輸入滿(mǎn)足是三角形的整數(shù)”20Test184,20,5提示“請(qǐng)輸入滿(mǎn)足是三角形的整數(shù)”21Test194,5,20提示“請(qǐng)輸入滿(mǎn)足是三角形的整數(shù)”22等價(jià)類(lèi)劃分的測(cè)試運(yùn)用(續(xù))從輸出域定義等價(jià)類(lèi),三角形問(wèn)題有四種可能輸出:等邊三角形,等腰三角形,一般三角形和非三角形。利用這些信息從輸出(值域)劃分等價(jià)類(lèi)為:①R1={<a,b,c>:邊為a,b,c的等邊三角形}②R2={<a,b,c>:邊為a,b,c的等腰三角形}③R3={<a,b,c>:邊為a,b,c的一般三角形}④R4={<a,b,c>:邊a,b,c不能形成三角形}測(cè)試用例abc預(yù)期輸出Test1555等邊三角形Test2223等腰三角形Test3345一般三角形Test4412非三角形三角形問(wèn)題的4個(gè)等價(jià)類(lèi)測(cè)試用例課堂練習(xí):劃分系統(tǒng)的等價(jià)類(lèi)并設(shè)計(jì)測(cè)試用例汽車(chē)銷(xiāo)售系統(tǒng)中的某款汽車(chē)價(jià)格計(jì)算的規(guī)格說(shuō)明:汽車(chē)價(jià)格的起點(diǎn)是:基準(zhǔn)價(jià)(baseprice)減去折扣(discount),其中基準(zhǔn)價(jià)是汽車(chē)的基本價(jià)格,折扣是銷(xiāo)售商給予的在基準(zhǔn)價(jià)基礎(chǔ)上的價(jià)格折扣。增加特殊設(shè)備的特殊價(jià)格(specialprice)和附加設(shè)備的附加價(jià)格(extraprice)。如果選擇了3個(gè)或更多的附加設(shè)備(這些設(shè)備不包括在特殊設(shè)備中),這些附加設(shè)備可以有10%的折扣。如果選擇了5個(gè)或更多的附加設(shè)備,這些附加設(shè)備的折扣可以增加到15%。銷(xiāo)售商提供的折扣只針對(duì)基準(zhǔn)價(jià),附加設(shè)備的折扣只能用在附加設(shè)備上。這些折扣不能相互疊加。下面是某編碼人員寫(xiě)C函數(shù)計(jì)算總的價(jià)格。doublecalculate_price(doublebaseprice,doublespecialprice,doubleextraprice,intextras,doublediscount)40本章內(nèi)容黑盒測(cè)試技術(shù)概述等價(jià)類(lèi)劃分邊界值分析決策表法因果圖法正交實(shí)驗(yàn)法41邊界邊界是容易出現(xiàn)問(wèn)題與爭(zhēng)議的區(qū)域42邊界值測(cè)試邊界值分析法(BoundaryValueAnalysis)就是對(duì)輸入或輸出的邊界值進(jìn)行測(cè)試的一種黑盒測(cè)試方法。無(wú)數(shù)的測(cè)試實(shí)踐表明,大量的故障往往發(fā)生在輸入定義域或輸出值域的邊界上,而不是在其內(nèi)部。因此,針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,通常會(huì)取得很好的測(cè)試效果。43邊界值測(cè)試軟件測(cè)試中,邊界檢驗(yàn)的情況很多,常見(jiàn)類(lèi)型:數(shù)字、字符、位置、質(zhì)量、大小、速度、方位、尺寸、空間等;這些類(lèi)型的邊界值應(yīng)該在最大/最小,首位/末尾,上/下,最快/最慢,最高/最低,最短/最長(zhǎng),空/滿(mǎn)等情況下。思考:如果一個(gè)加法器可實(shí)現(xiàn)對(duì)任意int型(4字節(jié))整數(shù)的加法,考慮對(duì)其進(jìn)行測(cè)試的邊界值。44邊界值測(cè)試測(cè)試人員必須對(duì)軟件特性的邊界值進(jìn)行詳細(xì)的分析和測(cè)試,才能保證測(cè)試的完整性。在實(shí)際的測(cè)試中,經(jīng)常會(huì)把等價(jià)類(lèi)測(cè)試法和邊界值分析法結(jié)合使用,設(shè)計(jì)測(cè)試用例。45邊界值測(cè)試邊界值分析法,是對(duì)輸入的邊界值進(jìn)行測(cè)試。在測(cè)試過(guò)程中,錯(cuò)誤大都發(fā)生在輸入范圍的邊界上。在測(cè)試用例設(shè)計(jì)中,需要對(duì)輸入的條件進(jìn)行分析,并提取其中的邊界值,通過(guò)對(duì)這些邊界值的測(cè)試來(lái)查出更多的錯(cuò)誤。46邊界值測(cè)試邊界值分析利用輸入變量的最小值(min),稍大于最小值(min+),域內(nèi)任意值(nom),稍小于最大值(max-),最大值(max)來(lái)設(shè)計(jì)測(cè)試用例。即通過(guò)使所有變量取正常值,只使一個(gè)變量分別取最小值、略高于最小值、略低于最大值和最大值47邊界值測(cè)試為便于理解邊界值,這里討論一個(gè)有兩個(gè)變量x1和x2的程序P。假設(shè)輸入變量x1和x2在下列范圍內(nèi)取值:a≤x1≤b,c≤x2≤d。48如果考慮邊界值分析,加法器(1-100的數(shù))測(cè)試用例擴(kuò)展如下表。編號(hào)操作數(shù)1操作數(shù)2預(yù)期結(jié)果備注134043有效等價(jià)類(lèi)2-4-1提示出錯(cuò)無(wú)效等價(jià)類(lèi)13106123提示出錯(cuò)無(wú)效等價(jià)類(lèi)241.20.8提示出錯(cuò)無(wú)效等價(jià)類(lèi)35A好提示出錯(cuò)無(wú)效等價(jià)類(lèi)46¥@提示出錯(cuò)無(wú)效等價(jià)類(lèi)57空格空格提示出錯(cuò)無(wú)效等價(jià)類(lèi)68空值空值提示出錯(cuò)無(wú)效等價(jià)類(lèi)79112下界10224下界加111100100200上界129999198上界減1表加法器測(cè)試用例課堂練習(xí):應(yīng)用邊界值測(cè)試設(shè)計(jì)測(cè)試用例汽車(chē)銷(xiāo)售系統(tǒng)中的某款汽車(chē)價(jià)格計(jì)算的規(guī)格說(shuō)明:汽車(chē)價(jià)格的起點(diǎn)是:基準(zhǔn)價(jià)(baseprice)減去折扣(discount),其中基準(zhǔn)價(jià)是汽車(chē)的基本價(jià)格,折扣是銷(xiāo)售商給予的在基準(zhǔn)價(jià)基礎(chǔ)上的價(jià)格折扣。增加特殊設(shè)備的特殊價(jià)格(specialprice)和附加設(shè)備的附加價(jià)格(extraprice)。如果選擇了3個(gè)或更多的附加設(shè)備(這些設(shè)備不包括在特殊設(shè)備中),這些附加設(shè)備可以有10%的折扣。如果選擇了5個(gè)或更多的附加設(shè)備,這些附加設(shè)備的折扣可以增加到15%。銷(xiāo)售商提供的折扣只針對(duì)基準(zhǔn)價(jià),附加設(shè)備的折扣只能用在附加設(shè)備上。這些折扣不能相互疊加。下面是某編碼人員寫(xiě)C函數(shù)計(jì)算總的價(jià)格。doublecalculate_price(doublebaseprice,doublespecialprice,doubleextraprice,intextras,doublediscount)50附加條件:基本價(jià)格在80,000到140,000元之間特殊價(jià)格在1000到10,000元之間最多可有25個(gè)可能的附加選擇,價(jià)格在200到4000元之間經(jīng)銷(xiāo)商給出的最大折扣為25%邊界值測(cè)試思考:邊界值測(cè)試只測(cè)邊界值嗎?邊界值測(cè)試范圍:下界、上界;下界減一、下界加一;上界減一、上界加一。51健壯性測(cè)試邊界值測(cè)試通常直接應(yīng)用于健壯(容錯(cuò))性測(cè)試,最有意義的部分不是輸入,而是預(yù)期的輸出,觀察對(duì)例外情況如何處理。健壯性是指在異常情況下,軟件還能正常運(yùn)行的能力。健壯性有兩層含義:容錯(cuò)能力恢復(fù)能力52健壯性測(cè)試的基本思想健壯性測(cè)試是邊界值分析的一種簡(jiǎn)單擴(kuò)展,除了使用五個(gè)邊界值分析取值,還要過(guò)采用:一個(gè)略超過(guò)最大值(max+)的取值一個(gè)略小于最小值(min-)的取值53健壯性測(cè)試兩個(gè)變量函數(shù)的健壯性測(cè)試用例54X2健壯性測(cè)試的討論健壯性測(cè)試最有意思的部分不是輸入而是預(yù)期的輸出
健壯性測(cè)試的主要價(jià)值是觀察異常情況的處理
軟件質(zhì)量要素的衡量標(biāo)準(zhǔn):軟件的容錯(cuò)性軟件容錯(cuò)性的度量:從非法輸入中恢復(fù)55健壯性測(cè)試56健壯性測(cè)試的測(cè)試用例個(gè)數(shù)
一個(gè)變量個(gè)數(shù)為n的函數(shù)的健壯性測(cè)試會(huì)產(chǎn)生多少個(gè)測(cè)試用例??思考:最壞情況測(cè)試最壞情況測(cè)試的基本思想邊界值測(cè)試分析采用了可靠性理論的單缺陷假設(shè)
最壞情況測(cè)試拒絕這種假設(shè),關(guān)心當(dāng)多個(gè)變量取極值時(shí)會(huì)出現(xiàn)什么情況?57最壞情況測(cè)試用例設(shè)計(jì)方法對(duì)每一個(gè)變量首先進(jìn)行包含最小值、略高于最小值、正常值、略低于最大值、最大值五個(gè)元素集合的測(cè)試,然后對(duì)這些集合進(jìn)行笛卡爾積計(jì)算,以生成測(cè)試用例。一個(gè)變量個(gè)數(shù)為n的函數(shù)的最壞情況測(cè)試會(huì)產(chǎn)生5n個(gè)測(cè)試用例。58健壯性測(cè)試兩變量函數(shù)的最壞情況測(cè)試用例59X2最壞情況與邊界值分析的比較基本邊界值分析測(cè)試用例是最壞情況測(cè)試用例的真子集
最壞情況測(cè)試顯然更徹底最壞情況測(cè)試工作量大得多n變量函數(shù)的最壞情況測(cè)試會(huì)產(chǎn)生5n個(gè)測(cè)試用例邊界值分析只產(chǎn)生4n+1個(gè)測(cè)試用例60最壞情況測(cè)試舉例一三角形問(wèn)題三條邊a,b,c取整數(shù)值,且各邊的取值范圍是:[1,200]最壞情況測(cè)試用例每條邊的取值:1,2,100,199,200測(cè)試用例數(shù)目:5n
三角形問(wèn)題(n=3):用例數(shù)為12561最壞情況測(cè)試舉例二NextDate的測(cè)試用例輸入條件1≤月份≤121≤日期≤311812≤年≤2017最壞情況測(cè)試用例設(shè)計(jì)月份取值:1,2,6,11,12日期取值:1,2,15,30,31年取值:1812,1813,1912,2016,201762健壯最壞情況測(cè)試對(duì)每一個(gè)變量,首先進(jìn)行包含最小值、略高于最小值、正常值、略低于最大值、最大值五個(gè)元素集合的測(cè)試還要采用一個(gè)略超過(guò)最大值的取值,以及一個(gè)略小于最小值的取值。然后對(duì)這些集合進(jìn)行笛卡爾積計(jì)算以生成測(cè)試用例。63健壯性測(cè)試兩變量函數(shù)的健壯最壞情況測(cè)試用例64本章內(nèi)容黑盒測(cè)試技術(shù)概述等價(jià)類(lèi)劃分邊界值分析決策表法因果圖法正交實(shí)驗(yàn)法65基于決策表的測(cè)試適用情況:在有些軟件中,如果存在著一些數(shù)據(jù)處理,而且某些操作是否實(shí)施依賴(lài)于多個(gè)邏輯條件的取值;在這些邏輯條件取值的組合所構(gòu)成的多種情況下,分別執(zhí)行不同的操作。什么是決策表?決策表是把作為條件的所有輸入的各種組合值以及對(duì)應(yīng)輸出值都羅列出來(lái)而形成的表格。它能夠?qū)?fù)雜的問(wèn)題按照各種可能的情況全部列舉出來(lái),簡(jiǎn)明并避免遺漏。從20世紀(jì)60年代初以來(lái),決策表一直被用來(lái)表示和分析復(fù)雜的邏輯關(guān)系,描述不同條件集合下采取行動(dòng)的若干組合情況?;跊Q策表的測(cè)試
①條件樁:列出問(wèn)題的所有條件。
③動(dòng)作樁:列出問(wèn)題規(guī)定可能采取的操作。
②條件項(xiàng):針對(duì)條件樁給出的條件列出所有可能的取值。
④動(dòng)作項(xiàng):指出在條件項(xiàng)的各組取值情況下應(yīng)采取的動(dòng)作?;跊Q策表的測(cè)試
規(guī)則
選項(xiàng)
12345678910111213141516問(wèn)題能編寫(xiě)程序?NNNNNNNNYYYYYYYY熟悉軟件工程?NNNNYYYYNNNNYYYY對(duì)書(shū)中內(nèi)容感興趣?NNYYNNYYNNYYNNYY理解書(shū)中內(nèi)容?NYNYNYNYNYNYNYNY建議學(xué)習(xí)C/C++語(yǔ)言
學(xué)習(xí)軟件工程
繼續(xù)閱讀
放棄學(xué)習(xí)
一本書(shū)的閱讀指南的決策表一條規(guī)則基于決策表的測(cè)試構(gòu)造決策表的步驟:(1)列出所有的條件樁和動(dòng)作樁。(2)確定規(guī)則的個(gè)數(shù)。有n個(gè)條件的決策表有2n個(gè)規(guī)則(每個(gè)條件取真、假值)(3)填入條件項(xiàng)。(4)填入動(dòng)作項(xiàng),得到初始決策表。(5)簡(jiǎn)化決策表,合并相似規(guī)則。若表中有兩條以上規(guī)則具有相同的動(dòng)作,并且在條件項(xiàng)之間存在極為相似的關(guān)系,便可以合并。合并后的條件項(xiàng)用符號(hào)“-”表示,說(shuō)明執(zhí)行的動(dòng)作與該條件的取值無(wú)關(guān),稱(chēng)為無(wú)關(guān)條件?;跊Q策表的測(cè)試
規(guī)則
選項(xiàng)
12345678910111213141516問(wèn)題能編寫(xiě)程序?NNNNNNNNYYYYYYYY熟悉軟件工程?NNNNYYYYNNNNYYYY對(duì)書(shū)中內(nèi)容感興趣?NNYYNNYYNNYYNNYY理解書(shū)中內(nèi)容?NYNYNYNYNYNYNYNY建議學(xué)習(xí)C/C++語(yǔ)言
學(xué)習(xí)軟件工程
繼續(xù)閱讀
放棄學(xué)習(xí)
一本書(shū)的閱讀指南的決策表基于決策表的測(cè)試
規(guī)則
選項(xiàng)
1,52,436,7,89,1110,1213,1415,16問(wèn)題能編寫(xiě)程序?NNNNYYYY熟悉軟件工程?-NNYNNYY對(duì)書(shū)中內(nèi)容感興趣?N-Y---NY理解書(shū)中內(nèi)容?NYN-NY--建議學(xué)習(xí)C/C++語(yǔ)言
學(xué)習(xí)軟件工程
繼續(xù)閱讀
放棄學(xué)習(xí)
化簡(jiǎn)后的“閱讀指南”基于決策表的測(cè)試輸入三個(gè)整數(shù)a、b和c分別作為三角形的3條邊,通過(guò)程序判斷由這3條邊構(gòu)成的三角形類(lèi)型是:等邊三角形、等腰三角形、一般三角形或非三角形(不能構(gòu)成一個(gè)三角形)。假定3個(gè)輸入a、b和c為整數(shù)取值,三角形問(wèn)題可以更詳細(xì)地描述為:
舉例:三角形問(wèn)題的決策表輸入3個(gè)整數(shù)a、b和c分別作為三角形的三條邊,要求a、b和c必須滿(mǎn)足以下條件:Con1.a(chǎn)<b+cCon2.b<a+cCon3.c<a+b基于決策表的測(cè)試(續(xù))程序輸出是由這3條邊構(gòu)成的三角形類(lèi)型:等邊三角形、等腰三角形、一般三角形或非三角形。如果a、b和c滿(mǎn)足都是大于0的整數(shù),則輸出下列4種情況之一:①如果不滿(mǎn)足條件Con1、Con2和Con3中有一個(gè),則程序輸出為“非三角形”。②如果三條邊相等,則程序輸出為“等邊三角形”。③如果恰好有兩條邊相等,則程序輸出為“等腰三角形”。④如果三條邊都不相等,則程序輸出為“一般三角形”。顯然,這四種情況相互排斥。舉例:三角形問(wèn)題的決策表基于決策表的測(cè)試(續(xù))規(guī)則1-8規(guī)則9規(guī)則10規(guī)則11規(guī)則12規(guī)則13規(guī)則14規(guī)則15規(guī)則16條件:c1:a,b,c構(gòu)成三角形?c2:a=b?c3:a=c?c4:b=c?
N---
YYYY
YYYN
YYNY
YYNN
YNYY
YNYN
YNNY
YNNN動(dòng)作:a1:非三角形a2:一般三角形a3:等腰三角形a4:等邊三角形a5:不可能
√
√
√
√√√√√√舉例:三角形問(wèn)題的決策表基于決策表的測(cè)試基于決策表的測(cè)試76舉例:三角形問(wèn)題的決策表用例IDabc預(yù)期輸出1412非三角形2142非三角形3123非三角形4555等邊三角形5???不可能6???不可能7223等腰三角形8???不可能9232等腰三角形10332等腰三角形11345一般三角形基于決策表的測(cè)試基于決策表測(cè)試的優(yōu)點(diǎn)和缺點(diǎn)優(yōu)點(diǎn):
它能把復(fù)雜的問(wèn)題按各種可能的情況一一列舉出來(lái),簡(jiǎn)明而易于理解,也可避免遺漏。缺點(diǎn):不能表達(dá)重復(fù)執(zhí)行的動(dòng)作,例如循環(huán)結(jié)構(gòu)。實(shí)例:航空服務(wù)
某航空公司有如下規(guī)定:中國(guó)去歐美的航線(xiàn)所有座位都有食物供應(yīng)。每個(gè)座位都可以播放電影中國(guó)去非歐美的國(guó)外航線(xiàn)都有食物供應(yīng),只有商務(wù)倉(cāng)可以播放電影中國(guó)國(guó)內(nèi)的航班的商務(wù)倉(cāng)有食物供應(yīng),但是不可以播放電影中國(guó)國(guó)內(nèi)的航班的經(jīng)濟(jì)倉(cāng)除非飛行時(shí)間大于2小時(shí)就有食物供應(yīng),但是不可以播放電影
78實(shí)例:航空服務(wù)1、列出所有條件樁和動(dòng)作樁等價(jià)類(lèi):
A1={航線(xiàn)為國(guó)外歐美航線(xiàn)}
A2={航線(xiàn)為國(guó)外非歐美航線(xiàn)}
A3={航線(xiàn)為國(guó)內(nèi)航線(xiàn)}
P1={艙位為經(jīng)濟(jì)艙}
P2={艙位為商務(wù)艙}
T1={飛行時(shí)間大于2小時(shí)}
T2={飛行時(shí)間不大于2小時(shí)}條件樁
C1:航線(xiàn)為{A1,A2,A3}之一
C2:艙位為{P1,P2}之一
C3:飛行時(shí)間為{T1,T2}之一79動(dòng)作樁
A1:食物供應(yīng)
A2:電影播放實(shí)例:航空服務(wù)2、確定規(guī)則的個(gè)數(shù)
3x2x2=1280實(shí)例:航空服務(wù)填入條件項(xiàng)和動(dòng)作項(xiàng),得到初始決策表81實(shí)例:航空服務(wù)4、簡(jiǎn)化決策表,合并相似規(guī)則82實(shí)例:航空服務(wù)5、根據(jù)決策表設(shè)計(jì)測(cè)試用例83本章內(nèi)容黑盒測(cè)試技術(shù)概述等價(jià)類(lèi)劃分邊界值分析決策表法因果圖法正交實(shí)驗(yàn)法84因果圖法
因果圖法是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計(jì)測(cè)試用例的方法,它適合于檢查程序輸入條件的各種組合情況。魚(yú)骨圖方法輸入與輸出關(guān)系在因果圖中使用4種符號(hào)分別表示4種因果關(guān)系。用直線(xiàn)連接左右節(jié)點(diǎn),其中左節(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)。86恒等:若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因果圖的基本符號(hào)輸入的約束關(guān)系在實(shí)際問(wèn)題中,輸入狀態(tài)相互之間還可能存在某些依賴(lài)關(guān)系,我們稱(chēng)之為約束。E約束(異):a和b中最多有一個(gè)可能為1,即a和b不能同時(shí)為1I約束(或):a、b和c中至少有一個(gè)必須是1,即a、b和c不能同時(shí)為0O約束(惟一):a和b中必須有一個(gè)且僅有一個(gè)為1R約束(要求):a是1時(shí),b必須是1,即a是1時(shí),b不能是0輸出的約束關(guān)系輸出狀態(tài)之間也往往存在約束,在因果圖中以特定的符號(hào)標(biāo)明這些約束。M約束(強(qiáng)制):若結(jié)果a是1,則結(jié)果b強(qiáng)制為0因果圖法測(cè)試用例的設(shè)計(jì)步驟確定軟件規(guī)格中的原因和結(jié)果分析規(guī)格說(shuō)明中哪些是原因(即輸入條件),哪些是結(jié)果(即輸出條件),并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識(shí)符。確定原因和結(jié)果之間的邏輯關(guān)系分析軟件規(guī)格說(shuō)明中的語(yǔ)義,找出原因與結(jié)果之間、原因與原因之間對(duì)應(yīng)的關(guān)系,根據(jù)這些關(guān)系畫(huà)出因果圖。確定因果圖中的各個(gè)約束由于語(yǔ)法或環(huán)境的限制,有些原因與原因之間、原因與結(jié)果之間的組合情況不可能出現(xiàn)。為表明這些特殊情況,在因果圖上用一些記號(hào)表明約束或限制條件。把因果圖轉(zhuǎn)換為決策表根據(jù)決策表設(shè)計(jì)測(cè)試用例90因果圖法生成測(cè)試用例實(shí)例(1)分析軟件規(guī)格說(shuō)明書(shū),找出原因和結(jié)果。
原因:c1:第一個(gè)字符是#c2:第一個(gè)字符是*c3:第二個(gè)字符是一個(gè)數(shù)字
結(jié)果:e1:給出信息Ne2:修改文件e3:給出信息M91輸入的第一個(gè)字符必須是#或*,第二個(gè)字符必須是一個(gè)數(shù)字,此情況下進(jìn)行文件的修改;如果第一個(gè)字符不是#或*,則給出信息N,如果第二個(gè)字符不是數(shù)字,則給出信息M軟件規(guī)格說(shuō)明書(shū)規(guī)定(1)分析軟件規(guī)格說(shuō)明書(shū),找出原因和結(jié)果
原因:c1:第一個(gè)字符是#,c2:第一個(gè)字符是*,c3:第二個(gè)字符是一個(gè)數(shù)字
結(jié)果:e1:給出信息N,e2:修改文件,e3:給出信息M92輸入的第一個(gè)字符必須是#或*,第二個(gè)字符必須是一個(gè)數(shù)字,此情況下進(jìn)行文件的修改;如果第一個(gè)字符不是#或*,則給出信息N,如果第二個(gè)字符不是數(shù)字,則給出信息M(2)找出原因與結(jié)果之間的因果關(guān)系、原因與原因之間的約束關(guān)系,畫(huà)出因果圖。將原因和結(jié)果用相應(yīng)的邏輯符號(hào)連接起來(lái),可得到其因果圖,其中編號(hào)為10的中間結(jié)點(diǎn)是導(dǎo)出結(jié)果的進(jìn)一步原因。因?yàn)樵騝1和c2不可能同時(shí)為1,即第一個(gè)字符不可能即是#又是*,在因果圖上可對(duì)其施加E約束,這樣便得到了具有約束的因果圖。因果圖法生成測(cè)試用例實(shí)例(3)將因果圖轉(zhuǎn)換成決策表9312345678條件:C111110000C211001100C31010101010111100動(dòng)作:e1√√e2√√e3√√√不可能√√(1)分析軟件規(guī)格說(shuō)明書(shū),找出原因和結(jié)果
原因:c1:第一個(gè)字符是#,c2:第一個(gè)字符是*,c3:第二個(gè)字符是一個(gè)數(shù)字
結(jié)果:e1:給出信息N,e2:修改文件,e3:給出信息M因果圖法生成測(cè)試用例實(shí)例測(cè)試用例編號(hào)輸入數(shù)據(jù)預(yù)期輸出1#3修改文件2#A給出信息M3*6修改文件4*B給出信息M5A1給出信息N6GT給出信息N和信息M94(4)根據(jù)決策表設(shè)計(jì)測(cè)試用例的輸入數(shù)據(jù)和預(yù)期輸出(1)分析軟件規(guī)格說(shuō)明書(shū),找出原因和結(jié)果
原因:c1:第一個(gè)字符是#,c2:第一個(gè)字符是*,c3:第二個(gè)字符是一個(gè)數(shù)字
結(jié)果:e1:給出信息N,e2:修改文件,e3:給出信息M12345678條件:C111110000C211001100C31010101010111100動(dòng)作:e1√√e2√√e3√√√不可能√√本章內(nèi)容黑盒測(cè)試技術(shù)概述等價(jià)類(lèi)劃分邊界值分析決策表法因果圖法正交實(shí)驗(yàn)法95正交實(shí)驗(yàn)法為什么要采用正交試驗(yàn)法?在許多應(yīng)用系統(tǒng)的測(cè)試工作中,不會(huì)象判斷三角形那樣簡(jiǎn)單,輸入條件的因素很多,而且每個(gè)因素也不能簡(jiǎn)單用“是”和“否”來(lái)回答。PowerPoint的打印,考慮4個(gè)因素,每個(gè)因素多個(gè)選項(xiàng)打印范圍分:全部、當(dāng)前幻燈片、給定范圍打印內(nèi)容分:幻燈片、講義、備注頁(yè)、大綱視圖打印顏色/灰度分:彩色、灰度、黑白打印效果分:幻燈片加框和幻燈片不加框。96測(cè)試組合會(huì)變得很多,如果按照傳統(tǒng)的測(cè)試方法,會(huì)導(dǎo)致很大的測(cè)試工作量
正交表的由來(lái)97古希臘是一個(gè)多民族的國(guó)家,國(guó)王在檢閱臣民時(shí)要求每個(gè)方隊(duì)中每行有一個(gè)民族代表,每列也要有一個(gè)民族的代表數(shù)學(xué)家在設(shè)計(jì)方陣時(shí),以每一個(gè)拉丁字母表示一個(gè)民族,所以設(shè)計(jì)的方陣稱(chēng)為拉丁方正交實(shí)驗(yàn)法什么是n階拉丁方?用n個(gè)不同的拉丁字母排成一個(gè)n階方陣(n<26),如果每行的n個(gè)字母均不相同,每列的n個(gè)字母均不相同,則稱(chēng)這種方陣為n*n拉丁方或n階拉丁方。每個(gè)字母在任一行、任一列中只出現(xiàn)一次。98正交實(shí)驗(yàn)法什么是正交拉丁方?假設(shè)有兩個(gè)n階的拉丁方,如果將它們疊合在一起,恰好出現(xiàn)n2個(gè)不同的有序數(shù)對(duì),則稱(chēng)為這兩個(gè)拉丁方為互相正交的拉丁方,簡(jiǎn)稱(chēng)正交拉丁方。99正交實(shí)驗(yàn)法依據(jù)Galois理論,從大量的(實(shí)驗(yàn))數(shù)據(jù)(測(cè)試?yán)┲刑暨x適量的、有代表性的點(diǎn)(條件組合),從而合理地安排實(shí)驗(yàn)(測(cè)試)的一種科學(xué)實(shí)驗(yàn)設(shè)計(jì)方法。就是從全面測(cè)試(完全組合)優(yōu)化為有代表性的測(cè)試(正交組合)。100正交實(shí)驗(yàn)法正交實(shí)驗(yàn)從大量的實(shí)驗(yàn)點(diǎn)中挑選出適量的、有代表性的點(diǎn),依據(jù)相應(yīng)的正交表,合理地安排實(shí)驗(yàn)的一種科學(xué)的實(shí)驗(yàn)設(shè)計(jì)方法有效地、合理地減少需進(jìn)行的實(shí)驗(yàn)數(shù)量相關(guān)概念:因子:有可能影響實(shí)驗(yàn)指標(biāo)的條件因子的水平(或狀態(tài)):影響實(shí)驗(yàn)因子的因素正交表:記為L(zhǎng)次數(shù)(水平數(shù)因子數(shù)),例如L8(41×24)表示實(shí)驗(yàn)次數(shù)為8,1個(gè)4水平的因子,4個(gè)2水平的因子。101選擇正交表已經(jīng)公布了很多正交表,可以從下面的渠道獲得正交表因特網(wǎng)/techsup/technote/ts723_Designs.txthttp://www.york.ac.uk/depts/maths/www.york.ac.uk/depts/maths/tables/orthogonal.htmnote/ts723_Designs.數(shù)理統(tǒng)計(jì)書(shū)籍相關(guān)軟件正交實(shí)驗(yàn)法L4(23)因子因子的狀態(tài)正交實(shí)驗(yàn)法L8(41×24)正交表特點(diǎn)正交表的性質(zhì)每一列中,不同的數(shù)字出現(xiàn)的次數(shù)相等任意兩列中數(shù)字的排列方式齊全而且均衡L8(41×24)均勻分散整齊可比正交實(shí)驗(yàn)法示例:有5個(gè)因子A,B,C,D,E,其中:A因子的水平數(shù)為4,其水平分別為(A1、A2、A3、A4),另外四個(gè)因子的水平數(shù)為2,其中B因子的水平為(B1、B2),C因子的水平為(C1、C2),D因子的水平為(D1、D2),E因子的水平為(E1、E2),因此選用正交表為:L8(41×24)正交實(shí)驗(yàn)法正交表可分為統(tǒng)一水平數(shù)正交表:表中各個(gè)因子的水平數(shù)是一樣的混合水平數(shù)正交表:表中的各個(gè)因子數(shù)的水平數(shù)不同測(cè)試思想根據(jù)被測(cè)軟件的規(guī)格說(shuō)明書(shū)找出影響其功能實(shí)現(xiàn)的操作對(duì)象和外部因素,把它們當(dāng)作因子,而把各個(gè)因子的取值當(dāng)作狀態(tài),構(gòu)造出二元的因素分析表;然后,利用正交表進(jìn)行各因子的狀態(tài)組合,構(gòu)造有效的測(cè)試輸入數(shù)據(jù)集正交表的因子對(duì)應(yīng)被測(cè)對(duì)象的測(cè)試因素因子的水平可以看成是各測(cè)試因素的取值。正交實(shí)驗(yàn)法設(shè)計(jì)步驟依據(jù)被測(cè)對(duì)象說(shuō)明構(gòu)造因子—狀態(tài)表加權(quán)篩選,生成因素分析表選取合適的正交表,生成測(cè)試數(shù)據(jù)集根據(jù)被測(cè)對(duì)象的特征,補(bǔ)充由正交表無(wú)法得到的測(cè)試用例構(gòu)造因子-狀態(tài)表案例,某系統(tǒng)的文件查詢(xún)功能如下描述:某系統(tǒng)文件查詢(xún)功能面向系統(tǒng)注冊(cè)用戶(hù)和非注冊(cè)用戶(hù)開(kāi)放查詢(xún)條件有簡(jiǎn)單查詢(xún)和高級(jí)查詢(xún)之分非注冊(cè)用戶(hù)只能查詢(xún)公開(kāi)文件并且查詢(xún)結(jié)果只能在終端屏幕上顯示系統(tǒng)注冊(cè)用戶(hù)可以查詢(xún)公開(kāi)文件和授權(quán)文件并且查詢(xún)結(jié)果可以輸出到指定的文件或在終端上顯示加權(quán)篩選步驟確定各因子/狀態(tài)的權(quán)值,參見(jiàn)下頁(yè)權(quán)值處理的活動(dòng)圖計(jì)算權(quán)值將各個(gè)因子的權(quán)值(Wi)相加,計(jì)算權(quán)總和(SUM)將各個(gè)因子的權(quán)分別除以權(quán)總和,得到各因子的權(quán)比例ri采用因子數(shù)倒數(shù)的一半,即1/2n作為權(quán)比例標(biāo)準(zhǔn)值,將各個(gè)因子的權(quán)比例ri與1/2n比較,若ri>1/2n,則保留,否則舍去該因子加權(quán)篩選測(cè)試者是否曾經(jīng)給過(guò)因子及狀態(tài)的權(quán)值是否是否需要修改權(quán)值是否需要給出權(quán)值是否需要修改所有權(quán)值引用前次測(cè)試的權(quán)重新輸入所有因子和狀態(tài)的權(quán)值修改部分因子或狀態(tài)的權(quán)值輸入所有因子和狀態(tài)的權(quán)值用缺省值0作為因子和狀態(tài)的權(quán)值是否是否是否選擇正交表根據(jù)前面獲得的因子數(shù)和狀態(tài)數(shù)選擇正交表,選擇正交表可能遇到下面的情況因子數(shù)和水平數(shù)與正交表相吻合因子數(shù)和水平數(shù)與正交表不吻合,可以遵循下面的原則正交表的列數(shù)不能小于因子數(shù);正交表的水平數(shù)不能小于因子的最大狀態(tài)數(shù)。正交表的行數(shù)取最小值選擇正交表對(duì)于前面的例題由于有3個(gè)兩水平因子因此可以選用L4(23)選擇正交表
某系統(tǒng)有:5個(gè)獨(dú)立變量(A,B,C,D,E)變量A和B都有兩個(gè)取值(A1、A2)和(B1、B2)變量C和D都有三個(gè)可能的取值(C1、C2、C3)和(D1、D2、D3)變量E有六個(gè)可能的取值(E1、E2、E3、E4、E5、E6)選擇的正交表,必須滿(mǎn)足表中因子數(shù)>=5水平數(shù)2個(gè)因子的水平數(shù)>=22個(gè)因子的水平數(shù)>=31個(gè)因子的水平數(shù)>=6滿(mǎn)足上面條件的正交表有兩個(gè):L49(78),L18(3661)取行數(shù)最小的L18(3661)選擇正交表L18(3661)正交表選擇正交表最終的結(jié)果A:0->A1,1->A2B:0->B1,1->B2C:0->C1,1->C2,2->C3D:0->D1,1->D2,2->D3E:0->E1,1->E2,2->E3,3->E4,4->E5,5->E6實(shí)例1員工號(hào)(ID)。員工姓名(Name)。員工郵件地址(MailAddress)信息系統(tǒng)中,員工信息查詢(xún)功能是常見(jiàn)的。例如,設(shè)有3個(gè)獨(dú)立的查詢(xún)條件,以獲得特定員工的個(gè)人信息實(shí)例2PowerPoint的打印,考慮4個(gè)因素,每個(gè)因素多個(gè)選項(xiàng)打印范圍分:全部、當(dāng)前幻燈片、給定范圍打印內(nèi)容分:幻燈片、講義、備注頁(yè)、大綱視圖打印顏色/灰度分:彩色、灰度、黑白打印效果分:幻燈片加框和幻燈片不加框。有4個(gè)因子,水平數(shù)(從2到4)是不相等的。由于水平數(shù)不等,采用包含和組合的方法選取合適的正交表公式表中的因子數(shù)>=4表中至少有4個(gè)因子的水平數(shù)>=2行數(shù)取最少的一個(gè)
118最后選中正交表公式:L16(45)
實(shí)例2(續(xù))L16(45)123451000002011113022224033335101236110327123018132109202311021320112201312231021330312143120315321301633021123451A1B1C1D102A1B2C2D213A1B3C3224A1B43335A2B1C2236A2B2C1327A2B33D118A2B4C3D209A3B1C33110A3B232011A3B3C1D2312A3B4C2D12133B13D22143B2C3D13153B3C230163B4C121123451A1B1C1D102A1B2C2D213A1B3C3D124A1B4C1D235A2B1C2D136A2B2C1D227A2B3C2D118A2B4C3D209A3B1C3D2110A3B2C3D1011A3B3C1D2312A3B4C2D1213A1B1C1D2214A2B2C3D1315A3B3C2D2016A1B4C1D11第五列去掉沒(méi)有意義。通過(guò)分析,由于四個(gè)因素里有三個(gè)的水平值小于3,所以從第13行到16行的測(cè)試用例可以忽略。12341A1B1C1D12A1B2C2D23A1B3C3D14A1B4C1D25A2B1C2D16A2B2C1D27A2B3C2D18A2B4C3D29A3B1C3D210A3B2C3D111A3B3C1D212A3B4C2D1測(cè)試用例1測(cè)試用例編號(hào)PPT—ST—FUNCTION—PRINT—001測(cè)試項(xiàng)目測(cè)試powerpoint打印功能測(cè)試標(biāo)題打印PowerPoint文件A全部的幻燈片,有顏色,加框重要級(jí)別高預(yù)置條件PowerPoint文件A已被打開(kāi),電腦主機(jī)已連接有效打印機(jī)輸入文件A:D:\系統(tǒng)測(cè)試.ppt操作步驟1、打開(kāi)打印界面;2、打印范圍選擇“全部”;3、打印內(nèi)容選擇“幻燈片”;4、顏色/灰度選擇“顏色”;5、在“幻燈片加框”前打勾;6、點(diǎn)擊“確定”。
預(yù)期輸出打印出全部幻燈片,有顏色且已加框。測(cè)試用例2測(cè)試用例編號(hào)PPT—ST—FUNCTION—PRINT—002測(cè)試項(xiàng)目測(cè)試powerpoint打印功能測(cè)試標(biāo)題打印PowerPoint文件A全部的幻燈片為講義,灰度,不加框重要級(jí)別中預(yù)置條件PowerPoint文件A已被打開(kāi),電腦主機(jī)已連接有效打印機(jī)輸入文件A:D:\系統(tǒng)測(cè)試.ppt操作步驟1、打開(kāi)打印界面;2、打印范圍選擇“全部”;3、打印內(nèi)容選擇“講義”;4、顏色/灰度選擇“灰度”;5、點(diǎn)擊“確定”。
預(yù)期輸出打印出全部幻燈片為講義,灰度且不加框。測(cè)試用例3測(cè)試用例編號(hào)PPT—ST—FUNCTION—PRINT—003測(cè)試項(xiàng)目測(cè)試powerpoint打印功能測(cè)試標(biāo)題打印PowerPoint文件A全部的備注頁(yè),黑白,加框重要級(jí)別中預(yù)置條件PowerPoint文件A已被打開(kāi),電腦主機(jī)已連接有效打印機(jī)輸入文件A:D:\系統(tǒng)測(cè)試.ppt操作步驟1、打開(kāi)打印界面;2、打印范圍選擇“全部”;3、打印內(nèi)容選擇“備注頁(yè)”;4、顏色/灰度選擇“黑白”;5、在“幻燈片加框”前打勾;6、點(diǎn)擊“確定”。
預(yù)期輸出打印出全部備注頁(yè),黑白且已加框。各黑盒測(cè)試方法的測(cè)試用例數(shù)128各黑盒測(cè)試方法的設(shè)計(jì)測(cè)試用例工作量129黑盒測(cè)試的優(yōu)缺點(diǎn)優(yōu)點(diǎn)對(duì)于規(guī)模較大的代碼單元來(lái)說(shuō),比白盒測(cè)試效率更高;測(cè)試人員不需要了解程序內(nèi)部的實(shí)現(xiàn)邏輯,降低了對(duì)測(cè)試人員的要求,測(cè)試成本較低;測(cè)試人員和編碼人員是獨(dú)立的;從用戶(hù)的視角進(jìn)行測(cè)試,很容易被理解和接受;有助于暴露與需求規(guī)格不一致的問(wèn)題。缺點(diǎn)只有一部分可能的輸入被測(cè)試到,要測(cè)試到每一個(gè)可能的輸入流或路徑幾乎是不可能的;測(cè)試用例的依據(jù)是需求規(guī)格,很難設(shè)計(jì)全面、完善的測(cè)試用例。比較一:白盒測(cè)試只是根據(jù)系統(tǒng)設(shè)計(jì)模型測(cè)試軟件代碼,它不能保證完整的需求規(guī)格是否都被滿(mǎn)足;黑盒測(cè)試只考慮測(cè)試需求規(guī)格,它不能保證代碼是否都被完整測(cè)試到。比較二:白盒測(cè)試會(huì)發(fā)現(xiàn)系統(tǒng)設(shè)計(jì)和代碼中的缺陷;黑盒測(cè)試會(huì)發(fā)現(xiàn)系統(tǒng)需求和功能、性能的缺陷。比較三:白盒測(cè)試對(duì)測(cè)試人員要求較高,測(cè)試成本較高;黑盒測(cè)試對(duì)測(cè)試人員要求較低,測(cè)試成本較低。黑盒測(cè)試與白盒測(cè)試比較白盒測(cè)試和黑盒測(cè)試各有側(cè)重點(diǎn),因此在實(shí)際的測(cè)試過(guò)程中,往往采用黑、白測(cè)試技術(shù)相結(jié)合的方法——灰盒測(cè)試,查漏補(bǔ)缺。在不同的測(cè)試階段采用哪種測(cè)試方法,見(jiàn)下表:測(cè)試階段測(cè)試對(duì)象測(cè)試方法單元測(cè)試單元模塊、如函數(shù)、類(lèi)等主要采用白盒測(cè)試集成測(cè)試模塊間的接口等黑盒、白盒測(cè)試結(jié)合系統(tǒng)測(cè)試整個(gè)系統(tǒng),包括軟、硬件等黑盒測(cè)試驗(yàn)收測(cè)試整個(gè)系統(tǒng)(用戶(hù)參與)黑盒測(cè)試第8章白盒測(cè)試技術(shù)軟件測(cè)試方法134軟件測(cè)試方法白盒測(cè)試靜態(tài)測(cè)試其他動(dòng)態(tài)測(cè)試按是否運(yùn)行系統(tǒng)劃分按是否查看源代碼劃分隨機(jī)測(cè)試黑盒測(cè)試冒煙測(cè)試回歸測(cè)試等價(jià)類(lèi)劃分法錯(cuò)誤推測(cè)法因果圖法邊界值分析法組合分析法手工測(cè)試自動(dòng)化測(cè)試按是否使用自動(dòng)化工具劃分邏輯覆蓋法基本路徑測(cè)試法白盒測(cè)試白盒測(cè)試,又稱(chēng)為透明盒測(cè)試、結(jié)構(gòu)測(cè)試、邏輯驅(qū)動(dòng)測(cè)試、基于代碼的測(cè)試,是為了證明軟件內(nèi)部操作和過(guò)程是否符合設(shè)計(jì)規(guī)格和要求。因此,需要詳細(xì)設(shè)計(jì)文檔作為白盒測(cè)試設(shè)計(jì)的輸入。白盒測(cè)試用例的設(shè)計(jì)要求:了解程序的內(nèi)部邏輯(詳細(xì)設(shè)計(jì)),并且,對(duì)程序的基本輸入輸出已經(jīng)了解。135白盒測(cè)試的任務(wù)對(duì)程序模塊的所有獨(dú)立的執(zhí)行路徑至少要測(cè)試一次;對(duì)邏輯判定,取真或假的兩種情況至少要測(cè)試一次;檢驗(yàn)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性;對(duì)程序進(jìn)行邊界檢查;檢測(cè)程序源代碼是否存在代碼級(jí)缺陷136一般采用以下白盒測(cè)試方法來(lái)滿(mǎn)足上述要求:邏輯覆蓋法基本路徑測(cè)試法基于數(shù)據(jù)流的測(cè)試基于缺陷模式的缺陷檢測(cè)基于變異的測(cè)試程序插樁法137白盒測(cè)試用例生成一般處理流程138本章內(nèi)容邏輯覆蓋測(cè)試數(shù)據(jù)流測(cè)試變異測(cè)試其他白盒測(cè)試方法139控制流圖Euclid方法計(jì)算最大公約數(shù)140輸入x,yx>0&&y>0?x>y?x=x-yy=y-x輸出x+yYYNNvoidmain(){
intx,y;
scanf(“%d%d”,&x,&y);
while(x>0&&y>0){
if(x>y)x=x-y;
else
y=y-x;}printf(%d\n”,x+y);}控制流圖控制流圖為有向圖,由節(jié)點(diǎn)和邊組成。帶箭頭的有向邊表示控制流。矩形框表示一個(gè)計(jì)算處理過(guò)程。圓角矩形框表示輸入或輸出菱形框表示一個(gè)判定條件141輸入x,yx>0&&y>0?x>y?x=x-yy=y-x輸出x+yYYNN簡(jiǎn)化的控制流圖142輸入x,yx>0&&y>0?x>y?x=x-yy=y-x輸出x+yYYNN控制流圖控制流圖節(jié)點(diǎn):表示程序的基本塊,對(duì)應(yīng)一條或多條語(yǔ)句;分支節(jié)點(diǎn)匯合節(jié)點(diǎn)邊:帶箭頭的有向邊表示控制流路徑完整路徑:起點(diǎn)為控制流圖起始點(diǎn),終點(diǎn)為控制流圖退出點(diǎn)可行(達(dá))完整路徑不可行(達(dá))完整路徑143邏輯覆蓋測(cè)試邏輯覆蓋法,是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試用例設(shè)計(jì)方法。邏輯覆蓋法又細(xì)分為以下方法:語(yǔ)句覆蓋分支(判定)覆蓋原子謂詞覆蓋分支-謂詞覆蓋復(fù)合謂詞覆蓋路徑覆蓋144邏輯覆蓋測(cè)試為統(tǒng)一介紹邏輯覆蓋測(cè)試的各種覆蓋準(zhǔn)則,令:T為被測(cè)程序P的一個(gè)測(cè)試數(shù)據(jù)集GP為P的控制流圖LT為與T相對(duì)應(yīng)的GP中的完整路徑集合145146voidmain(){floata,b,c,x1,x2,mid;scanf(“%f,%f,%f”,&a,&b,&c);
if(a!=0){mid=b*b-4*a*c;
if(mid>0){x1=(-b+sqrt(mid))/(2*a);x2=(-b-sqrt(mid))/(2*a);printf(“tworealroots\n”);}else{if(mid==0){x1=-b/2*a;printf(“onerealroot\n”);}else{x1=-b/(2*a);x2=sqrt(-mid)/(2*a);
printf(“twocomplexroots\n”);}}printf(“x1=%f,x2=%f\n”,x1,x2);}}一元二次方程求根程序n0n1n3n4n5n6n7e0e1e2e3e4e5e6e7e9e10e11n2e8startend語(yǔ)句覆蓋準(zhǔn)則語(yǔ)句覆蓋:通過(guò)測(cè)試用例的執(zhí)行,使被測(cè)程序的每個(gè)可執(zhí)行語(yǔ)句至少執(zhí)行一次。語(yǔ)句覆蓋測(cè)試覆蓋率可定義為:語(yǔ)句覆蓋率=(被執(zhí)行語(yǔ)句數(shù)量/所有語(yǔ)句數(shù)量)*100%語(yǔ)句測(cè)試的充分準(zhǔn)則(語(yǔ)句覆蓋準(zhǔn)則)可以定義為:測(cè)試數(shù)據(jù)集稱(chēng)為語(yǔ)句覆蓋充分的,當(dāng)且僅當(dāng)LT覆蓋了GP中的所有節(jié)點(diǎn)。147n0n1n3n4n5n6n7e0e1e2e3e4e5e6e7e9e10e11n2e8startend語(yǔ)句覆蓋準(zhǔn)則優(yōu)點(diǎn):可以很直觀地從源代碼得到測(cè)試用例,無(wú)須細(xì)分每條判定表達(dá)式——測(cè)試用例的設(shè)計(jì)比較簡(jiǎn)單??蓤?zhí)行語(yǔ)句測(cè)試覆蓋率較高。缺點(diǎn):這種方法僅測(cè)試能到達(dá)可執(zhí)行語(yǔ)句的條件,不測(cè)試其它條件,并且對(duì)于隱藏的條件是無(wú)法測(cè)試的——對(duì)條件的測(cè)試不全面;該方法不能準(zhǔn)確地判斷條件中的邏輯關(guān)系錯(cuò)誤,容易產(chǎn)生漏測(cè)的情況;語(yǔ)句覆蓋是最弱的邏輯覆蓋。148n0n1n3n4n5n6n7e0e1e2e3e4e5e6e7e9e10e11n2e8startend語(yǔ)句覆蓋準(zhǔn)則對(duì)于求解一元二次方程的程序,選擇3個(gè)測(cè)試用例:{2、5、3}{1、2、1}{4、2、1}就能覆蓋所有的節(jié)點(diǎn)但不能保證a=0這條分支被測(cè)試149voidmain(){floata,b,c,x1,x2,mid;scanf(“%f,%f,%f”,&a,&b,&c);
if(a!=0){mid=b*b-4*a*c;
if(mid>0){x1=(-b+sqrt(mid))/(2*a);x2=(-b-sqrt(mid))/(2*a);printf(“tworealroots\n”);}else{if(mid==0){x1=-b/2*a;printf(“onerealroot\n”);}else{x1=-b/(2*a);x2=sqrt(-mid)/(2*a);
printf(“twocomplexroots\n”);}}printf(“x1=%f,x2=%f\n”,x1,x2);}}課堂練習(xí)一個(gè)函數(shù)代碼如下,請(qǐng)?jiān)O(shè)計(jì)滿(mǎn)足語(yǔ)句覆蓋的測(cè)試用例150課堂練習(xí)一個(gè)函數(shù)代碼如下,請(qǐng)?jiān)O(shè)計(jì)滿(mǎn)足語(yǔ)句覆蓋的測(cè)試用例151||&&錯(cuò)寫(xiě)成了||,你的測(cè)試用例能測(cè)出來(lái)嗎分支覆蓋準(zhǔn)則分支覆蓋:要求在軟件測(cè)試中,每個(gè)分支都至少獲得一次“真”值和一次“假”值,也就是使程序中的每個(gè)取“真”分支和取“假”分支都至少經(jīng)歷一次。分支覆蓋也被稱(chēng)為判定覆蓋。分支覆蓋測(cè)試的充分性準(zhǔn)則可以定義為:測(cè)試數(shù)據(jù)集稱(chēng)為語(yǔ)句覆蓋充分的,當(dāng)且僅當(dāng)LT覆蓋了GP中的所有有向邊。152n0n1n3n4n5n6n7e0e1e2e3e4e5e6e7e9e10e11n2e8startend分支覆蓋準(zhǔn)則對(duì)于求解一元二次方程的程序,下面4個(gè)測(cè)試用例對(duì)分支覆蓋是充分的。153測(cè)試用例a,b,ca!=0mid>0mid==0測(cè)試用例12,5,3真真假測(cè)試用例21,2,1真假真測(cè)試用例34,2,1真假假測(cè)試用例40,2,1假----n0n1n3n4n5n6n7e0e1e2e3e4e5e6e7e9e10e11n2e8startend課堂練習(xí)一個(gè)函數(shù)代碼如下,請(qǐng)?jiān)O(shè)計(jì)滿(mǎn)足分支覆蓋的測(cè)試用例154謂詞測(cè)試一個(gè)分支的條件由謂詞組成單個(gè)謂詞稱(chēng)為原子謂詞例如a!=0、mid>0等都是原子謂詞原子謂詞通過(guò)邏輯運(yùn)算符可以構(gòu)成復(fù)合謂詞常見(jiàn)的邏輯運(yùn)算符包括“與”、“或”、“非”等155謂詞測(cè)試對(duì)于復(fù)合謂詞而言,分支測(cè)試不是有效的。例如對(duì)于復(fù)合謂詞構(gòu)成的條件語(yǔ)句:
if(math>=9||lang>=80||poli>=75)x=1;采用分支測(cè)試技術(shù),只要原子謂詞中的任何一個(gè)被滿(mǎn)足,則該分支即為真,而不管其它的兩個(gè)是否被滿(mǎn)足。謂詞測(cè)試包括:原子謂詞覆蓋準(zhǔn)則分支-謂詞覆蓋準(zhǔn)則復(fù)合謂詞覆蓋準(zhǔn)則156短路判斷三角形類(lèi)型程序157void
main()
{
inti,j,k,match;scanf(“%d%d%d”,&i,&j,&k);
if(i<=0||j<=0||k<=0||i+j<=k||i+k<=j||j+k<=i)match=4;//不是三角形
elseif(i==j&&i==k)match=1;//等邊三角形
elseif(i==j||i==k||j==k)match=2;//等腰三角形
elsematch=3;//普通三角形printf(“match=%d\n”,match);}e6e0e1e2e3e4e5e7謂詞測(cè)試--原子謂詞覆蓋準(zhǔn)則原子謂詞測(cè)試要求在軟件測(cè)試中,每個(gè)復(fù)合謂詞所包含的每一個(gè)原子謂詞都至少獲得一次“真”值和一次“假”值。原子謂詞覆蓋也被稱(chēng)為條件覆蓋。原子謂詞覆蓋準(zhǔn)則:如果對(duì)任意一個(gè)分支中的任意一個(gè)原子謂詞,測(cè)試數(shù)據(jù)集T中存在一個(gè)測(cè)試數(shù)據(jù)使其在運(yùn)行時(shí)為真、為假至少各一次。158謂詞測(cè)試--原子謂詞覆蓋準(zhǔn)則對(duì)于判斷三角形類(lèi)型的程序,下面11個(gè)測(cè)試用例滿(mǎn)足原子謂詞覆蓋準(zhǔn)則。159測(cè)試用例變量原子謂詞i,j,ki<=0j<=0k<=0i+j<=ki+k<=jj+k<=ii==ji==kj
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 客服專(zhuān)員崗位專(zhuān)業(yè)知識(shí)測(cè)試題及解析
- 門(mén)店長(zhǎng)面試題及答案
- 監(jiān)事會(huì)工作與員工監(jiān)督機(jī)制面談?lì)}目
- 高鐵行李服務(wù)人員面試題及答案
- 財(cái)務(wù)審計(jì)崗位面試題集專(zhuān)業(yè)知識(shí)與實(shí)務(wù)操作
- 人力資源經(jīng)理面試技巧及常見(jiàn)問(wèn)題集
- 初中生物教學(xué)中學(xué)生生物學(xué)思維能力的培養(yǎng)策略教學(xué)研究課題報(bào)告
- 2025年南寧市婦幼保健院公開(kāi)招聘工作人員8人備考題庫(kù)及1套完整答案詳解
- 宜賓數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)發(fā)展集團(tuán)有限公司下屬子公司2025年公開(kāi)選聘1名董事長(zhǎng)的備考題庫(kù)及一套完整答案詳解
- 未來(lái)五年數(shù)字廣播節(jié)目制作、播放企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略分析研究報(bào)告
- 工程工程培訓(xùn)課件
- 2025年出租車(chē)隱患培訓(xùn)會(huì)議記錄內(nèi)容范文
- 醫(yī)院肝病學(xué)科建設(shè)與診療進(jìn)展匯報(bào)
- 2025年軍隊(duì)專(zhuān)業(yè)技能崗位文職人員招聘考試(電工)歷年參考題庫(kù)含答案詳解(5卷)
- JJG 688-2025汽車(chē)排放氣體測(cè)試儀檢定規(guī)程
- 濟(jì)南醫(yī)院節(jié)能管理辦法
- 2025至2030中國(guó)救生衣和救生衣行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢(xún)研究報(bào)告
- 綠化養(yǎng)護(hù)物資管理制度
- 護(hù)理事業(yè)十五五發(fā)展規(guī)劃(2026-2030)
- 2025廣西專(zhuān)業(yè)技術(shù)人員公需科目培訓(xùn)考試答案
- 網(wǎng)絡(luò)故障模擬與處理能力測(cè)試試題及答案
評(píng)論
0/150
提交評(píng)論