軟件測試 課件 單元2 黑盒測試_第1頁
軟件測試 課件 單元2 黑盒測試_第2頁
軟件測試 課件 單元2 黑盒測試_第3頁
軟件測試 課件 單元2 黑盒測試_第4頁
軟件測試 課件 單元2 黑盒測試_第5頁
已閱讀5頁,還剩142頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

單元2黑

盒測試小王同學(xué)通過前面的學(xué)習(xí),對(duì)軟件測試和軟件缺陷都有了一定的了解,但是他有一個(gè)疑問,在軟件工程初期,源代碼還沒有寫的時(shí)候,能夠進(jìn)行軟件測試的相關(guān)工作?黑盒測試可以實(shí)現(xiàn)提前進(jìn)行軟件測試的相關(guān)工作。引例描述黑盒測試是一種常見且常用的軟件測試方法,它將被測軟件看成是一個(gè)無法打開的黑盒,主要根據(jù)功能需求設(shè)計(jì)測試用例來完成軟件的測試,又叫做功能測試。黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對(duì)軟件界面和軟件功能進(jìn)行測試。黑盒測試用例設(shè)計(jì)方法主要有等價(jià)類劃分、邊界值、判定表驅(qū)動(dòng)、因果通、正交實(shí)驗(yàn)設(shè)計(jì)等。引例描述黑盒內(nèi)部實(shí)現(xiàn)不可見輸入輸出測試用例引例描述目錄等價(jià)類測試任務(wù)一邊界值測試任務(wù)二判定表測試任務(wù)三因果圖測試任務(wù)四正交實(shí)驗(yàn)法任務(wù)五任務(wù)一等價(jià)類測試●本任務(wù)通過觀察某信息系統(tǒng)注冊(cè)界面的功能,分析各項(xiàng)功能的輸入條件,劃分等價(jià)類,建立等價(jià)類表,設(shè)計(jì)測試用例覆蓋等價(jià)類,完成對(duì)某信息系統(tǒng)注冊(cè)界面的功能測試。●等價(jià)類劃分是一種典型的黑盒測試方法,它將程序所有可能的輸入數(shù)據(jù)(有效的和無效的)分成若干個(gè)部分,然后從每個(gè)部分中選取有代表性的數(shù)據(jù)作為測試用例進(jìn)行合理的分類,測試用例由有效等價(jià)類和無效等價(jià)類的代表組成,從而保證測試用例具有完整性和代表性。任務(wù)陳述●從理論上來講,黑盒測試只有對(duì)一個(gè)程序窮舉所有可能的輸入進(jìn)行測試,才能發(fā)現(xiàn)程序中所有的錯(cuò)誤,不僅要測試所有合法的輸入,而且要對(duì)那些不合法但有可能出現(xiàn)的輸入進(jìn)行測試?!窀F舉測試是不可能的,所以必須要提高測試的針對(duì)性,既要測試各種可能的情況,提高測試的完備性,又要避免重復(fù),降低冗余,節(jié)約測試成本。等價(jià)類方法就是這樣一種黑盒測試方法?;顒?dòng)一認(rèn)識(shí)等價(jià)類方法●某工廠要給員工做工裝,服裝廠拿過來樣品請(qǐng)員工們?cè)嚧┛词欠裆恚敲葱璨恍枰總€(gè)員工都去試穿呢?●把員工按照身材分成不同的組,同一組只需要去1個(gè)人試下就可以了,如果這個(gè)員工合身,那么同組其他員工由于身材跟他基本一樣,所以也會(huì)合身。這就是等價(jià)類劃分的思想?;顒?dòng)一認(rèn)識(shí)等價(jià)類方法一、等價(jià)類劃分●劃分等價(jià)類時(shí),將所有可能的輸入數(shù)據(jù),即程序的輸入域,劃分為若干部分,等價(jià)類是指某個(gè)輸入域的子集合,各個(gè)等價(jià)類之間不應(yīng)存在相同的特性,所有等價(jià)類的并集應(yīng)當(dāng)是被劃分集合的全集?;顒?dòng)一認(rèn)識(shí)等價(jià)類方法一、等價(jià)類劃分●從軟件測試的角度來說,由于等價(jià)類中的數(shù)據(jù)具有相同的特性,所以對(duì)于發(fā)現(xiàn)或者揭露程序中的缺陷來說,他們的作用是等價(jià)的,或者說效果是相同的,于是等價(jià)類劃分法合理的假定:對(duì)于某個(gè)等價(jià)類而言,只測試其中的某個(gè)代表數(shù)據(jù),就等于對(duì)這一等價(jià)類中所有數(shù)據(jù)的測試?;顒?dòng)一認(rèn)識(shí)等價(jià)類方法一、等價(jià)類劃分●等價(jià)類的劃分有以下兩種不同的情況。(1)有效等價(jià)類:是指對(duì)程序的規(guī)格說明而言,合理且有意義的輸入數(shù)據(jù)構(gòu)成的集合。(2)無效等價(jià)類:是指對(duì)程序的規(guī)格說明而言,不合理的、無意義的輸入數(shù)據(jù)構(gòu)成的集合?;顒?dòng)一認(rèn)識(shí)等價(jià)類方法一、等價(jià)類劃分

符號(hào)函數(shù)f(x),輸入x,輸出y,如果x>0,則y=1;如果x=0,則y=0;如果x<0則y=-1。

x>0→y=1

x=0→y=0

x<0→y=-1

對(duì)x劃分等價(jià)類,x的有效等價(jià)類有三類,分別是x>0、x=0和x<0。而x的無效等價(jià)類可以歸為一類,即所有不能和0進(jìn)行大小比較的數(shù)據(jù)。活動(dòng)一認(rèn)識(shí)等價(jià)類方法一、等價(jià)類劃分等價(jià)類劃分的原則有以下6點(diǎn):(1)在輸入條件規(guī)定了取值范圍或者值的個(gè)數(shù)的情況下,可以確立一個(gè)有效等價(jià)類(在范圍之內(nèi)件的等價(jià)類)和兩個(gè)無效等價(jià)類(有效范圍的兩側(cè))。例如,輸入值是學(xué)生成績,范圍是0~100,則有效等價(jià)類為0≤成績≤100,無效等價(jià)類為成績<0、成績>100。(2)在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可確立一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類?;顒?dòng)一認(rèn)識(shí)等價(jià)類方法一、等價(jià)類劃分等價(jià)類劃分的原則有以下6點(diǎn):(3)在輸入條件是一個(gè)布爾量的情況下,可確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。(4)在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個(gè)),并且程序要對(duì)每個(gè)輸入值分別處理的情況下,可確立n個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。例如,輸入條件說明學(xué)歷可為專科、本科、碩士、博士4種之一,則分別取這4種值作為4個(gè)有效等價(jià)類,另外把這4種學(xué)歷之外的任何學(xué)歷作為無效等價(jià)類?;顒?dòng)一認(rèn)識(shí)等價(jià)類方法一、等價(jià)類劃分等價(jià)類劃分的原則有以下6點(diǎn):(5)在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則)。(6)在確知已劃分的等價(jià)類中各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價(jià)類進(jìn)一步劃分為更小的等價(jià)類。活動(dòng)一認(rèn)識(shí)等價(jià)類方法一、等價(jià)類劃分如果有多個(gè)輸入條件,并且各個(gè)條件之間存在關(guān)聯(lián),那么僅僅覆蓋所有的等價(jià)類還不夠,還需要考慮等價(jià)類之間的組合。組合可分為完全組合和部分組合兩種,如果輸入條件比較多,并且每個(gè)輸入條件的等價(jià)類也比較多,那么總的完全組合數(shù)將非常大,此時(shí)可以采用部分組合?;顒?dòng)一認(rèn)識(shí)等價(jià)類方法二、等價(jià)類的組合在有多個(gè)輸入的情形時(shí),根據(jù)對(duì)等價(jià)類的覆蓋程度可分為以下兩種?!と踅M合形式:測試用例僅需滿足對(duì)有效等價(jià)類的完全覆蓋?!?qiáng)組合形式:測試用例不僅應(yīng)滿足對(duì)有效等價(jià)類的完全覆蓋,而且應(yīng)覆蓋所有的等價(jià)類組合?;顒?dòng)一認(rèn)識(shí)等價(jià)類方法二、等價(jià)類的組合根據(jù)是否對(duì)無效數(shù)據(jù)進(jìn)行檢測,可以將等價(jià)類測試分為以下兩種?!ひ话愕葍r(jià)類測試:只考慮有效等價(jià)類?!そ训葍r(jià)類測試:考慮有效、無效等價(jià)類。將以上兩種加以組合,可以得到以下幾種測試類?!と跻话愕葍r(jià)類測試。·強(qiáng)一般等價(jià)類測試。·弱健壯等價(jià)類測試?!?qiáng)健壯等價(jià)類測試?;顒?dòng)一認(rèn)識(shí)等價(jià)類方法二、等價(jià)類的組合假設(shè),F(xiàn)為一個(gè)程序,且輸入變量x1和x2的邊界以及邊界內(nèi)的區(qū)間:a≤x1≤d,區(qū)間為[a,b),[b,c),[c,d]e≤x2≤g,區(qū)間為[e,f],[f,g]其中,方括號(hào)和圓括號(hào)分別表示閉區(qū)間和開區(qū)間的端點(diǎn)。因此,變量x1和x2的等價(jià)類分別如下。x1的有效等價(jià)類:[a,b],[b,c],[c,d]。x1的無效等價(jià)類:(-∞,a),(d,+∞)。x2的有效等價(jià)類:[e,f],[f,g]。x2的無效等價(jià)類:(-∞,e),(g,+∞).活動(dòng)一認(rèn)識(shí)等價(jià)類方法二、等價(jià)類的組合以上劃分如圖表示,其中深色矩形內(nèi)部為有效輸入?yún)^(qū),外部為無效輸入?yún)^(qū)。每一個(gè)小格子表示一種x1,x2的組合情形?;顒?dòng)一認(rèn)識(shí)等價(jià)類方法二、等價(jià)類的組合1.弱一般等價(jià)類測試“一般”表示只考慮有效等價(jià)類,“弱”表示測試用例只需覆蓋兩個(gè)輸入的所有有效等價(jià)類即可,無須考慮它們之間的組合情況。因此,最少只需3個(gè)測試用例即可以滿足弱一般等價(jià)類測試的要求。如圖所示,選取3個(gè)(P1,P2,P3)即可,其中P1覆蓋了[a,b)、[e,f),P2覆蓋了[b,c)、[f,g],P3覆蓋了[c,d]、[e,f)。當(dāng)然,選取方式可以有多種。

活動(dòng)一認(rèn)識(shí)等價(jià)類方法二、等價(jià)類的組合2.強(qiáng)一般等價(jià)類測試“一般”表示只考慮有效等價(jià)類;“強(qiáng)”表示測試用例需覆蓋兩個(gè)輸入的所有有效等價(jià)類的可能組合。x1有3個(gè)有效等價(jià)類,x2有2個(gè)有效等價(jià)類,因此最少需要6個(gè)測試用例才可以滿足強(qiáng)一般等價(jià)類測試的要求,如圖所示?;顒?dòng)一認(rèn)識(shí)等價(jià)類方法二、等價(jià)類的組合3.弱健壯等價(jià)類測試“健壯”表示不僅考慮有效等價(jià)類,還要考慮無效等價(jià)類;“弱”表示測試用例只需覆蓋兩個(gè)輸入的所有等價(jià)類即可,無須考慮它們之間的組合情況。因此,在弱一般等價(jià)類測試用例的基礎(chǔ)上,增加4個(gè)針對(duì)無效等價(jià)類的測試用例方能滿足弱健壯等價(jià)類測試的要求,如圖所示。注意,在編寫測試用例時(shí),一個(gè)測試用例只能覆蓋一個(gè)無效等價(jià)類。

活動(dòng)一認(rèn)識(shí)等價(jià)類方法二、等價(jià)類的組合4.強(qiáng)健壯等價(jià)類測試“健壯”表示不僅考慮有效等價(jià)類還要考慮無效等價(jià)類,“強(qiáng)”表示測試用例需覆蓋兩個(gè)輸入的所有等價(jià)類的可能組合。x1有5個(gè)有效等價(jià)類,x2有4個(gè)有效等價(jià)類,因此最少需要20個(gè)測試用例可以滿足強(qiáng)健壯等價(jià)類測試的要求,如圖所示。

活動(dòng)一認(rèn)識(shí)等價(jià)類方法二、等價(jià)類的組合通常情況下,在測試過程中,只要采用弱健壯測試即可。但是在實(shí)際測試中,應(yīng)當(dāng)分析待測程序的具體情況,選用合適的測試種類。等價(jià)類設(shè)計(jì)測試用例的步驟如下。①劃分等價(jià)類,形成等價(jià)類表,為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一編號(hào)。②設(shè)計(jì)一個(gè)新的測試用例,使它能夠盡量覆蓋尚未覆蓋的有效等價(jià)類。重復(fù)這個(gè)步驟,直到所有有效等價(jià)類均被測試用例所覆蓋。③設(shè)計(jì)一個(gè)新的測試用例,使它僅覆蓋一個(gè)尚未覆蓋的無效等價(jià)類。重復(fù)這一步驟,直到所有無效等價(jià)類均被測試用例所覆蓋?;顒?dòng)二等價(jià)類測試用例設(shè)計(jì)一、等價(jià)類設(shè)計(jì)測試用例的步驟這里規(guī)定每次只覆蓋一個(gè)無效等價(jià)類,是因?yàn)槿粲靡粋€(gè)測試用例檢測多個(gè)無效等價(jià)類,那么某些無效等價(jià)類可能永遠(yuǎn)不會(huì)被檢測到,因?yàn)榈谝粋€(gè)無效等價(jià)類測試可能會(huì)屏蔽或終止其他無效等價(jià)類測試的執(zhí)行。例如,軟件規(guī)格說明規(guī)定“每類科技參考書50~100冊(cè)”,若一個(gè)測試用例為“文藝書籍10冊(cè)”,在測試中,很可能檢測出書的類型錯(cuò)誤,而忽略了書的冊(cè)數(shù)錯(cuò)誤。此外,在設(shè)計(jì)測試用例時(shí),應(yīng)意識(shí)到:預(yù)期結(jié)果也是測試用例的一個(gè)必要組成部分,對(duì)采用無效輸入的測試也是如此。一、等價(jià)類設(shè)計(jì)測試用例的步驟活動(dòng)二等價(jià)類測試用例設(shè)計(jì)三角形問題是測試文獻(xiàn)中使用很廣泛的一個(gè)例子。輸入3個(gè)整數(shù)a、b和c分別作為三角形的3條邊,通過程序判斷這3條邊的組成情況是等邊三角形、等腰三角形、一般三角形,還是不構(gòu)成三角形。假定3個(gè)輸入a、b和c在1~100范圍內(nèi)取值,三角形問題可以更詳細(xì)地描述為:輸入3個(gè)整數(shù)a、b和c分別作為三角形的3條邊,要求a、b和c必須滿足1≤a≤100,1≤b≤100,a<b+c,b<a+c,c<a+b?;顒?dòng)二等價(jià)類測試用例設(shè)計(jì)二、等價(jià)類應(yīng)用實(shí)例程序輸出是由這3條邊構(gòu)成的三角形類型:等邊三角形、等腰三角形、一般三角形或非三角形。如果輸入值不滿足前3個(gè)條件中的任何一個(gè),程序?qū)⒔o出相應(yīng)的提示信息:“請(qǐng)輸入1~100的整數(shù)”。如果a、b和c滿足前3個(gè)條件,則輸出下列4種情況之一:(1)如果不滿足后面3個(gè)條件中的任意一個(gè),則程序輸出為“非三角形”;(2)如果3條邊相等,則程序輸出為“等邊三角形”;(3)如果有且僅有兩條邊相等,則程序輸出為“等腰三角形”;(4)如果3條邊都不相等,則程序輸出為“一般三角形”。

活動(dòng)二等價(jià)類測試用例設(shè)計(jì)二、等價(jià)類應(yīng)用實(shí)例仔細(xì)分析三角形問題,可以得到一個(gè)等價(jià)類表,如表所示,然后根據(jù)這個(gè)表格來設(shè)計(jì)覆蓋上等價(jià)類的測試用例。測試用例Test1=(3,4,5)即可覆蓋有效等價(jià)類1~3活動(dòng)二等價(jià)類測試用例設(shè)計(jì)二、等價(jià)類應(yīng)用實(shí)例有效等價(jià)類編號(hào)無效等價(jià)類編號(hào)整數(shù)1一邊為非整數(shù)兩邊為非整數(shù)三邊均為非整數(shù)4563個(gè)數(shù)2只有一條邊只有兩條邊多于三條邊7891≤a≤1001≤b≤1001≤c≤1003一邊為0兩邊為0三邊為0101112一邊<0兩邊<0三邊<0131415一邊>100兩邊>100三邊>100161718覆蓋無效等價(jià)類的測試用例如表所示

活動(dòng)二等價(jià)類測試用例設(shè)計(jì)二、等價(jià)類應(yīng)用實(shí)例測試用例輸入a,b,c預(yù)期輸出覆蓋等價(jià)類Test21.5,2,3提示“請(qǐng)輸入1~100的整數(shù)”4Test31.5,2.5,3提示“請(qǐng)輸入1~100的整數(shù)”5Test41.5,2.5,3.5提示“請(qǐng)輸入1~100的整數(shù)”6Test53提示“請(qǐng)輸入3條邊長”7Test64,5提示“請(qǐng)輸入3條邊長”8Test73,4,5,6提示“請(qǐng)輸入3條邊長”9Test80,2,2提示“邊長不能為0”10Test90,0,2提示“邊長不能為0”11Test100,0,0提示“邊長不能為0”12Test11-1,2,2提示“邊長不能為負(fù)”13Test12-1,-1,2提示“邊長不能為負(fù)”14Test13-1,-1,-1提示“邊長不能為負(fù)”15Test14101,5,6提示“請(qǐng)輸入1~100的整數(shù)”16Test15101,102,7提示“請(qǐng)輸入1~100的整數(shù)”17Test16101,102,103提示“請(qǐng)輸入1~100的整數(shù)”18在多數(shù)情況下,可以從被測程序的輸入域劃分等價(jià)類,但也可以從被測程序的輸出域劃分等價(jià)類。三角形問題可能有4中輸出:等邊三角形、等腰三角形、一般三角形或非三角形。其輸出域等價(jià)類可以劃分為:(1)R1={<a,b,c>:邊為a,b,c的等邊三角形}(2)R2={<a,b,c>:邊為a,b,c的等腰三角形}(3)R3={<a,b,c>:邊為a,b,c的一般三角形}(4)R4={<a,b,c>:邊為a,b,c的非三角形}

活動(dòng)二等價(jià)類測試用例設(shè)計(jì)二、等價(jià)類應(yīng)用實(shí)例使用等價(jià)類方法設(shè)計(jì)某信息系統(tǒng)注冊(cè)界面的測試用例。在各種輸入條件下,測試程序的注冊(cè)界面的功能。其中賬號(hào)的規(guī)則如下:(1)賬號(hào)長度為8~12位(含8位和12位);(2)賬號(hào)由字符(a~z、A~Z)和數(shù)字(0~9)組成;(3)不能為空、不能包含空格和特殊字符。密碼的規(guī)則如下:(1)賬號(hào)長度為6~8位(含6位和8位);(2)賬號(hào)由字符(a~z、A~Z)和數(shù)字(0~9)組成;(3)不能為空、不能包含空格和特殊字符。任務(wù)實(shí)施注冊(cè)功能是系統(tǒng)中的常見功能之一,設(shè)計(jì)等價(jià)類的時(shí)候,可以從長度、非法字符、類型、空值等方面進(jìn)行考慮,這里我們以賬號(hào)、密碼和確認(rèn)密碼為例,將三個(gè)條件作為獨(dú)立的輸入條件進(jìn)行測試用例設(shè)計(jì)。任務(wù)實(shí)施序號(hào)輸入條件有效等價(jià)類編號(hào)無效等價(jià)類編號(hào)1賬號(hào)正確的賬號(hào)1長度小于84長度大于125包含非法字符6賬號(hào)為空7賬號(hào)已經(jīng)存在82密碼正確的密碼2長度小于69長度大于810包含非法字符11密碼為空123確認(rèn)密碼與密碼一致3賬號(hào)已經(jīng)存在13(1)劃分某信息系統(tǒng)注冊(cè)界面等價(jià)類如右表所示。(2)設(shè)計(jì)測試用例如右表所示用例編號(hào)輸入數(shù)據(jù)預(yù)期輸出覆蓋等價(jià)類賬號(hào)密碼確認(rèn)密碼001Cinderellal12345671234567成功注冊(cè)1,2,3002Lee12345671234567賬號(hào)長度太短2,3,4003Cinderellalen12345671234567賬號(hào)長度太長2,3,5004Miechel#12345671234567賬號(hào)包含非法字符2,3,6005(無輸入)12345671234567賬號(hào)不能為空2,3,7006Cinderellal12345671234567賬號(hào)已經(jīng)存在2,3,8007Cinderellal1234512345密碼長度太短1,3,9008Cinderellal123456789123456789密碼長度太長1,3,10009Cinderellal123456#123456#密碼包含非法字符1,3,11010Cinderellal(無輸入)(無輸入)密碼不能為空1,3,12011Cinderellal1234561234567兩次密碼不一致1,3,13任務(wù)實(shí)施任務(wù)二邊界值測試●本任務(wù)通過分析某程序的“日期檢查功能”的需求規(guī)格說明,分析各輸入條件的邊界值情況,結(jié)合所學(xué)等價(jià)類思想,設(shè)計(jì)基于邊界值的測試用例,完成對(duì)某程序的“日期檢查功能”的測試?!翊罅康能浖y試實(shí)踐表明,故障往往出現(xiàn)在定義域的邊界值上,而不是在其內(nèi)部。如果針對(duì)各種邊界情況設(shè)計(jì)測試用例,往往可以發(fā)現(xiàn)更多的錯(cuò)誤。邊界值測試法就是對(duì)輸入或輸出數(shù)據(jù)的邊界值進(jìn)行測試的一種黑盒測試方法。任務(wù)陳述活動(dòng)一認(rèn)識(shí)邊界值方法1.邊界值測試原理邊界是測試用例的一些特殊情況。對(duì)于程序來說,一般情況下,輸入/輸入范圍的中間數(shù)值都是運(yùn)行正確的,大量的錯(cuò)誤會(huì)出現(xiàn)在范圍邊界。例如,當(dāng)進(jìn)行三角形判斷的測試時(shí),要求輸入3條邊長a、b和c,而判斷邊長的一個(gè)條件是a+b>c>c。但是,如果將一個(gè)“>”錯(cuò)寫成“≥”時(shí),那么就無法構(gòu)成三角形。問題恰恰出現(xiàn)在那些容易被忽略的邊界上。一、邊界值測試原理活動(dòng)一認(rèn)識(shí)邊界值方法1.邊界值測試原理邊界值分析法的基本思想是在等價(jià)類的極端情況下考慮軟件測試工作,因?yàn)殄e(cuò)誤很容易發(fā)生在輸入值的關(guān)鍵點(diǎn),即從合法變?yōu)榉欠ǖ哪且稽c(diǎn)。由此也可以看出,邊界值分析其實(shí)是與等價(jià)類劃分密切相關(guān)的。在等價(jià)類劃分的過程中,無論是對(duì)等價(jià)類的輸入還是輸出,都會(huì)產(chǎn)生很多邊界情況。因此,選擇正好等于、略大于或者略小于等價(jià)類邊界的值作為測試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值作為測試數(shù)據(jù)。一、邊界值測試原理活動(dòng)一認(rèn)識(shí)邊界值方法1.邊界值測試原理邊界值分析法設(shè)計(jì)測試用例時(shí),首先需要確定邊界情況。如果程序的邊界比較復(fù)雜,那么想要找出合適的邊界,還需要耐心地分析程序的輸出邊界、輸入邊界,這需要在測試的過程中進(jìn)行仔細(xì)分析,找出有趣的或是可能產(chǎn)生故障的邊界情況。一、邊界值測試原理活動(dòng)一認(rèn)識(shí)邊界值方法2.邊界條件邊界條件即輸入定義域或輸出值域的邊界,而不是內(nèi)部。需要注意的是,邊界值不僅可以是數(shù)據(jù)取值的邊界,還可以是數(shù)據(jù)的個(gè)數(shù)、文件的個(gè)數(shù)、記錄的條數(shù)等。通常情況下,軟件測試可能針對(duì)的邊界有多種類型,如數(shù)字、字符、位置、質(zhì)量、大小、速度、方位、尺寸、空間等。相應(yīng)地,邊界值對(duì)應(yīng)的情況可能是最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最長、空/滿等情況。一、邊界值測試原理活動(dòng)一認(rèn)識(shí)邊界值方法2.邊界條件

如:(1)數(shù)據(jù)取值范圍的最大值、最小值。(2)屏幕上光標(biāo)在最左上、最右下位置。(3)報(bào)表的第一行、最后一行。(4)數(shù)組元素的第一個(gè)、最后一個(gè)。(5)循環(huán)一次、循環(huán)最大次。(6)數(shù)據(jù)表中的第一條記錄、最后一條記錄。(7)字符串的第一個(gè)符號(hào)、最后一個(gè)符號(hào)。一、邊界值測試原理活動(dòng)一認(rèn)識(shí)邊界值方法2.邊界條件除邊界端點(diǎn)外,還應(yīng)考慮略大于和略小于邊界端點(diǎn)的情況,如下所示。(1)第一個(gè)/最后一個(gè),第一個(gè)-1/最后一個(gè)+1。(2)開始/結(jié)束,開始-1/結(jié)束+1。(3)空的/滿的,比空的少點(diǎn)/比滿的多些。(4)最短的/最長的,稍微短點(diǎn)/稍微長點(diǎn)。(5)最慢的/最快的,稍微慢點(diǎn)/稍微快點(diǎn)。(6)最早的/最晚的,稍微早點(diǎn)/稍微晚點(diǎn)。(7)最大的/最小的,最大的+1/最小的-1。一、邊界值測試原理活動(dòng)一認(rèn)識(shí)邊界值方法3.次邊界條件在多數(shù)情況下,邊界值條件是基于應(yīng)用程序的功能設(shè)計(jì)而需要考慮的因素,可以從軟件的規(guī)格說明或常識(shí)中得到,也是最終用戶很容易發(fā)現(xiàn)問題的。然而,在測試用例設(shè)計(jì)的過程中,某些邊界值條件不需要呈現(xiàn)給用戶,或者說用戶是很難注意到的,但確實(shí)屬于檢驗(yàn)范疇內(nèi)的邊界條件,那么軟件測試仍有必要對(duì)這些邊界條件進(jìn)行檢查,這樣的邊界條件稱為次邊界條件。一、邊界值測試原理活動(dòng)一認(rèn)識(shí)邊界值方法3.次邊界條件尋找次邊界條件比較困難,雖然不要求軟件測試人員成為程序員或者具有閱讀源代碼的能力,但要求測試人員能大體了解軟件的工作方式。以ASCII碼表為例,ASCII碼表并不是一個(gè)結(jié)構(gòu)良好的連續(xù)表,自然數(shù)0~9對(duì)應(yīng)ASCII碼表中的48~57;斜杠字符(/)在數(shù)字0的前面,而冒號(hào)字符(:)在數(shù)字9的后面;大寫字母A~Z對(duì)應(yīng)的ASCII值是65~90,小寫字母對(duì)應(yīng)的ASCII值是97~122。這些情況都表示次邊界條件。如果對(duì)文本輸入或文本轉(zhuǎn)換軟件進(jìn)行測試,在考慮數(shù)據(jù)區(qū)間包含哪些值時(shí),最好參考一下ASCII表。一、邊界值測試原理活動(dòng)一認(rèn)識(shí)邊界值方法3.次邊界條件例如,如果測試的文本框只接受用戶輸入字符A~Z和,那么就應(yīng)該在非法區(qū)間中,檢測ASCII表中位于這些字符前后的值——@、’、[、和{。在實(shí)際的測試用例設(shè)計(jì)中,需要將基本的軟件設(shè)計(jì)要求和程序定義的要求結(jié)合起來,即結(jié)合基本邊界值條件和內(nèi)部邊界值條件來設(shè)計(jì)有效的測試用例。一、邊界值測試原理活動(dòng)一認(rèn)識(shí)邊界值方法對(duì)邊界值設(shè)計(jì)測試用例,應(yīng)當(dāng)遵循以下幾條原則。(1)如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界值以及剛剛超過這個(gè)范圍邊界的值作為測試輸入數(shù)據(jù)。(2)如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù)、最小個(gè)數(shù)和比最大個(gè)數(shù)多1個(gè)、比最小個(gè)數(shù)少1個(gè)的數(shù)作為測試數(shù)據(jù)。(3)根據(jù)程序規(guī)格說明的每個(gè)輸出條件,使用上述第1條原則。(4)根據(jù)程序規(guī)格說明的每個(gè)輸出條件,使用上述第2條原則。二、邊界值分析原則活動(dòng)一認(rèn)識(shí)邊界值方法(5)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合(如有序表、順序文件等),則應(yīng)選取集合中的第一個(gè)和最后一個(gè)元素作為測試用例。(6)如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例。(7)分析程序規(guī)格說明,找出其他可能的邊界條件。二、邊界值分析原則活動(dòng)二邊界值測試用例設(shè)計(jì)1.一般邊界值僅考慮單個(gè)變量在有效取值區(qū)間上的邊界值,包括最小值、略高于最小值、略低于最大值和最大值。如果被測變量個(gè)數(shù)為n,則總的邊界值有4n個(gè)。設(shè)計(jì)測試用例時(shí)每次只覆蓋一個(gè)變量的邊界值,其他變量應(yīng)當(dāng)用正常值,所以可以為每個(gè)變量再選取一個(gè)正常值,這樣的話邊界值和等價(jià)類劃分相結(jié)合,總的測試用例個(gè)數(shù)為4n+1個(gè)。一、邊界值的組合活動(dòng)二邊界值測試用例設(shè)計(jì)1.一般邊界值例如,程序F有兩個(gè)輸入變量x1(a≤x1≤d)和x2(e≤x2≤g),則針對(duì)(x1,x2)的一般邊界值測試用例形式如下。{<nom,min>,<nom,min+>,<nom,nom><nom,max>,<nom,max->,<min,nom><min+,nom>,<max,nom>,<max-,nom>}其中,nom表示正常值,min表示最小值,max表示最大值,min+表示略大于最小值,max-表示略小于最大值??偟臏y試用例個(gè)數(shù)為4n+1=4x2+1=9。一、邊界值的組合活動(dòng)二邊界值測試用例設(shè)計(jì)

一、邊界值的組合活動(dòng)二邊界值測試用例設(shè)計(jì)3.健壯邊界值同時(shí)考慮單個(gè)變量在有效區(qū)間和無效區(qū)間上的邊界值,除選取最小值、略高于最小值、正常值、略低于最大值和最大值作為邊界值外,還要選取略超過最大值及略小于最小值的值。如果被測變量個(gè)數(shù)為n,則測試用例個(gè)數(shù)為6n+1。一、邊界值的組合活動(dòng)二邊界值測試用例設(shè)計(jì)

一、邊界值的組合活動(dòng)二邊界值測試用例設(shè)計(jì)一、邊界值的組合一般邊界值一般最壞情況邊界值活動(dòng)二邊界值測試用例設(shè)計(jì)一、邊界值的組合一般邊界值健壯最壞情況邊界值活動(dòng)二邊界值測試用例設(shè)計(jì)多變量同時(shí)取邊界值看上去測試更徹底更完善,但花費(fèi)的代價(jià)確實(shí)不小。例如,當(dāng)n=3時(shí),實(shí)現(xiàn)健壯邊界值覆蓋的測試用例個(gè)數(shù)為6n+1=6x3+1=19,而實(shí)現(xiàn)健壯最壞情況邊界值覆蓋的測試用例個(gè)數(shù)為==343后者約為前者的18倍。當(dāng)各個(gè)變量之間相對(duì)獨(dú)立時(shí),僅考慮使用一個(gè)變量取邊界值,另外一個(gè)變量取正常值就可以了。這樣既可以達(dá)到應(yīng)有的測試效果,又可以節(jié)約大量的測試成本。一、邊界值的組合活動(dòng)二邊界值測試用例設(shè)計(jì)某品牌牛奶銷售公司指派銷售員銷售各種牛奶,其中瓶裝高端牛奶15/瓶,罐裝普通牛奶5元/罐,袋裝普通牛奶2.5元/袋。對(duì)于每個(gè)銷售員,高端罐裝牛奶每月的最高供應(yīng)量為5000瓶,罐裝牛奶為15000罐,袋裝牛奶30000袋,各銷售員每月至少需售出高端罐裝牛奶50瓶,罐裝牛奶150罐,袋裝牛奶300袋。每到月末時(shí),各銷售員向牛奶銷售公司上報(bào)他所在區(qū)域的銷售業(yè)績,以供牛奶銷售公司根據(jù)其銷售額計(jì)算該銷售員的傭金(提成),并作為獎(jiǎng)金發(fā)放,計(jì)算方法如下?!?萬元(含)以下,4%?!?萬元(不含)到3萬元(含),3%。·3萬元(不含)以上,1%二、邊界值應(yīng)用實(shí)例活動(dòng)二邊界值測試用例設(shè)計(jì)首先,從輸入角度分析該問題。該問題的輸入變量有3個(gè),其對(duì)應(yīng)的等價(jià)類劃分如下。·瓶裝牛奶瓶數(shù),有效等價(jià)類[50,5000]?!す扪b牛奶罐數(shù),有效等價(jià)類[150,15000]?!ごb牛奶袋數(shù),有效等價(jià)類[300,30000]。按照邊界值取值方法,對(duì)每個(gè)輸入變量分別取7個(gè)值min-、min、min+、nom、max-、max和max+,具體如下?!て垦b牛奶瓶數(shù),取值{49,50,51,2500,4999,5000,5001}?!す扪b牛奶罐數(shù),取值{149,150,151,7500,14999,15000,15001}?!ごb牛奶袋數(shù),取值{299,300,301,15000,29999,30000,30001}。二、邊界值應(yīng)用實(shí)例

根據(jù)邊界值組合測試用例規(guī)則,保留其中一個(gè)變量,讓其余變量取正常值,共可以得到6x3+1=19個(gè)測試用例。測試用例瓶裝牛奶罐裝牛奶袋裝牛奶銷售額預(yù)期輸出Test14975001500075000輸入非法Test25075001500075750傭金:757.5Test35175001500075765傭金:757.65Test4250075001500090000傭金:900Test54999750015000149985傭金:1499.85Test65000750015000150000傭金:1500Test75001750015000150015輸入非法Test825001491500075745輸入非法Test925001501500075750傭金:757.5Test1025001511500075755傭金:757.55Test1125001499915000149995傭金:1499.985Test1225001500015000150000傭金:1500Test1325001500115000150005輸入非法Test142500150029945747.5輸入非法Test152500150030045750傭金:457.5Test162500150030145755傭金:457.55Test17250015002999952497.5傭金:524.975Test182500150030000120000傭金:1200Test192500150030001750005輸入非法活動(dòng)二邊界值測試用例設(shè)計(jì)二、邊界值應(yīng)用實(shí)例活動(dòng)二邊界值測試用例設(shè)計(jì)以上測試用例中可以發(fā)現(xiàn),Test1、Test7、Test8、Test13、Test14、Test19分別驗(yàn)證了程序的健壯性。但是其余測試用例中,銷售額都大于3萬,測試用例存在冗余。測試用例沒有對(duì)小于3萬的銷售額進(jìn)行驗(yàn)證,因此測試存在遺漏。二、邊界值應(yīng)用實(shí)例活動(dòng)二邊界值測試用例設(shè)計(jì)這時(shí)應(yīng)當(dāng)從輸出角度對(duì)該程序進(jìn)行測試。因?yàn)殇N售員每月至少需售出高端罐裝牛奶50瓶,罐裝牛奶150罐,袋裝牛奶300袋,此時(shí)銷售額為0.225萬元。每月最多可售出高端罐裝牛奶5000瓶,罐裝牛奶15000罐,袋裝牛奶30000袋,此時(shí)銷售額為22.5萬元。銷售額等價(jià)類劃分為:[0.225,1]、(1,3]、(3,22.5]對(duì)此等價(jià)類分別取邊界值為:{略小于0.225,0.225,略大于0.225,0.6,略小于1,1,略大于1,2.5,略小于3,3,略大于3,12.75,略小于22.5,22.5,略大于22.5}二、邊界值應(yīng)用實(shí)例活動(dòng)二邊界值測試用例設(shè)計(jì)

測試用例如表所示。二、邊界值應(yīng)用實(shí)例測試用例瓶裝牛奶罐裝牛奶袋裝牛奶銷售額預(yù)期輸出Test1501502992247.5輸入非法Test2501503002250傭金:90Test3501503012255傭金:90.2Test45015018006000傭金:120Test510030027999997.5傭金:399.9Test6100300280010000傭金:400Test7100300280110002.5傭金:300.075Test8200400800025000傭金:750Test96002000439829995傭金:899.85Test106002000440030000傭金:900Test116002000440130002.5傭金:300.025Test122500750021000127500傭金:1275Test1350001500029999224997.5傭金:2249.75Test1450001500030000225000傭金:2250Test1550001500030001225002.5輸入非法某程序具有如下功能:文本框要求輸入日期信息,日期限定在1990年1月~2049年12月,并規(guī)定日期由6位數(shù)字字符組成,前4位表示年,后2位表示月;程序需對(duì)輸入的日期有效性進(jìn)行校驗(yàn)。用等價(jià)類劃分方法和邊界值分析法為該程序的“日期檢查功能”設(shè)計(jì)測試用例。程序需求規(guī)格說明要求輸入6個(gè)數(shù)字字符yyyynn;參照等價(jià)類劃分法,可以劃分為一個(gè)有效等價(jià)類和三個(gè)無效等價(jià)類。任務(wù)實(shí)施任務(wù)實(shí)施輸入等價(jià)類有效等價(jià)類編號(hào)無效等價(jià)類編號(hào)日期的類型和長度輸入6個(gè)數(shù)字字符1輸入6個(gè)字符,存在非數(shù)字的情況2輸入少于6個(gè)數(shù)字字符3輸入多于6個(gè)數(shù)字字符4年份范圍1990~20495小于19906大于20497月份范圍0~128小于019大于1210按照邊界值取值方法,可以取以下邊界值情況:月份:{00、01、02、06、11、12、13}年份:{1989、1990、1991、2020、2048、2049、2050}設(shè)計(jì)測試用例如下:任務(wù)實(shí)施任務(wù)實(shí)施序號(hào)測試輸入預(yù)期輸出11989.06提示“請(qǐng)輸入正確日期”21990.06提示“日期正確”31991.06提示“日期正確”42020.06提示“日期正確”52048.06提示“日期正確”62049.06提示“日期正確”72050.06提示“請(qǐng)輸入正確日期”82020.00提示“請(qǐng)輸入正確日期”82020.01提示“日期正確”92020.11提示“日期正確”102020.12提示“日期正確”112020.13提示“請(qǐng)輸入正確日期”任務(wù)三判定表測試●本任務(wù)通過分析打印機(jī)的打印功能的需求規(guī)格說明,列出所有的條件和動(dòng)作,確定規(guī)則的個(gè)數(shù),填入條件項(xiàng)和動(dòng)作項(xiàng)并簡化判定表,設(shè)計(jì)測試用例,完成對(duì)打印機(jī)打印功能的判定表測試?!竦葍r(jià)類劃分法和邊界值測試法都是著重考慮輸入條件,但沒有考慮輸入條件的各種組合。雖然各種輸入條件可能出錯(cuò)的情況已經(jīng)測試到了,但多個(gè)輸入條件組合起來可能出錯(cuò)的情況卻被忽視了。判定表驅(qū)動(dòng)法重點(diǎn)就是針對(duì)輸入條件的各種組合情況進(jìn)行測試。任務(wù)陳述活動(dòng)一認(rèn)識(shí)判定表在一些數(shù)據(jù)處理問題中,某些操作的實(shí)施依賴于多個(gè)邏輯條件的組合,針對(duì)不同邏輯條件的組合值,分別執(zhí)行不同的操作,判定表很適合處理這類題。判定表也叫決策表,是一種邏輯分析和表達(dá)工具,用于分析和表達(dá)多個(gè)輸入條件在不同的取值組合下,會(huì)分別執(zhí)行哪些不同的操作。一、判定表的構(gòu)成活動(dòng)一認(rèn)識(shí)判定表例如,有一個(gè)“閱讀指南”,它對(duì)讀者提出三個(gè)問題,若讀者的回答是肯定的(判定取真值),標(biāo)以字母“Y”;若回答是否定的(判定取假值),標(biāo)以字母“N”。3個(gè)判定條件,共有8種取值情況。表還為讀者提供了4條建議,但不需要每種情況都實(shí)施。要實(shí)施的建議在相應(yīng)欄內(nèi)標(biāo)以“?”,其他建議欄內(nèi)則什么也不標(biāo)。例如,表中的第3種情況,當(dāng)該者已經(jīng)疲勞,對(duì)內(nèi)容又不感興趣,并且還沒讀懂時(shí),建議讀者去休息。這就是一張判定表,如圖所示。

一、判定表的構(gòu)成活動(dòng)一認(rèn)識(shí)判定表一、判定表的構(gòu)成問題與建議12345678問題C1:是否疲倦YYYYNNNNC2:是否對(duì)內(nèi)容感興趣YYNNYYNNC3:是否感到糊涂YNYNYNYN建議A1:回到本章開頭重讀

A2:繼續(xù)讀下去

A3:跳到下一章去讀

√√A4:停止閱讀并休息√√√√

活動(dòng)一認(rèn)識(shí)判定表

·條件樁:列出了問題的所有條件,除了某些問題對(duì)條件的先后次序有特定的要求外,通常在這里列出的條件其先后次序無關(guān)緊要,可以任意調(diào)換?!l件項(xiàng):針對(duì)條件樁給出的條件列出所有可能的取值。

一、判定表的構(gòu)成活動(dòng)一認(rèn)識(shí)判定表

·動(dòng)作樁:給出了問題規(guī)定的可能采取的操作,這些操作的排列順序一般沒有什么約束,但為了便于閱讀也可令其按適當(dāng)?shù)捻樞蚺帕小!?dòng)作項(xiàng):和條件項(xiàng)緊密相關(guān),指出在條件項(xiàng)的各組取值情況下應(yīng)采取的動(dòng)作。

一、判定表的構(gòu)成活動(dòng)一認(rèn)識(shí)判定表如果C1、C2和C3都為真,則采取動(dòng)作A4。如果C1為假,而C2和C3都為真,則采取動(dòng)作A1。把任何一個(gè)條件組合的特定取值及相應(yīng)要執(zhí)行的動(dòng)作稱為一條規(guī)則,在判定表中貫穿條件項(xiàng)和動(dòng)作項(xiàng)的一列就是一條規(guī)則。顯然,判定表中列出多少組條件取值,就有多少條規(guī)則。根據(jù)判定表設(shè)計(jì)測試用例就不會(huì)遺漏。

一、判定表的構(gòu)成活動(dòng)一認(rèn)識(shí)判定表實(shí)際使用判定表時(shí),常常先將它簡化,簡化是以合并相似規(guī)則為目標(biāo)的。若表中有兩條或多條規(guī)則具有相同的動(dòng)作,并且在條件項(xiàng)之間存在著極為相似的關(guān)系,便可以設(shè)法將其合并。二、判定表的化簡活動(dòng)一認(rèn)識(shí)判定表實(shí)際使用判定表時(shí),常常先將它簡化,簡化是以合并相似規(guī)則為目標(biāo)的。若表中有兩條或多條規(guī)則具有相同的動(dòng)作,并且在條件項(xiàng)之間存在著極為相似的關(guān)系,便可以設(shè)法將其合并。二、判定表的化簡活動(dòng)一認(rèn)識(shí)判定表

例如,中第1、2條規(guī)則的動(dòng)作項(xiàng)一致,條件項(xiàng)中前兩個(gè)條件取值一致,只是第3個(gè)條件取值不同,這一情況表明,前兩個(gè)條件分別取真值和假值時(shí),無論第3個(gè)條件取什么值,都要執(zhí)行同一操作,即要執(zhí)行的動(dòng)作與第3個(gè)條件的取值無關(guān),于是便將這兩個(gè)規(guī)則合并,合并后的第3個(gè)條件項(xiàng)用符號(hào)“—”表示與取值無關(guān)。

二、判定表的化簡問題與建議12345678問題C1:是否疲倦YYYYNNNNC2:是否對(duì)內(nèi)容感興趣YYNNYYNNC3:是否感到糊涂YNYNYNYN建議A1:回到本章開頭重讀

A2:繼續(xù)讀下去

A3:跳到下一章去讀

√√A4:停止閱讀并休息√√√√

活動(dòng)一認(rèn)識(shí)判定表二、判定表的化簡活動(dòng)一認(rèn)識(shí)判定表二、判定表的化簡規(guī)則進(jìn)行合并,可以減少重復(fù)的規(guī)則,相應(yīng)地減少測試用例的設(shè)計(jì),這樣可以大大降低軟件測試的工作量。圖書閱讀指南判定表最初有8條規(guī)則,進(jìn)行合并之后,只剩下5條規(guī)則,簡化后的圖書閱讀指南判定表如表所示

問題與建議12345問題C1:是否疲倦YYNNNC2:是否對(duì)內(nèi)容感興趣YNNYYC3:是否感到糊涂---YN建議A1:回到本章開頭重讀

A2:繼續(xù)讀下去

√A3:跳到下一章去讀

A4:停止閱讀并休息√√

活動(dòng)二判定表測試用例設(shè)計(jì)

一、判定表測試方法活動(dòng)二判定表測試用例設(shè)計(jì)某公司的薪資管理制度如下:員工工資分為年薪制與月薪制兩種,員工的錯(cuò)誤定位包括普通錯(cuò)誤與嚴(yán)重錯(cuò)誤兩種,如果是年薪制的員工,犯普通錯(cuò)誤扣款2%,犯嚴(yán)重錯(cuò)誤扣款4%;如果是月薪制的員工,犯普通錯(cuò)誤扣款4%,犯嚴(yán)重錯(cuò)誤扣款8%。該公司編寫了一款軟件用于員工工資計(jì)算發(fā)放,現(xiàn)在要對(duì)該軟件進(jìn)行測試。二、判定表應(yīng)用實(shí)例活動(dòng)二判定表測試用例設(shè)計(jì)對(duì)公司員工工資管理進(jìn)行分析,可得出員工工資由4個(gè)因素決定:年薪、月薪、普通錯(cuò)誤、嚴(yán)重錯(cuò)誤,其中年薪與月薪不可能并存,但普通錯(cuò)誤與嚴(yán)重錯(cuò)誤可以并存二、判定表應(yīng)用實(shí)例原因年薪c1月薪c2普通錯(cuò)誤c3嚴(yán)重錯(cuò)誤c4結(jié)果未扣款e1扣款2%e2扣款4%e3扣款6%e4扣款4%e5扣款8%e6扣款12%e7而員工最終扣款結(jié)果有7種:未扣款、扣款2%、扣款4%、扣款6%(2%+4%)、扣款4%、扣款8%、扣款12%(4%+8%),由此總結(jié)出該軟件測試的原因與結(jié)果,如表所示?;顒?dòng)二判定表測試用例設(shè)計(jì)

二、判定表應(yīng)用實(shí)例規(guī)則12345678原因c1YYYY

c2

YYYYc3NYNYNYNYc4NNYYNNYY結(jié)果e1√

e2

e3

e4

e5

e6

e7

√活動(dòng)二判定表測試用例設(shè)計(jì)分析該員工工資判定表,并沒有可以合并的規(guī)則,因此在測試時(shí)需要設(shè)計(jì)8個(gè)測試用例。根據(jù)公司的薪資情況可設(shè)計(jì)測試用例,如表所示。二、判定表應(yīng)用實(shí)例測試用例薪資制度薪資/元錯(cuò)誤程度扣款/元Test1年薪制200000無0Test2250000普通5000Test3300000嚴(yán)重12000Test4350000普通+嚴(yán)重21000Test5月薪制8000無0Test610000普通400Test715000嚴(yán)重1200Test88000普通+嚴(yán)重960使用判定表方法對(duì)打印機(jī)對(duì)打印功能設(shè)計(jì)測試用例。打印機(jī)能否打印出正確的內(nèi)容,有多個(gè)影響因素。包括驅(qū)動(dòng)程序、紙張、磨粉等。第一步,列出所有的條件和動(dòng)作。條件樁:①驅(qū)動(dòng)程序是否正確?②是否有紙張?③是否有墨粉?任務(wù)實(shí)施動(dòng)作樁:這里動(dòng)作樁主要有兩種,即打印正確內(nèi)容和各類錯(cuò)誤提示,并且假定:優(yōu)先警告沒有紙張,然后警告沒有墨粉,最后警告驅(qū)動(dòng)程序不對(duì)。①打印內(nèi)容。②提示沒有紙張。③提示沒有墨粉。④提示驅(qū)動(dòng)程序不對(duì)。任務(wù)實(shí)施

任務(wù)實(shí)施選項(xiàng)12345678條件驅(qū)動(dòng)程序是否正確?YYYYNNNN是否有紙張?YYNNYYNN是否有磨粉?YNYNYNYN動(dòng)作打印內(nèi)容√

提示沒有紙張

√√

√√提示沒有磨粉

提示沒有驅(qū)動(dòng)程序

第六步,依據(jù)判定表設(shè)計(jì)測試用例,如表所示。任務(wù)實(shí)施測試用例打印機(jī)情況預(yù)期輸出Test1驅(qū)動(dòng)程序正確、有紙張、有磨粉打印內(nèi)容Test2驅(qū)動(dòng)程序正確、有紙張、無磨粉提示沒有磨粉Test3驅(qū)動(dòng)程序不正確、有紙張、有磨粉提示沒有驅(qū)動(dòng)程序Test4驅(qū)動(dòng)程序正確、無紙張、無磨粉提示沒有紙張任務(wù)四因果圖測試●本任務(wù)介紹因果圖的相關(guān)概念,通過“中國象棋走馬”問題,介紹如何使用因果圖方法設(shè)計(jì)測試用例,包括因果圖的4種符號(hào)和5種約束,以及因果圖設(shè)計(jì)測試用例的步驟?!袢绻跍y試時(shí)必須考慮輸入條件的各種組合,則可能的組合數(shù)目將是天文數(shù)字,因此必須考慮采用一種適合描述多種條件的組合、相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來進(jìn)行測試用例的設(shè)計(jì),這就需要利用因果圖(邏輯模型)。任務(wù)陳述活動(dòng)一認(rèn)識(shí)因果圖因果圖法是一種利用圖解法分析輸入的各種組合情況的測試方法,它考慮了輸入條件的各種組合及輸入條件之間的相互制約關(guān)系,并考慮輸出情況。例如,某一軟件要求輸入地址,具體到市區(qū),如“北京→朝陽區(qū)”“上海→閔行區(qū)”,其中第2個(gè)輸入受到第1個(gè)輸入的約束,輸入的地區(qū)只能在輸入的城市中選擇,否則地址就是無效的。像這樣多個(gè)輸入之間有相互制約關(guān)系,就無法使用等價(jià)類劃分法和邊界值法設(shè)計(jì)測試用例。因果圖法就是為了解決多個(gè)輸入之間的作用關(guān)系而產(chǎn)生的測試用例設(shè)計(jì)方法。一、因果圖活動(dòng)一認(rèn)識(shí)因果圖因果圖中通過使用一些簡單的邏輯符號(hào),用直線來連接左右節(jié)點(diǎn)。其中左節(jié)點(diǎn)表示輸入狀態(tài),就是因果圖的原因;右節(jié)點(diǎn)表示輸出狀態(tài),即為結(jié)果。因果圖中的4種符號(hào)分別表示規(guī)格說明中的4種因果關(guān)系。其中,ci表示原因,通常位于圖左;ei表示結(jié)果,通常位于圖右。ci與ei可以取值0或1,0表示狀態(tài)不出現(xiàn),1表示狀態(tài)出現(xiàn)。一、因果圖活動(dòng)一認(rèn)識(shí)因果圖1.關(guān)系

4種因果關(guān)系說明如下。

(1)恒等:若原因出現(xiàn),則結(jié)果出現(xiàn);若原因不出現(xiàn),則結(jié)果也不出現(xiàn)。若c1為1,則e1也為1。

(2)非(~):若原因出現(xiàn),則結(jié)果不出現(xiàn);若原因不出現(xiàn),則結(jié)果出現(xiàn)。若c1為1,則e1為0。

一、因果圖活動(dòng)一認(rèn)識(shí)因果圖1.關(guān)系

(3)或(∨):若幾個(gè)原因中有一個(gè)出現(xiàn),則結(jié)果出現(xiàn);若幾個(gè)原因都不出現(xiàn),則結(jié)果不出現(xiàn)。C1或c2或c3為1,則e1為1;否則e1為0?;蚩梢杂腥我鈧€(gè)輸入。

(4)與(∧):若幾個(gè)原因都出現(xiàn),結(jié)果才出現(xiàn);若其中有一個(gè)原因不出現(xiàn),則結(jié)果不出現(xiàn)。若c1和c2都為1,則e1為1;否則e1為0。與可以有任意個(gè)輸入。一、因果圖活動(dòng)一認(rèn)識(shí)因果圖一、因果圖活動(dòng)一認(rèn)識(shí)因果圖2.約束各個(gè)輸入條件相互之間還可能存在某種關(guān)系,稱為約束。例如,某些輸入條件不可能同時(shí)出現(xiàn),輸出狀態(tài)之間也往往存在約束。在因果圖中,用特定的符號(hào)標(biāo)明這些約束。

在實(shí)際問題中,如果程序有多個(gè)輸入,那么除了輸入與輸出之間的作用關(guān)系之外,這輸入之間往往也會(huì)存在某些依賴關(guān)系,某些輸入條件本身不能同時(shí)出現(xiàn),某一種輸入可能影響其他輸入。一、因果圖活動(dòng)一認(rèn)識(shí)因果圖2.約束

例如,某一軟件用于統(tǒng)計(jì)體檢信息,在輸入個(gè)人信息時(shí),性別只能輸入男或女這兩種輸入不能同時(shí)存在,而且如果輸入性別為女,那么體檢項(xiàng)就會(huì)受到限制。這些依賴系在軟件測試中稱為“約束”。輸入條件的約束有以下四類。一、因果圖活動(dòng)一認(rèn)識(shí)因果圖(1)E約束(互斥):表示不同時(shí)為1,即a、b、c中至多只有一個(gè)1;(2)I約束(包含):表示至少有一個(gè)1,即a、b、c中不同時(shí)為0;(3)0約束(唯一):表示a、b、c中有且僅有一個(gè)1;(4)R約束(要求):表示若a=1,則b必須為1。即不可能a=1且b=0。

上面這4種都是關(guān)于輸入條件的約束。除了輸入條件,輸出條件也會(huì)相互約束,在因果圖中輸出的約束只有M約束(屏蔽):若結(jié)果a是1,則結(jié)果b強(qiáng)制為0。一、因果圖活動(dòng)一認(rèn)識(shí)因果圖

五種約束如圖所示。一、因果圖活動(dòng)二因果圖測試用例設(shè)計(jì)因果圖法設(shè)計(jì)測試用例的步驟如下。(1)分析軟件規(guī)格說明描述中,哪些是原因,原因即輸入條件或輸入條件的等價(jià)類;哪些是結(jié)果,結(jié)果即操作和輸出。給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識(shí)符。需要注意的是原因和結(jié)果都需要原子化,例如“職稱是工程師的男職工基本工資加100,獎(jiǎng)金加50”。這一軟件規(guī)格說明描述中,原因有兩個(gè):職稱=工程師,性別=男;結(jié)果也是兩個(gè):基本工資=基本工資+100,獎(jiǎng)金=獎(jiǎng)金+50。(2)分析軟件規(guī)格說明描述中的語義,找出原因與結(jié)果之間、原因與原因之間的關(guān)系,并根據(jù)這些關(guān)系,畫出因果圖。一、因果圖設(shè)計(jì)測試用例的步驟活動(dòng)二因果圖測試用例設(shè)計(jì)(3)標(biāo)明約束條件。由于某種限制,有些原因與原因之間、原因與結(jié)果之間的組合情況不可能出現(xiàn),為表明這些特殊情況,應(yīng)在因果圖上使用標(biāo)準(zhǔn)的符號(hào)來標(biāo)記約束條件。(4)把因果圖轉(zhuǎn)換為判定表。(5)根據(jù)判定表設(shè)計(jì)測試用例。一、因果圖設(shè)計(jì)測試用例的步驟活動(dòng)二因果圖測試用例設(shè)計(jì)因果圖法考慮了輸入情況的各種組合以及各種輸入情況之間的相互制約關(guān)系,可以幫助測試人員按照一定的步驟高效率地開發(fā)測試用例。此外,因果圖是由自然語言規(guī)格說明轉(zhuǎn)化成形式語言規(guī)格說明的一種嚴(yán)格方法,它能夠發(fā)現(xiàn)規(guī)格說明書中存在的不完整性和二義性,幫助開發(fā)人員完善產(chǎn)品的規(guī)格說明。一、因果圖設(shè)計(jì)測試用例的步驟活動(dòng)二因果圖測試用例設(shè)計(jì)某軟件規(guī)格說明要求:第一個(gè)字符必須是#或*,第二個(gè)字符必須是一個(gè)數(shù)字,在此情況下進(jìn)行文件的修改。如果第一個(gè)字符不是#或*,則給出信息N;如果第二個(gè)字符不是數(shù)字,則給出信息M。(1)對(duì)程序設(shè)計(jì)要求進(jìn)行分析,分別給出原因和結(jié)果,并對(duì)每一個(gè)原因?qū)?yīng)的結(jié)果都給定一個(gè)標(biāo)識(shí)。二、因果圖應(yīng)用實(shí)例活動(dòng)二因果圖測試用例設(shè)計(jì)原因:·c1:第1個(gè)字符是“?!薄2:第1個(gè)字符是“*”·c3:第2個(gè)字符是一個(gè)數(shù)字結(jié)果:·e1:給出信息“N”·e2:修改文件·e3:給出信息“M”二、因果圖應(yīng)用實(shí)例活動(dòng)二因果圖測試用例設(shè)計(jì)(2)找出原因與原因之間、原因與結(jié)果之間的對(duì)應(yīng)關(guān)系,將其表示成連接各個(gè)原因與各個(gè)結(jié)果之間的“因果圖”。二、因果圖應(yīng)用實(shí)例將得出的原因和結(jié)果進(jìn)行連接,可以得到程序的因果圖,如圖所示。其中編號(hào)為10的中間節(jié)點(diǎn)是導(dǎo)出結(jié)果的進(jìn)一步原因。繪制過程中,發(fā)現(xiàn)原因c1與c2不可能同時(shí)為1,即第一個(gè)字符不可能既是“?!庇质恰埃?,所以在因果圖上加上E約束?;顒?dòng)二因果圖測試用例設(shè)計(jì)(3)將因果圖轉(zhuǎn)換為判定表二、因果圖應(yīng)用實(shí)例選項(xiàng)規(guī)則12345678條件c1:第1個(gè)字符是“?!?1110000c2:第1個(gè)字符是“*”11001100c3:第2個(gè)字符是一個(gè)數(shù)字10101010中間節(jié)點(diǎn)10

111100結(jié)果e1:給出信息“N”

√√e2:修改文件

e3:給出信息“M”

不可能√√

活動(dòng)二因果圖測試用例設(shè)計(jì)(3)根據(jù)判定表設(shè)計(jì)測試用例的輸入數(shù)據(jù)和輸出數(shù)據(jù)。

從表中可以看出,原因c1和c2不可能同時(shí)出現(xiàn),因此在設(shè)計(jì)的測試用例中排除這兩種情況,從而可以得到6個(gè)測試用例,如表所示。二、因果圖應(yīng)用實(shí)例測試用例編號(hào)輸入數(shù)據(jù)預(yù)期輸出規(guī)則1#3修改文件32#A給出信息M43*6修改文件54*B給出信息M65A1給出信息N76GT給出信息N和信息M8“中國象棋中的走馬”問題描述:中國象棋中走馬的實(shí)際情況是,馬走日字形(臨近交叉點(diǎn)無棋子),遇到對(duì)方棋子可以吃掉,遇到本方棋子不能落點(diǎn)到該位置,具體規(guī)則如下:

①如果落點(diǎn)在棋盤外,則不移動(dòng)棋子;②如果落點(diǎn)與起點(diǎn)不構(gòu)成日字形,則不移動(dòng)棋子;③如果落點(diǎn)處有己方棋子,則不移動(dòng)棋子;④如果在落點(diǎn)方向的臨近交叉點(diǎn)有棋子(絆馬腿),則不移動(dòng)棋子;⑤如果不屬于1-4條,且落點(diǎn)處無棋子,則移動(dòng)棋子;⑥如果不屬于1-4條,且落點(diǎn)處為對(duì)方棋子(非老將),則移動(dòng)棋子并出去對(duì)方棋子;⑦如果不屬于1-4條,且落點(diǎn)處為對(duì)方老將,則移動(dòng)棋子并提示戰(zhàn)勝對(duì)方,游戲結(jié)束。任務(wù)實(shí)施1.分析案例說明,列出所有的原因和結(jié)果。根據(jù)走馬規(guī)則,可以分析出一共存在7個(gè)原因和4個(gè)結(jié)果,分別是:原因:·c1:落點(diǎn)在棋盤外?!2:不構(gòu)成日字?!3:落點(diǎn)有自方棋子?!4:落點(diǎn)方向的臨近交叉點(diǎn)有棋子(絆馬腿)?!5:落點(diǎn)處無棋子?!6:落點(diǎn)處為對(duì)方棋子(非老將)。·c7:落點(diǎn)處為對(duì)方老將。任務(wù)實(shí)施1.分析案例說明,列出所有的原因和結(jié)果。結(jié)果共有4個(gè),分別如下。

·e1:不移動(dòng)棋子?!2:移動(dòng)棋子?!3:移動(dòng)棋子并出去對(duì)方棋子?!4:移動(dòng)棋子并提示戰(zhàn)勝對(duì)方,游戲結(jié)束。任務(wù)實(shí)施2.分析原因和結(jié)果的對(duì)應(yīng)關(guān)系,并畫出因果圖。根據(jù)走馬規(guī)則可知,原因不屬于1-4條時(shí)才可以移動(dòng)棋子,故在因果圖中增加中間節(jié)點(diǎn)11,表示可以移動(dòng)棋子必須具備的條件,如圖所示。任務(wù)實(shí)施3.在因果圖上標(biāo)識(shí)原因之間的約束條件。根據(jù)走馬規(guī)則實(shí)際情況可知,原因c5、c6、c7不可能同時(shí)發(fā)生,對(duì)其添加E約束,結(jié)果e1、e2、e3、e4也不可能同時(shí)發(fā)生,對(duì)其添加O約束,完成后的因果圖如圖所示。任務(wù)實(shí)施4.將因果圖轉(zhuǎn)換為判定表。通過中間結(jié)點(diǎn)11,將判定表分成兩部分,簡化判定表如下,表中合并部分表示不可能發(fā)生。任務(wù)實(shí)施序號(hào)12345678910111213141516原因c10101010101010101c20011001100110011c30000111100001111c40000000011111111結(jié)果110000000000000000e11111111011111111用例

序號(hào)17181920212223242526272829303132原因110101010101010101c50011001100110011c60000111100001111c70000000011111111結(jié)果e20

0100

00

e30000100e40000001用例

5.將判定表的每一列取出來作為依據(jù),設(shè)計(jì)好的測試用例見如表所示,表中空余部分表示不可能發(fā)生。假定已方為紅棋,棋譜中10條橫線從上到下分別用小寫字母a、b、c、d、e、f、g、h、i、j表示,9條豎線從左到右分別用數(shù)字1、2、3、4、5、6、7、8、9表示,例如黑炮位置c2。任務(wù)實(shí)施序號(hào)用例己方落點(diǎn)方向的臨近交叉點(diǎn)落點(diǎn)1紅馬c2黑車c1棋盤外2紅馬c2紅馬c2空b13紅馬c2黑車c1棋盤外4紅馬c2黑車b2黑象a35紅馬c2黑車c1棋盤外6紅馬c2黑車b2紅車b17紅馬c2黑車c1棋盤外8紅馬c2黑車b2紅車a19紅馬c2無棋盤外10紅馬c2無黑車b111紅馬c2無棋盤外12紅馬c2無黑車a113紅馬c2無棋盤外14紅馬c2無紅車b115紅馬c2無棋盤外16紅馬c2無紅車a117紅馬c2無棋盤外18

19紅馬c2無棋盤外20紅馬c2無空a121紅馬c2無棋盤外22紅馬c2無黑車a123

24

25紅馬c2無棋盤外26紅馬c2無黑將a527

28

29

30

31

32

任務(wù)五因果圖測試●本任務(wù)介紹正交實(shí)驗(yàn)法的基本概念,通過微信Web頁面運(yùn)行環(huán)境測試問題,介紹如何使用正交實(shí)驗(yàn)法設(shè)計(jì)測試用例,包括正交表的特性、選擇正交表的方法、正交表映射測試用例的方法等?!癞?dāng)使用因果圖來設(shè)計(jì)測試用例時(shí),輸入條件和輸出結(jié)果之間的因果關(guān)系有時(shí)很難從軟件雪球規(guī)格說明中得出,或者很多時(shí)候因果關(guān)系非常復(fù)雜,以致根據(jù)因果圖得到的測試用例數(shù)目多得驚人,給軟件測試帶來沉重的負(fù)擔(dān)。為了合理地降低測試的成本,提高測試的效率,可利用正交實(shí)驗(yàn)法來進(jìn)行測試用例的設(shè)計(jì)。任務(wù)陳述活動(dòng)一認(rèn)識(shí)正交實(shí)驗(yàn)法假設(shè)有一個(gè)網(wǎng)絡(luò)應(yīng)用系統(tǒng),共有100個(gè)功能點(diǎn),現(xiàn)在需要測試用戶在不同的軟件環(huán)境下打開它時(shí),這些功能點(diǎn)能否正常實(shí)現(xiàn)。由于該軟件的用戶可能分布十分廣泛,所以軟件執(zhí)行時(shí)的軟件環(huán)境可能是各種各樣的,具體情況如下。(1)操作系統(tǒng):Windows2016Server、Windows10、RHEL8、CentOS8、Solaris9、Solaris10、MacOSX等。(2)瀏覽器:IE、FireFox、谷歌、QQ瀏覽器、360瀏覽器、獵豹瀏覽器、蘋果等。(3)語言:簡體中文、繁體中文、英文、日文、德文等。一、正交實(shí)驗(yàn)法概述活動(dòng)一認(rèn)識(shí)正交實(shí)驗(yàn)法經(jīng)測算,可能的執(zhí)行環(huán)境要素及其不同版本的數(shù)量為:操作系統(tǒng)15種、瀏覽器20種、語言8種。如果要在上述執(zhí)行環(huán)境要素完全組合的情況下,對(duì)所有功能點(diǎn)進(jìn)行測試,測試工作量將很大,總的測試任務(wù)數(shù)為1515x20x8x100=2400000=240000。要把所有這些情況都測試一遍,工作任務(wù)量太大。為了解決這種因可能的條件組合太多,難以進(jìn)行全面測試的問題,可以采用正交實(shí)驗(yàn)法。正交實(shí)驗(yàn)法,又稱為正交設(shè)計(jì)實(shí)驗(yàn)法,或正交設(shè)計(jì)試驗(yàn)法。一、正交實(shí)驗(yàn)法概述活動(dòng)一認(rèn)識(shí)正交實(shí)驗(yàn)法

正交實(shí)驗(yàn)法應(yīng)用背景為:(1)有多個(gè)因素的取值變化會(huì)影響某個(gè)事件的結(jié)果,現(xiàn)需要通過實(shí)驗(yàn)來驗(yàn)證這種影響;(2)影響因素個(gè)數(shù)比較多,并且每一個(gè)因素又有多種取值,實(shí)驗(yàn)量非常大;

(3)不能對(duì)每一組可能的數(shù)據(jù)都進(jìn)行實(shí)驗(yàn)。一、正交實(shí)驗(yàn)法概述活動(dòng)一認(rèn)識(shí)正交實(shí)驗(yàn)法正交實(shí)驗(yàn)設(shè)計(jì)法(OrthogonalExperimentalDesign)是指從大量的實(shí)驗(yàn)點(diǎn)中挑選出適量的、有代表性的點(diǎn),依據(jù)Glois理論導(dǎo)出“正交表”,從而合理地安排實(shí)驗(yàn)的一種實(shí)驗(yàn)設(shè)計(jì)方法。正交實(shí)驗(yàn)設(shè)計(jì)法是研究多因素多水平的一種實(shí)驗(yàn)方法,生物學(xué)中經(jīng)常會(huì)用這種方法研究植物的生長狀況,一株植物的生長狀況會(huì)受到多種因素的影響,包括種子質(zhì)量等內(nèi)部因素,還包括陽光、空氣、水分、土壤等外部因素。在軟件測試中,如果軟件比較復(fù)雜,也可以利用正交實(shí)驗(yàn)設(shè)計(jì)法設(shè)計(jì)測試用例對(duì)軟件進(jìn)行測試。一、正交實(shí)驗(yàn)法概述活動(dòng)一認(rèn)識(shí)正交實(shí)驗(yàn)法實(shí)驗(yàn)工作者在長期的工作中總結(jié)出一套辦法,創(chuàng)造出正交表。按照正交表來安排實(shí)驗(yàn),既能使實(shí)驗(yàn)分布得很均勻,又能減少實(shí)驗(yàn)次數(shù),而且計(jì)算分析簡單,能夠清晰地闡明實(shí)驗(yàn)條件與結(jié)果之間的關(guān)系。利用正交表來安排實(shí)驗(yàn)及分析實(shí)驗(yàn)結(jié)果,這種方法稱為正交實(shí)驗(yàn)法。一、正交實(shí)驗(yàn)法概述活動(dòng)一認(rèn)識(shí)正交實(shí)驗(yàn)法

二、正交表的構(gòu)成和特性活動(dòng)一認(rèn)識(shí)正交實(shí)驗(yàn)法·行數(shù):正交表中行的數(shù)量,即試驗(yàn)的次數(shù),它直接對(duì)應(yīng)到用正交表測試策略設(shè)計(jì)的測試用例的個(gè)數(shù)?!ひ蛩?cái)?shù):因素也稱因子,是正交表中列的數(shù)量,即最多可安排的因素個(gè)數(shù),它直接對(duì)應(yīng)到用這種技術(shù)設(shè)計(jì)測試用例時(shí)的變量的最大個(gè)數(shù)。·水平數(shù):每個(gè)因素的水平數(shù),任何單個(gè)因素能夠取得的值的最大個(gè)數(shù)。它直接對(duì)應(yīng)到用這種技術(shù)設(shè)計(jì)測試用例時(shí),每個(gè)變量可能取值的個(gè)數(shù)。二、正交表的構(gòu)成和特性活動(dòng)一認(rèn)識(shí)正交實(shí)驗(yàn)法

二、正交表的構(gòu)成和特性活動(dòng)一認(rèn)識(shí)正交實(shí)驗(yàn)法正交試驗(yàn)設(shè)計(jì)是研究多因素多水平的一種設(shè)計(jì)方法,它是根據(jù)正交性從全面試驗(yàn)中挑選出部分有代表性的點(diǎn)進(jìn)行試驗(yàn),這些有代表性的點(diǎn)具備了“均勻分散,齊整可比”的特點(diǎn),正交試驗(yàn)設(shè)計(jì)是一種基于正交表的、高效率、快速、經(jīng)濟(jì)的試驗(yàn)設(shè)計(jì)方法。二、正交表的構(gòu)成和特性活動(dòng)一認(rèn)識(shí)正交實(shí)驗(yàn)法“整齊可比”是指在同一張正交表中,每個(gè)因素的每個(gè)水平出現(xiàn)的次數(shù)是完全相同的。由于在試驗(yàn)中每個(gè)因素的每個(gè)水平與其它因素的每個(gè)水平參與試驗(yàn)的機(jī)率是完全相同的,這就保證在各個(gè)水平中最大程度的排除了其它因素水平的干擾。因而,能最有效地進(jìn)行比較和作出展望,容易找到好的試驗(yàn)條件。二、正交表的構(gòu)成和特性活動(dòng)一認(rèn)識(shí)正交實(shí)驗(yàn)法“均衡分散”是指在同一張正交表中,任意兩列(兩個(gè)因素)的水平搭配(橫向形成的數(shù)字對(duì))是完全相同的。這樣就保證了試驗(yàn)條件均衡地分散在因素水平的完全組合之中,因而具有很強(qiáng)的代表性,容易得到好的試驗(yàn)條件。二、正交表的構(gòu)成和特性活動(dòng)二正交實(shí)驗(yàn)法測試用例設(shè)計(jì)利用正交實(shí)驗(yàn)設(shè)計(jì)法設(shè)計(jì)測試用例時(shí),可以按照如下步驟進(jìn)行。(1)提取功能說明,構(gòu)造因素狀態(tài)表(要因表)分析軟件的規(guī)格需求說明得到影響軟件功能的因子,明確有哪些因素(變量),每個(gè)因素有哪幾個(gè)水平(變量的取值)。一、正交實(shí)驗(yàn)法設(shè)計(jì)測試用例的步驟活動(dòng)二正交實(shí)驗(yàn)法測試用例設(shè)計(jì)例如,某一軟件的運(yùn)行受到操作系統(tǒng)和數(shù)據(jù)庫的影響,因此影響其運(yùn)行是否成功的因子有操作系統(tǒng)和數(shù)據(jù)庫2個(gè),而操作系統(tǒng)有Windows、Linux、macOS等3個(gè)個(gè)取值,數(shù)據(jù)庫有MySQL、SQLServer、Oracle等3個(gè)取值,因此操作系統(tǒng)的因子狀態(tài)為3,數(shù)據(jù)庫因子狀態(tài)為3。據(jù)此構(gòu)造該軟件運(yùn)行功能的因子-狀態(tài)表,如表所示。一、正交實(shí)驗(yàn)法設(shè)計(jì)測試用例的步驟因子因子的狀態(tài)操作系統(tǒng)WindowsLinuxmacOS數(shù)據(jù)庫MySQLSQLServerOracle活動(dòng)二正交實(shí)驗(yàn)法測試用例設(shè)計(jì)(2)加權(quán)篩選,簡化因子-狀態(tài)表在實(shí)際軟件測試中,軟件的因子及因子的狀態(tài)會(huì)有很多,每個(gè)因子及其狀態(tài)對(duì)軟件的作用也大不相同,如果把這些因子及狀態(tài)都劃分到因子-狀態(tài)表中,最后生成的測試用例會(huì)相當(dāng)龐大,從而影響軟件測試的效率。因此需要根據(jù)因子及狀態(tài)的重要程度進(jìn)行加權(quán)篩選,選出重要的因子與狀態(tài),簡化因子-狀態(tài)表。一、正交實(shí)驗(yàn)法設(shè)計(jì)測試用例的步驟活動(dòng)二正交實(shí)驗(yàn)法測試用例設(shè)計(jì)(2)加權(quán)篩選,簡化因子-狀態(tài)表加權(quán)篩選就是根據(jù)因子或狀態(tài)的重要程度、出現(xiàn)頻率等因素計(jì)算因子和狀態(tài)的權(quán)值,權(quán)值越大,表明因子或狀態(tài)越重要,而權(quán)值越小,表明因子或狀態(tài)的重要性越小。加權(quán)篩選之后,可以去掉一部分權(quán)值較小的因子或狀態(tài),使得最后生成的測試用例集縮減到允許的范圍。一、正交實(shí)驗(yàn)法設(shè)計(jì)測

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論