軟件質(zhì)量保證與測(cè)試(慕課版)(第2版)-課件 第 3 章 黑盒測(cè)試_第1頁(yè)
軟件質(zhì)量保證與測(cè)試(慕課版)(第2版)-課件 第 3 章 黑盒測(cè)試_第2頁(yè)
軟件質(zhì)量保證與測(cè)試(慕課版)(第2版)-課件 第 3 章 黑盒測(cè)試_第3頁(yè)
軟件質(zhì)量保證與測(cè)試(慕課版)(第2版)-課件 第 3 章 黑盒測(cè)試_第4頁(yè)
軟件質(zhì)量保證與測(cè)試(慕課版)(第2版)-課件 第 3 章 黑盒測(cè)試_第5頁(yè)
已閱讀5頁(yè),還剩197頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件質(zhì)量保證與測(cè)試3.1黑盒測(cè)試概述第3章黑盒測(cè)試SoftwareQualityAssuranceandTesting什么是黑盒測(cè)試

把被測(cè)試軟件看做一個(gè)打不開的黑盒子,完全不考慮軟件的邏輯結(jié)構(gòu)和內(nèi)部特性,只是依據(jù)軟件的規(guī)格說明書,運(yùn)行軟件,輸入測(cè)試數(shù)據(jù),根據(jù)運(yùn)行結(jié)果,檢驗(yàn)該軟件的功能是否實(shí)現(xiàn)并符合要求、性能等其它特性是否滿足用戶需要。黑盒測(cè)試是一種從用戶觀點(diǎn)出發(fā),基于規(guī)格說明的測(cè)試。又叫功能測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試。?黑盒測(cè)試的優(yōu)缺點(diǎn)優(yōu)點(diǎn):不需要源代碼;測(cè)試簡(jiǎn)單易行;能夠發(fā)現(xiàn)軟件設(shè)計(jì)中的問題;除了功能之外,還可以測(cè)試性能、安全性等其他特性。缺點(diǎn):無(wú)法對(duì)代碼進(jìn)行有針對(duì)性的測(cè)試,某些代碼可能得不到測(cè)試;有時(shí)輸出的結(jié)果可能碰巧正確,但軟件內(nèi)部在執(zhí)行過程中可能已經(jīng)出錯(cuò)了;黑盒測(cè)試以規(guī)格說明書為測(cè)試依據(jù),如果規(guī)格說明書有誤,黑盒測(cè)試是發(fā)現(xiàn)不了的。黑盒測(cè)試內(nèi)部結(jié)構(gòu)和實(shí)現(xiàn)細(xì)節(jié)執(zhí)行結(jié)果和外部特性不考慮只關(guān)注軟件系統(tǒng)測(cè)試驗(yàn)收測(cè)試黑盒測(cè)試用于用于用于......黑盒測(cè)試主要可以發(fā)現(xiàn)以下幾類錯(cuò)誤1.輸入和輸出錯(cuò)誤程序A的用戶注冊(cè)界面上有一個(gè)文本框用于輸入用戶的昵稱,但測(cè)試執(zhí)行程序時(shí)發(fā)現(xiàn),用戶輸入的昵稱長(zhǎng)度最多只能是10個(gè)字符,如果大于10,則無(wú)法輸入,但程序規(guī)格說明中并沒有限制用戶的昵稱長(zhǎng)度必須小于等于10。2.初始化或終止性錯(cuò)誤。對(duì)程序B進(jìn)行黑盒測(cè)試,執(zhí)行后,程序始終處于運(yùn)行之中,不再對(duì)用戶的鍵盤鼠標(biāo)操作給出響應(yīng),沒有提示,也不能關(guān)閉或者退出。這是終止性錯(cuò)誤,一般情況是程序存在死循環(huán),不能終止。黑盒測(cè)試主要可以發(fā)現(xiàn)以下幾類錯(cuò)誤3.功能遺漏或者不正確。程序C的規(guī)格說明書中說明該程序可以根據(jù)給定的多個(gè)成績(jī)計(jì)算平均成績(jī),并且成績(jī)可以是百分制,也可以是五級(jí)計(jì)分制,但執(zhí)行程序C,對(duì)其進(jìn)行黑盒測(cè)試發(fā)現(xiàn),該程序只能對(duì)百分制的成績(jī)計(jì)算平均成績(jī),而不能對(duì)五級(jí)計(jì)分制的成績(jī)計(jì)算平均成績(jī),這是該程序功能不全,有遺漏。4.界面錯(cuò)誤。對(duì)某成績(jī)管理系統(tǒng)D進(jìn)行黑盒測(cè)試,執(zhí)行后主界面顯示:“歡迎進(jìn)入網(wǎng)上商城”,這是界面上有提示信息錯(cuò)誤。黑盒測(cè)試主要可以發(fā)現(xiàn)以下幾類錯(cuò)誤5.性能不符合要求。某網(wǎng)上售票系統(tǒng)E的規(guī)格說明書要求該系統(tǒng)能滿足1000個(gè)客戶端同時(shí)在線買票,但對(duì)其進(jìn)行黑盒測(cè)試時(shí)發(fā)現(xiàn),500個(gè)客戶端同時(shí)在線買票時(shí)該系統(tǒng)就癱瘓了,該系統(tǒng)性能不符合要求。6.數(shù)據(jù)庫(kù)或其它外部數(shù)據(jù)結(jié)構(gòu)訪問錯(cuò)誤。某銷售管理系統(tǒng)F有一個(gè)后臺(tái)數(shù)據(jù)庫(kù),對(duì)銷售管理系統(tǒng)F進(jìn)行黑盒測(cè)試時(shí)發(fā)現(xiàn),當(dāng)需要訪問數(shù)據(jù)庫(kù)時(shí)系統(tǒng)就會(huì)報(bào)錯(cuò),這是數(shù)據(jù)庫(kù)訪問錯(cuò)誤,錯(cuò)誤的原因很可能是連接字符串中的參數(shù)不正確。黑盒測(cè)試主要可以發(fā)現(xiàn)以下幾類錯(cuò)誤7.安全性問題等。某學(xué)生管理系統(tǒng)G,對(duì)其進(jìn)行黑盒測(cè)試時(shí)發(fā)現(xiàn),用戶登錄時(shí)輸入正確的用戶名后,密碼什么都不輸入,也可以登錄成功,這是系統(tǒng)在對(duì)用戶進(jìn)行身份認(rèn)證時(shí)存在安全性問題。黑盒測(cè)試對(duì)軟件進(jìn)行黑盒測(cè)試的主要依據(jù)是軟件規(guī)格說明書,因此,在進(jìn)行黑盒測(cè)試之前應(yīng)確保軟件規(guī)格說明書是經(jīng)過評(píng)審的,其質(zhì)量達(dá)到了既定的要求。如果沒有規(guī)格說明書的話,可以采用探索式測(cè)試。黑盒測(cè)試思想不僅可以用于測(cè)試軟件的功能,同時(shí),也可用于測(cè)試軟件的非功能特性,如性能、安全性等。黑盒測(cè)試黑盒測(cè)試用例設(shè)計(jì)方法主要有這么幾種黑盒測(cè)試

在面對(duì)實(shí)際的軟件測(cè)試任務(wù)時(shí),如果僅僅采用一種黑盒測(cè)試用例設(shè)計(jì)方法,是無(wú)法獲得理想的測(cè)試用例集、高質(zhì)量的解決復(fù)雜軟件測(cè)試問題的。比較實(shí)用的方法是,綜合運(yùn)用多種設(shè)計(jì)技術(shù)來(lái)設(shè)計(jì)測(cè)試用例,取長(zhǎng)補(bǔ)短,只有這樣才能有效提高測(cè)試的效率和測(cè)試覆蓋率。這就需要我們認(rèn)真掌握這些方法的原理,積累一定的軟件測(cè)試經(jīng)驗(yàn),才能有效地提高軟件測(cè)試水平。綜合運(yùn)用黑盒測(cè)試方法的策略①可以首先進(jìn)行等價(jià)類劃分,包括對(duì)輸入條件和輸出結(jié)果的等價(jià)劃分,將無(wú)限測(cè)試變成有限測(cè)試,這是減少工作量和提高測(cè)試效率最有效的方法。②在任何情況下都推薦使用邊界值分析法,經(jīng)驗(yàn)表明,用這種方法設(shè)計(jì)出的測(cè)試用例發(fā)現(xiàn)程序錯(cuò)誤的能力最強(qiáng),發(fā)現(xiàn)缺陷的概率也最高,因?yàn)閱栴}往往容易出現(xiàn)在邊界上。③對(duì)于業(yè)務(wù)流清晰的系統(tǒng),可以采用場(chǎng)景法對(duì)測(cè)試任務(wù)進(jìn)行分解,以便于實(shí)施。綜合運(yùn)用黑盒測(cè)試方法的策略④如果程序的規(guī)格說明中含有輸入條件的組合情況,則一開始就可選用因果圖法和判定表驅(qū)動(dòng)法。⑤對(duì)于參數(shù)配置類軟件,可用正交實(shí)驗(yàn)法選擇較少的數(shù)據(jù)組合達(dá)到較好的測(cè)試效果。⑥在其它方法的基礎(chǔ)上,可以采用錯(cuò)誤推測(cè)法追加一些測(cè)試用例,用錯(cuò)誤猜測(cè)法補(bǔ)充通過其它測(cè)試用例設(shè)計(jì)方法無(wú)法獲得的測(cè)試用例,這需要依靠測(cè)試工程師的智慧和經(jīng)驗(yàn)。本節(jié)內(nèi)容就講到這里,謝謝,再見!軟件質(zhì)量保證與測(cè)試3.2

等價(jià)類劃分第3章黑盒測(cè)試SoftwareQualityAssuranceandTesting黑盒測(cè)試窮舉所有可能的輸入?不可能?。?!

必須要提高測(cè)試的針對(duì)性,既要測(cè)試各種可能的情況,提高測(cè)試的完備性,又要避免重復(fù),降低冗余,節(jié)約測(cè)試成本!............全體學(xué)生等價(jià)類劃分學(xué)生按體型分組,每組派1個(gè)代表試穿校服女生男生等價(jià)類

某個(gè)元素相應(yīng)的等價(jià)類是指,對(duì)某一個(gè)等價(jià)關(guān)系而言,與其等價(jià)的所有元素的集合。簡(jiǎn)單地說,等價(jià)類是數(shù)據(jù)集的某個(gè)子集,等價(jià)類中的各個(gè)元素具有某種相同的特性。例如按照奇偶性,整數(shù)可以分為奇數(shù)和偶數(shù)兩個(gè)等價(jià)類。等價(jià)類

從軟件測(cè)試的角度來(lái)說,由于等價(jià)類中的各個(gè)元素具有相同的特性,所以對(duì)于發(fā)現(xiàn)或者揭露程序中的缺陷,它們的作用是等價(jià)的,或者說效果是相同的。于是等價(jià)類劃分法就合理地假定:對(duì)于某個(gè)等價(jià)類而言,只需要測(cè)試其中的某個(gè)代表數(shù)據(jù),就等于對(duì)這一等價(jià)類中所有數(shù)據(jù)的測(cè)試。24,6,8......偶數(shù)我來(lái)做代表等價(jià)類劃分

各個(gè)等價(jià)類之間不應(yīng)存在相同的元素。所有等價(jià)類的并集應(yīng)當(dāng)是被劃分集合的全集。

把所有可能的輸入數(shù)據(jù),劃分成若干個(gè)等價(jià)類,然后從每一個(gè)等價(jià)類中選取1個(gè)或者少量數(shù)據(jù),作為測(cè)試數(shù)據(jù)去測(cè)試程序。等價(jià)類劃分

把可能無(wú)限的輸入,變成有限的等價(jià)類,然后從中選出代表作為測(cè)試用例,以期達(dá)到在測(cè)試工作盡可能完備的同時(shí)又盡可能避免測(cè)試冗余,降低測(cè)試成本,提高測(cè)試的有效性。等價(jià)類劃分是最基本和最常用的黑盒測(cè)試方法。等價(jià)類劃分等價(jià)類可以分為有效等價(jià)類和無(wú)效等價(jià)類。

有效等價(jià)類:是指對(duì)于程序規(guī)格說明來(lái)說,合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用它,可以檢驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說明預(yù)先規(guī)定的功能和性能等特性。無(wú)效等價(jià)類:是指對(duì)于程序規(guī)格說明來(lái)說,不合理的、無(wú)意義的輸入數(shù)據(jù)構(gòu)成的集合。利用它,可以檢驗(yàn)程序能否正確應(yīng)對(duì)異常的輸入,而不至于產(chǎn)生不希望出現(xiàn)的后果。等價(jià)類劃分

設(shè)計(jì)測(cè)試用例時(shí),要同時(shí)考慮這兩種等價(jià)類,因?yàn)檐浖粌H要能接收并處理合理的數(shù)據(jù),也要能經(jīng)受意外的考驗(yàn)。在遇到不合理的、無(wú)意義的數(shù)據(jù)輸入時(shí),程序應(yīng)能妥善處理,而不至于無(wú)法應(yīng)對(duì),出現(xiàn)意外的結(jié)果,只有通過這樣的測(cè)試,才能確保軟件具有更高的可靠性。符號(hào)函數(shù)

x>0

y=1x=0

y=0x<0

y=-1有效等價(jià)類:三類,分別是x>0,x=0和x<0無(wú)效等價(jià)類:一類,所有不能和0進(jìn)行大小比較的數(shù)據(jù)等價(jià)類劃分簡(jiǎn)單實(shí)例常見的劃分等價(jià)類的方式①按區(qū)間劃分②按數(shù)值劃分③按集合劃分④按限制條件或者限制規(guī)則劃分⑤按處理方式劃分等常見的劃分等價(jià)類的方式例如:對(duì)某一個(gè)人所得稅計(jì)算軟件進(jìn)行測(cè)試,可以按照個(gè)人所得稅分等級(jí)計(jì)算標(biāo)準(zhǔn),把輸入數(shù)據(jù)“應(yīng)納稅所得額”按區(qū)間進(jìn)行等價(jià)類劃分。

有效等價(jià)類全月應(yīng)納稅所得額1不超過1500元2超過1500元至4500元3超過4500元至9000元4超過9000元至35000元5超過35000元至55000元6超過55000元至80000元7超過80000元常見的劃分等價(jià)類的方式例如:對(duì)某五級(jí)計(jì)分制轉(zhuǎn)換百分制程序進(jìn)行測(cè)試,可以把輸入數(shù)據(jù)“五級(jí)計(jì)分制成績(jī)”按照處理方式進(jìn)行等價(jià)類劃分。劃分等價(jià)類的建議

到目前為止,還沒有高質(zhì)量劃分等價(jià)類的標(biāo)準(zhǔn)方法,針對(duì)軟件不同的規(guī)格說明可能使用不同的等價(jià)類劃分方法。不同的等價(jià)類劃分得到的測(cè)試用例的質(zhì)量不同。在劃分等價(jià)類時(shí),可以參考下面的建議:①如果輸入條件規(guī)定了取值的范圍,那么可以確定一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類。例如:程序輸入條件為小于等于100大于等于0的整數(shù)x,則有效等價(jià)類為0<=x<=100,兩個(gè)無(wú)效等價(jià)類為x<0和x>100。劃分等價(jià)類的建議②如果輸入條件規(guī)定了一個(gè)輸入值的集合,那么可以確定一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。例如:某程序規(guī)定了輸入數(shù)據(jù)ZC的有效取值需來(lái)自集合R={助教、講師、副教授、教授、其它、無(wú)},則有效等價(jià)類為ZC屬于R,無(wú)效等價(jià)類為ZC不屬于R③如果輸入條件規(guī)定了輸入值必須滿足某種要求,那么可以確定一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。例如:某程序規(guī)定輸入數(shù)據(jù)x的取值條件為數(shù)字符號(hào),則有效等價(jià)類為x是數(shù)字符號(hào),無(wú)效等價(jià)類為x含有非數(shù)字符號(hào)。劃分等價(jià)類的建議④在輸入條件是一個(gè)布爾量的情況下,那么可以確定一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。例如:某程序規(guī)定其有效輸入為布爾真值,則有效等價(jià)類為布爾真值true,無(wú)效等價(jià)類為布爾假值false。有效等價(jià)類:布爾真值true無(wú)效等價(jià)類:布爾假值false劃分等價(jià)類的建議⑤如果規(guī)定了輸入數(shù)據(jù)為一組值(n個(gè)),并且程序要對(duì)每一組輸入值分別進(jìn)行處理,那么可以確定n個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。例如:某程序輸入x取值于一組值{優(yōu)秀,良好,中等,及格,不及格},且程序中會(huì)對(duì)這5個(gè)值分別進(jìn)行處理,則有效等價(jià)類有5個(gè),分別為x=“優(yōu)秀”、x=“良好”、x=“中等”、x=“及格”、x=“不及格”,無(wú)效等價(jià)類為x不屬于集合{優(yōu)秀,良好,中等,及格,不及格}。劃分等價(jià)類的建議⑥如果規(guī)定輸入數(shù)據(jù)必須符合某些規(guī)則,那么可以確定一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)分別從不同角度違反規(guī)則的無(wú)效等價(jià)類。例如:程序輸入條件為以英文字母開頭、長(zhǎng)度為8、只包含英文字母和數(shù)字符號(hào)的字符串,則有效等價(jià)類為滿足了上述所有條件的字符串,無(wú)效等價(jià)類為不以英文字母開頭的字符串、長(zhǎng)度不為8的字符串和包含了英文字母和數(shù)字符號(hào)之外其它字符的字符串。劃分等價(jià)類的建議⑦在初步劃分等價(jià)之后,如果發(fā)現(xiàn)某一等價(jià)類中的各元素在程序中的處理有區(qū)別,則應(yīng)再將該等價(jià)類進(jìn)一步劃分為更小的等價(jià)類。例如:輸入的成績(jī)有效等價(jià)類無(wú)效等價(jià)類:非五級(jí)計(jì)分制的文本數(shù)據(jù)超出[0,100]范圍的數(shù)字?jǐn)?shù)據(jù)五級(jí)計(jì)分制文本數(shù)據(jù)[0,100]范圍內(nèi)數(shù)字?jǐn)?shù)據(jù)等價(jià)類劃分方法設(shè)計(jì)測(cè)試用例步驟1.劃分等價(jià)類,包括有效等價(jià)類和無(wú)效等價(jià)類,建立等價(jià)類表,并為每一個(gè)等價(jià)類規(guī)定一個(gè)惟一的編號(hào);以符號(hào)函數(shù)為例:條件有效等價(jià)類編號(hào)無(wú)效等價(jià)類編號(hào)xx<0Y1不能和0比較大小的輸入N1xx=0Y2xx>0Y3等價(jià)類劃分方法設(shè)計(jì)測(cè)試用例步驟2.設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價(jià)類;重復(fù)這一步驟,直到所有的有效等價(jià)類都被覆蓋為止。編號(hào)測(cè)試用例覆蓋的等價(jià)類T1x=-4Y1T2x=0Y2T3x=4Y3等價(jià)類劃分方法設(shè)計(jì)測(cè)試用例步驟3.設(shè)計(jì)一個(gè)新的測(cè)試用例,使其僅覆蓋一個(gè)無(wú)效等價(jià)類,重復(fù)這一步驟,直到所有的無(wú)效等價(jià)類都被覆蓋為止。編號(hào)測(cè)試用例覆蓋的等價(jià)類T1x=-4Y1T2x=0Y2T3x=4Y3T4x=“good”N1等價(jià)類劃分

為什么設(shè)計(jì)一個(gè)測(cè)試用例可覆蓋多個(gè)有效等價(jià)類,而一般只能覆蓋一個(gè)無(wú)效等價(jià)類?

假設(shè)有一個(gè)成績(jī)輸入軟件,輸入的成績(jī)由平時(shí)成績(jī)cj1和期末成績(jī)cj2兩部分組成,cj1、cj2的無(wú)效等價(jià)類都是兩個(gè),小于0和大于100。等價(jià)類劃分

程序員在編寫程序時(shí),用兩條語(yǔ)句來(lái)應(yīng)對(duì)可能的無(wú)效輸入,代碼本應(yīng)當(dāng)如下:If(cj1<0orcj1>100)Return“平時(shí)成績(jī)超出范圍”If(cj2<0orcj2>100)Return“期末成績(jī)超出范圍”但程序員在敲代碼時(shí)出現(xiàn)了疏忽,把cj2>100,寫成了cj2>1000,代碼變成了:If(cj1<0orcj1>100)Return“平時(shí)成績(jī)超出范圍”If(cj2<0orcj2>1000)Return“期末成績(jī)超出范圍”等價(jià)類劃分

現(xiàn)在我們?cè)O(shè)計(jì)一個(gè)測(cè)試用例cj1=-10,cj2=800,覆蓋了兩個(gè)無(wú)效等價(jià)類,分別是cj1的小于0無(wú)效等價(jià)類,和cj2的大于100無(wú)效等價(jià)類。我們輸入這一測(cè)試數(shù)據(jù),程序執(zhí)行在執(zhí)行完第一行對(duì)cj1進(jìn)行有效性檢驗(yàn)之后,就提示“平時(shí)成績(jī)超出范圍”并退出執(zhí)行返回了,根本就沒有繼續(xù)執(zhí)行第二行代碼。這樣第二行的錯(cuò)誤就發(fā)現(xiàn)不了,而我們很可能還錯(cuò)誤的認(rèn)為程序已經(jīng)順利通過了針對(duì)cj2的大于100無(wú)效等價(jià)類的測(cè)試。而如果一次只覆蓋一個(gè)無(wú)效等價(jià)類,如cj1=70,cj2=800,就可以發(fā)現(xiàn)第二行代碼中的錯(cuò)誤。等價(jià)類劃分

所以說一個(gè)測(cè)試用例可覆蓋多個(gè)有效等價(jià)類,而一般只能覆蓋一個(gè)無(wú)效等價(jià)類。除非是:一次覆蓋一個(gè)無(wú)效等價(jià)類已經(jīng)做完了,專門再來(lái)對(duì)多個(gè)變量做無(wú)效等價(jià)類的組合覆蓋。等價(jià)類的組合如果有多個(gè)輸入條件,并且各個(gè)條件之間存在關(guān)聯(lián),那么僅僅只是覆蓋所有的等價(jià)類還不夠,還需要考慮等價(jià)類之間的組合。組合可分為完全組合和部分組合兩種,如果輸入條件比較多,并且每個(gè)輸入條件的等價(jià)類也比較多,那么總的完全組合數(shù)將非常大,此時(shí)可以采用部分組合。等價(jià)類組合的相關(guān)概念實(shí)例:函數(shù)y=f(x1,x2)輸入變量的取值范圍分別為:x1∈[a,d],x2∈[e,g]。根據(jù)函數(shù)的規(guī)格說明劃分得到相應(yīng)的等價(jià)類X1:等價(jià)類的組合有效等價(jià)類[a,b)[b,c)[c,d];無(wú)效等價(jià)類(-∞,a),(d,+∞)有效等價(jià)類[e,f)[f,g];無(wú)效等價(jià)類(-∞,e),(g,+∞)X2:弱一般等價(jià)類:設(shè)計(jì)若干測(cè)試用例,每個(gè)測(cè)試用例應(yīng)盡可能多地覆蓋尚未覆蓋的被測(cè)變量的有效等價(jià)類并且每個(gè)被測(cè)變量的有效等價(jià)類應(yīng)至少出現(xiàn)一次。測(cè)試用例個(gè)數(shù)為:各個(gè)被測(cè)變量中的最大有效等價(jià)類個(gè)數(shù)。等價(jià)類的組合等價(jià)類的組合efgabcd弱一般等價(jià)類測(cè)試用例有效區(qū)域無(wú)效區(qū)域強(qiáng)一般等價(jià)類:設(shè)計(jì)若干測(cè)試用例,使其覆蓋所有被測(cè)變量有效等價(jià)類的組合。測(cè)試用例個(gè)數(shù)為:各個(gè)被測(cè)變量有效等價(jià)類數(shù)的乘積。等價(jià)類的組合等價(jià)類的組合efgabcd強(qiáng)一般等價(jià)類測(cè)試用例有效區(qū)域無(wú)效區(qū)域弱健壯等價(jià)類:

設(shè)計(jì)若干測(cè)試用例,每個(gè)測(cè)試用例應(yīng)盡可能多地覆蓋尚未覆蓋的有效等價(jià)類,對(duì)于無(wú)效等價(jià)類,每個(gè)測(cè)試用例只考慮一個(gè)被測(cè)變量的無(wú)效等價(jià)類。

測(cè)試用例個(gè)數(shù)為,各個(gè)被測(cè)變量中的最大有效等價(jià)類個(gè)數(shù)+∑各個(gè)被測(cè)變量的無(wú)效等價(jià)類數(shù)。等價(jià)類的組合等價(jià)類的組合efgabcd弱健壯等價(jià)類測(cè)試用例有效區(qū)域無(wú)效區(qū)域強(qiáng)健壯等價(jià)類:

設(shè)計(jì)若干測(cè)試用例,使其覆蓋所有被測(cè)變量的有效等價(jià)類和無(wú)效等價(jià)類的組合。

測(cè)試用例個(gè)數(shù)為,各個(gè)被測(cè)變量的等價(jià)類總數(shù)的乘積,各個(gè)被測(cè)變量的等價(jià)類總數(shù)等于其有效等價(jià)類數(shù)+無(wú)效等價(jià)類數(shù)。等價(jià)類的組合等價(jià)類的組合efgabcd強(qiáng)健壯等價(jià)類測(cè)試用例有效區(qū)域無(wú)效區(qū)域

等價(jià)類劃分方法的思想本質(zhì)是,依據(jù)軟件規(guī)格說明,將數(shù)據(jù)按照處理方式的不同,劃分為不同的等價(jià)類,從等價(jià)類中選出代表作為測(cè)試用例,以期達(dá)到軟件測(cè)試工作盡可能完備同時(shí)又避免冗余。等價(jià)類劃分測(cè)試方法除了可以用于輸入數(shù)據(jù)之外,還可以對(duì)輸出數(shù)據(jù)應(yīng)用實(shí)施。等價(jià)類劃分本節(jié)內(nèi)容就講到這里,謝謝,再見!軟件質(zhì)量保證與測(cè)試3.3邊界值分析第3章黑盒測(cè)試SoftwareQualityAssuranceandTesting錯(cuò)誤往往發(fā)生在邊界A和B的邊界輸入子類A輸入子類B子類A的輸出子類B的輸出

人們從長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)得知,大量的錯(cuò)誤往往發(fā)生在輸入和輸出數(shù)據(jù)范圍的邊界上。如果針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,往往可以發(fā)現(xiàn)更多的錯(cuò)誤。正確正確錯(cuò)誤邊界值分析法

邊界值分析法就是對(duì)輸入或輸出數(shù)據(jù)的邊界值進(jìn)行測(cè)試的一種黑盒測(cè)試方法。邊界值分析法可以和等價(jià)類劃分法結(jié)合起來(lái)使用,在劃分等價(jià)類的基礎(chǔ)之上,選取輸入等價(jià)類、輸出等價(jià)類的邊界數(shù)據(jù)來(lái)進(jìn)行測(cè)試。邊界值分析法與等價(jià)類劃分法的區(qū)別是,邊界值分析不是從等價(jià)類中隨便挑一個(gè)作為代表,而是把等價(jià)類的邊界作為測(cè)試條件。邊界值分析法

使用邊界值分析方法設(shè)計(jì)測(cè)試用例,首先應(yīng)確定等價(jià)類的邊界,然后選取正好等于,略大于,略小于邊界的值作為測(cè)試數(shù)據(jù)。需要注意的是,邊界值不僅僅可以是數(shù)據(jù)取值的邊界,還可以是數(shù)據(jù)的個(gè)數(shù),文件的個(gè)數(shù),記錄的條數(shù)等邊界值。邊界的不同類型數(shù)據(jù)取值范圍的最大值、最小值屏幕上光標(biāo)在最左上、最右下位置報(bào)表的第一行和最后一行數(shù)組元素的第一個(gè)和最后一個(gè)循環(huán)1次、循環(huán)最大次數(shù)據(jù)表中的第一條記錄,最后一條記錄字符串的第一符號(hào),最后一個(gè)符號(hào)第一個(gè)文件,最后一個(gè)文件邊界值的選取四點(diǎn)法區(qū)間端點(diǎn)六點(diǎn)法邊界值+等價(jià)類正常值五點(diǎn)法區(qū)間端點(diǎn)七點(diǎn)法邊界值分析法選擇測(cè)試用例的原則(1)如果輸入條件規(guī)定了值的范圍,則應(yīng)選取剛好等于、略大于,略小于范圍端點(diǎn)的值作為測(cè)試輸入數(shù)據(jù)。例如,程序的規(guī)格說明中規(guī)定:"重量在10公斤至50公斤范圍內(nèi)的郵件,其郵費(fèi)計(jì)算公式為……"。作為測(cè)試用例,我們應(yīng)取10,50,以及9.99,10.01,49.99,和50.01。9.991010.0149.995050.01邊界值分析選擇測(cè)試用例的原則(2)如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù)、最小個(gè)數(shù)和比最大個(gè)數(shù)、最小個(gè)數(shù)多1個(gè)、少1個(gè)的數(shù)作為測(cè)試數(shù)據(jù)。例如,一個(gè)輸入文件應(yīng)包括1-255個(gè)記錄,則測(cè)試用例可取1和255,還應(yīng)取0,2及254,256。邊界值分析選擇測(cè)試用例的原則(3)根據(jù)程序規(guī)格說明的每個(gè)輸出條件,使用原則(1)。例如,某程序的規(guī)格說明了該程序的計(jì)算結(jié)果應(yīng)[0,100]之間,那么可以設(shè)計(jì)測(cè)試用例,使得預(yù)期的計(jì)算結(jié)果應(yīng)當(dāng)為0,略大于0,略小于100,以及100。(4)根據(jù)程序規(guī)格說明的每個(gè)輸出條件,使用原則(2)。如某程序一次可輸出最多5個(gè)文件,那么可以設(shè)計(jì)測(cè)試用例,使得預(yù)期的輸出分別為,0、1、4、5個(gè)文件。邊界值分析選擇測(cè)試用例的原則(5)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合(如有序表、順序文件等),則應(yīng)選取集合中的第一個(gè)和最后一個(gè)元素作為測(cè)試用例。(6)如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)邊界上的值作為測(cè)試用例。(7)分析程序規(guī)格說明,找出其它可能的邊界條件。邊界值的組合最壞情況:考慮邊界值的組合如果有多個(gè)變量,邊界值的組合可分為多種情況:邊界值的組合1、一般邊界值:僅考慮單個(gè)變量在有效取值區(qū)間上的邊界值,包括最小值,略高于最小值,略低于最大值和最大值,如果被測(cè)變量個(gè)數(shù)為n,則總的邊界值有4n個(gè)。設(shè)計(jì)測(cè)試用例時(shí)每次只覆蓋一個(gè)變量的邊界值,其它變量應(yīng)當(dāng)用正常值,所以可以為每個(gè)變量再選取一個(gè)正常值,這樣的話邊界值和等價(jià)類劃分相結(jié)合,總的測(cè)試用例個(gè)數(shù)為4n+1個(gè)。邊界值的組合1、一般邊界值:程序F有兩個(gè)輸入變量x1(a≤x1≤d)和x2(e≤x2≤g),則針對(duì)(x1,x2)的一般邊界值測(cè)試用例形式如下:{<nom,min>,<nom,min+>,<nom,nom>,<nom,max>,<nom,max->,<min,nom>,<min+,nom>,<max,nom>,<max-,nom>}其中nom表示正常值,min表示最小值,max表示最大值,min+表示略大于最小值,max-表示略小于最大值??偟臏y(cè)試用例個(gè)數(shù)為4n+1=4×2+1=9。邊界值的組合1、一般邊界值:adegX2X12、一般最壞情況邊界值:將多個(gè)變量在有效區(qū)間上的邊界值的組合情況納入測(cè)試范圍,用各個(gè)變量的最小值,略高于最小值,正常值,略低于最大值和最大值的完全組合作為測(cè)試用例集。如果被測(cè)變量個(gè)數(shù)為n,則總的測(cè)試用例個(gè)數(shù)為5n邊界值的組合2、一般最壞情況邊界值:邊界值的組合adegX2X13、健壯邊界值:同時(shí)考慮單個(gè)變量在有效區(qū)間和無(wú)效區(qū)間上的邊界值,除了選取最小值,略高于最小值,正常值,略低于最大值和最大值作為邊界值之外,還要選取略超過最大值以及略小于最小值的值。如果被測(cè)變量個(gè)數(shù)為n,則測(cè)試用例個(gè)數(shù)為6n+1邊界值的組合3、健壯邊界值:邊界值的組合adegX2X14、健壯最壞情況邊界值:同時(shí)考慮多個(gè)變量在有效區(qū)間和無(wú)效區(qū)間上的邊界值的組合情況:用各個(gè)變量的略小于最小值,最小值,略高于最小值,正常值,略低于最大值,最大值和略超過大值這些邊界值進(jìn)行完全組合。如果被測(cè)變量個(gè)數(shù)為n,則測(cè)試用例個(gè)數(shù)為7n邊界值的組合4、健壯最壞情況邊界值:邊界值的組合adegX2X1函數(shù)y=f(x1,x2)輸入變量的取值范圍分別為:x1∈[a,d],x2∈[e,g]則其:一般邊界值有4n+1=4*2+1=9組,一般最壞情況邊界值有5n

=25組,健壯邊界值有6n+1=6*2+1=13組,健壯最壞情況邊界值有7n

=49組。邊界值的組合

多變量同時(shí)取邊界值看上去測(cè)試更徹底更完善,但花費(fèi)的代價(jià)確實(shí)不小,例如當(dāng)n=3時(shí),實(shí)現(xiàn)健壯邊界值覆蓋的測(cè)試用例個(gè)數(shù)為6n+1=6*3+1=19,而實(shí)現(xiàn)健壯最壞情況邊界值覆蓋的測(cè)試用例個(gè)數(shù)為:7n=73=343,大約為前者的18倍。當(dāng)各個(gè)變量之間相對(duì)獨(dú)立時(shí),僅考慮使用一個(gè)變量取邊界值,另外一個(gè)變量取正常值就可以了,這樣既可以達(dá)到應(yīng)有的測(cè)試效果,又可以節(jié)約大量的測(cè)試成本。邊界值分析本節(jié)內(nèi)容就講到這里,謝謝,再見!軟件質(zhì)量保證與測(cè)試3.4錯(cuò)誤推測(cè)法第3章黑盒測(cè)試SoftwareQualityAssuranceandTesting猜測(cè):錯(cuò)誤推測(cè)法

基于經(jīng)驗(yàn)和問題分析推測(cè)程序中可能存在的各種錯(cuò)誤,有針對(duì)性的設(shè)計(jì)測(cè)試用例來(lái)對(duì)程序進(jìn)行測(cè)試,這就是錯(cuò)誤推測(cè)法。錯(cuò)誤錯(cuò)誤可能錯(cuò)誤需要有針對(duì)性測(cè)試經(jīng)驗(yàn):

錯(cuò)誤推測(cè)法

列舉出程序中可能有的缺陷,或程序執(zhí)行時(shí)可能出錯(cuò)的特殊情況,根據(jù)它們選擇或者設(shè)計(jì)測(cè)試用例,然后來(lái)有針對(duì)性的對(duì)程序進(jìn)行測(cè)試。

經(jīng)驗(yàn)

問題分析可能有的缺陷......可能出錯(cuò)的特殊情況......有針對(duì)性的設(shè)計(jì)測(cè)試用例測(cè)試軟件

錯(cuò)誤推測(cè)法例如,軟件中常見的缺陷:對(duì)輸入數(shù)據(jù)沒有限制和校驗(yàn)對(duì)單次數(shù)據(jù)查詢的結(jié)果集大小沒有約束,網(wǎng)站頁(yè)面執(zhí)行出錯(cuò)時(shí)會(huì)將服務(wù)器的調(diào)試信息顯示在頁(yè)面上......你開發(fā)的軟件有沒有這些問題?錯(cuò)誤推測(cè)法例如,程序執(zhí)行時(shí)容易發(fā)生錯(cuò)誤的情況:對(duì)空數(shù)據(jù)表執(zhí)行刪除記錄操作重復(fù)刪除記錄添加兩條相同的記錄采用空字符串進(jìn)行登錄......你開發(fā)的軟件有沒有做過這些測(cè)試?!錯(cuò)誤推測(cè)法

運(yùn)用錯(cuò)誤推測(cè)法來(lái)對(duì)軟件進(jìn)行測(cè)試,需要測(cè)試人員具有一定的經(jīng)驗(yàn)積累,通過經(jīng)驗(yàn)積累可以知道哪些是軟件中的常見缺陷,哪些是程序執(zhí)行時(shí)容易出錯(cuò)的地方,然后有針對(duì)性的來(lái)進(jìn)行測(cè)試。測(cè)試員通過自己的測(cè)試實(shí)踐和積累,對(duì)軟件的缺陷分布情況進(jìn)行了系統(tǒng)的分析,包括功能缺陷,數(shù)據(jù)缺陷,接口缺陷和界面缺陷等,結(jié)合學(xué)習(xí)借鑒別人的測(cè)試心得和經(jīng)驗(yàn),總結(jié)出軟件常見缺陷表,程序常見錯(cuò)誤表等,后面再對(duì)類似軟件進(jìn)行測(cè)試時(shí),就可以根據(jù)這些表中的項(xiàng)目來(lái)設(shè)計(jì)測(cè)試用例。錯(cuò)誤推測(cè)法

錯(cuò)誤推測(cè)法設(shè)計(jì)的測(cè)試用例對(duì)軟件缺陷的命中率較高,但很好的運(yùn)用錯(cuò)誤推測(cè)法,除了需要經(jīng)驗(yàn)積累之外,還需要測(cè)試人員非常熟悉被測(cè)軟件系統(tǒng)的用戶需求、業(yè)務(wù)流程、軟件特點(diǎn)等,并具有良好的問題分析能力和洞察力,尤其是遇到原來(lái)沒有測(cè)試過的軟件類型時(shí),由于沒有太多的經(jīng)驗(yàn)可以借鑒,就非常需要測(cè)試人員充分發(fā)揮自己的能力和水平,包括創(chuàng)新性思維,只有這樣,才能推測(cè)出軟件哪些地方可能會(huì)不符合用戶需求,可能會(huì)出錯(cuò)等。錯(cuò)誤推測(cè)法無(wú)法保證測(cè)試的覆蓋率,通常不宜單獨(dú)應(yīng)用,而是作為對(duì)其他方法的一種補(bǔ)充。登錄測(cè)試錯(cuò)誤推測(cè)法應(yīng)用實(shí)例

對(duì)于登錄功能,采用錯(cuò)誤推測(cè)法,應(yīng)對(duì)以下情況有針對(duì)性的進(jìn)行測(cè)試。登錄測(cè)試錯(cuò)誤推測(cè)法應(yīng)用實(shí)例1、采用空字符串進(jìn)行登錄2、采用空格字符串進(jìn)行登錄3、輸入的登錄名和密碼前后存在空格是否能夠正常登錄4、登錄時(shí)輸入SQL代碼進(jìn)行注入式攻擊,會(huì)不會(huì)被攔截5、輸入的密碼是否加密顯示登錄測(cè)試錯(cuò)誤推測(cè)法應(yīng)用實(shí)例6、密碼能否復(fù)制粘貼7、用戶在注銷之后是否能夠馬上再次登錄8、是否允許同一賬號(hào)在不同的客戶端重復(fù)登錄9、用戶名和密碼不區(qū)分大小寫10、明確提示用戶名錯(cuò)誤,明確提示密碼錯(cuò)誤數(shù)據(jù)表操作測(cè)試錯(cuò)誤推測(cè)法應(yīng)用實(shí)例

現(xiàn)在各種信息系統(tǒng)應(yīng)用非常廣泛,信息系統(tǒng)后端一般都是數(shù)據(jù)庫(kù)和數(shù)據(jù)表,對(duì)于數(shù)據(jù)表操作測(cè)試,采用錯(cuò)誤推測(cè)法,應(yīng)對(duì)以下情況有針對(duì)性的進(jìn)行測(cè)試1、對(duì)空數(shù)據(jù)表執(zhí)行刪除記錄操作2、重復(fù)刪除記錄3、添加兩條相同的記錄數(shù)據(jù)表操作測(cè)試錯(cuò)誤推測(cè)法應(yīng)用實(shí)例4、無(wú)條件查詢能否執(zhí)行5、查詢關(guān)鍵字之間是否可用連接符,是否能輸入SQL代碼6、輸入正確的查詢條件,并在前面加上空格,看查詢是否能正確地執(zhí)行7、是否支持模糊查詢,對(duì)模糊查詢有沒有限制8、數(shù)據(jù)操作出錯(cuò)后的提示會(huì)不會(huì)泄露敏感信息跟具體軟件有關(guān)的錯(cuò)誤推測(cè)法應(yīng)用

有一個(gè)銷售管理軟件,它有進(jìn)貨、銷售、退貨、統(tǒng)計(jì)報(bào)表等業(yè)務(wù)功能,以下情況容易出錯(cuò),需要有針對(duì)性的測(cè)試:1、系統(tǒng)各種角色和用戶如總經(jīng)理、各部門經(jīng)理、營(yíng)業(yè)員等,他們的權(quán)限分配是否合理恰當(dāng),既要賦予他們完成工作應(yīng)當(dāng)具有的系統(tǒng)操作權(quán)限,又要避免權(quán)限過大,可能訪問到職責(zé)之外的數(shù)據(jù),可能進(jìn)行職責(zé)之外的操作。跟具體軟件有關(guān)的錯(cuò)誤推測(cè)法應(yīng)用2、顧客退回的貨物,有沒有回到庫(kù)存,以便能再次銷售3、顧客退貨后,該筆交易是不是仍然統(tǒng)計(jì)到了當(dāng)日交易報(bào)表4、系統(tǒng)意外崩潰后能否恢復(fù)到正確的狀態(tài),如斷電5、同一賬號(hào)能否同時(shí)在多個(gè)客戶端重復(fù)登錄和操作跟具體軟件有關(guān)的錯(cuò)誤推測(cè)法應(yīng)用6、系統(tǒng)是否有統(tǒng)一的時(shí)鐘,若無(wú),如何確定各個(gè)終端交易的時(shí)間,若有,能否保證實(shí)現(xiàn)。7、系統(tǒng)是否允許邊營(yíng)業(yè)邊盤點(diǎn),若允許,盤點(diǎn)時(shí)對(duì)交易的影響是否嚴(yán)重。8、系統(tǒng)每天的數(shù)據(jù)增量有多大,過多久數(shù)據(jù)會(huì)超過現(xiàn)有的存儲(chǔ)容量。9、商品信息變更時(shí),數(shù)據(jù)庫(kù)中數(shù)據(jù)能否保持一致性。

本節(jié)內(nèi)容就講到這里,謝謝,再見!軟件質(zhì)量保證與測(cè)試3.5

判定表驅(qū)動(dòng)法第3章黑盒測(cè)試SoftwareQualityAssuranceandTesting什么是判定表

判定表(DecisionTable)也叫決策表,是一種邏輯分析和表達(dá)工具,用于分析和表達(dá)多個(gè)輸入條件,在不同的取值組合下,會(huì)分別執(zhí)行哪些不同的操作。

例如,有一個(gè)“閱讀指南”,它會(huì)對(duì)讀者提三個(gè)問題,讀者對(duì)每一個(gè)問題只需要簡(jiǎn)單的回答是或否,“閱讀指南”會(huì)根據(jù)讀者的回答,給出閱讀建議。三個(gè)問題,每個(gè)問題有兩種答案,那么不同的答案組合共有2*2*2=8個(gè),為分析和表達(dá)這8種條件組合情況和相應(yīng)的閱讀建議,可以采用如下的表格:判定表

在程序設(shè)計(jì)發(fā)展的初期,判定表就已被當(dāng)作編寫程序的輔助工具了。判定表可以把多個(gè)條件的組合情況以及復(fù)雜的邏輯關(guān)系表達(dá)得既條理清楚又具體明確,能將復(fù)雜的問題按照各種可能的情況進(jìn)行分解并全部列舉出來(lái),然后給出應(yīng)當(dāng)執(zhí)行的操作,做到既簡(jiǎn)潔明了又避免遺漏。在程序規(guī)格中,若不同操作的實(shí)施依賴于多個(gè)邏輯條件的不同組合,那么就可以考慮使用判定表來(lái)進(jìn)行分析和表達(dá)。判定表一個(gè)判定表由四部分組成,分別是:條件樁:列出問題的所有條件,通常認(rèn)為條件的次序無(wú)關(guān)緊要?jiǎng)幼鳂叮毫谐鏊锌赡艿牟僮?,通常這些操作的排列順序沒有約束條件項(xiàng):列出各個(gè)條件的具體取值動(dòng)作項(xiàng):列出在各個(gè)條件的具體取值下,應(yīng)該采取的具體的動(dòng)作條件樁動(dòng)作樁條件項(xiàng)動(dòng)作項(xiàng)判定表

判定表中的每一列稱為一條規(guī)則。也就是說,一個(gè)特定的條件取值組合及其相應(yīng)要執(zhí)行的動(dòng)作稱為一條規(guī)則。一條規(guī)則包含具體的條件項(xiàng)和動(dòng)作項(xiàng),定義了動(dòng)作在什么條件下發(fā)生。顯然,判定表中列出了多少組不同的條件取值組合,就會(huì)有多少條規(guī)則。從處理邏輯上說,判定表可以把復(fù)雜的程序處理邏輯分解為多條處理規(guī)則,以便于我們對(duì)程序進(jìn)行分析和理解。條件樁條件項(xiàng)動(dòng)作樁動(dòng)作項(xiàng)規(guī)則判定表判定表

對(duì)一個(gè)判定表的要求

互斥性:各個(gè)列互斥,一種輸入情況只屬于某一列,不能屬于多個(gè)列。據(jù)此設(shè)計(jì)的測(cè)試用例,不會(huì)出現(xiàn)重復(fù)或者說冗余。完備性:任何一種輸入情況一定屬于某一列。據(jù)此設(shè)計(jì)的測(cè)試用例,是完備的。有限項(xiàng)判定表和擴(kuò)展項(xiàng)判定表

根據(jù)條件取值的個(gè)數(shù),判定表又可以分為有限項(xiàng)判定表和擴(kuò)展項(xiàng)判定表。有限項(xiàng)判定表:每個(gè)條件只有兩個(gè)取值,如Y/N,T/F,1/0。擴(kuò)展項(xiàng)判定表:條件項(xiàng)的取值大于2個(gè),可以是很多個(gè)。

判定表的建立步驟2、列出所有的條件樁和動(dòng)作樁;3、填入條件的不同取值組合;4、填入具體動(dòng)作,得到初始判定表;5、化簡(jiǎn),合并一些具有相同動(dòng)作的相似規(guī)則。判定表的建立步驟化簡(jiǎn)就是將規(guī)則合并。如果有兩條或多條規(guī)則具有相同的動(dòng)作,并且它們的條件項(xiàng)很相似,則可以考慮看能不能把這些規(guī)則合并為1條規(guī)則,從而使得判定表得到簡(jiǎn)化。

有一種化簡(jiǎn)較為常見,我們來(lái)看一個(gè)例子。判定表的化簡(jiǎn)

某有限項(xiàng)判定表有三個(gè)條件,有兩條規(guī)則前兩個(gè)條件取值相同,只有一個(gè)條件取值不同,但不管這個(gè)條件取什么值動(dòng)作都一樣,這說明這個(gè)條件在另外兩個(gè)條件取當(dāng)前值的前提下對(duì)結(jié)果不產(chǎn)生影響,此時(shí)可以把這兩條規(guī)則合并成1條規(guī)則,無(wú)關(guān)的條件其取值可用橫線填充。判定表的化簡(jiǎn)

得到判定表,對(duì)我們的軟件測(cè)試有什么用呢?實(shí)際上,判定表中每一條規(guī)則就是程序的一種處理邏輯,我們?yōu)槊恳粭l規(guī)則設(shè)計(jì)一個(gè)測(cè)試用例,來(lái)對(duì)程序進(jìn)行測(cè)試,就相當(dāng)于測(cè)試了程序的各種處理邏輯。為每一條規(guī)則設(shè)計(jì)測(cè)試用例時(shí),條件項(xiàng)構(gòu)成了測(cè)試用例的輸入,相應(yīng)的動(dòng)作項(xiàng)則是預(yù)期的輸出結(jié)果。判定表驅(qū)動(dòng)法判定表驅(qū)動(dòng)法輸入條件輸出結(jié)果測(cè)試輸入預(yù)期結(jié)果測(cè)試用例條件樁動(dòng)作樁條件項(xiàng)動(dòng)作項(xiàng)

我們來(lái)看一個(gè)判定表驅(qū)動(dòng)法實(shí)例。程序規(guī)格要求如下:“……對(duì)功率大于50馬力并且維修記錄不全,或者已運(yùn)行10年以上的機(jī)器,應(yīng)給予優(yōu)先的維修處理……”,假定,“維修記錄不全”和“優(yōu)先維修處理”均已在別處有更嚴(yán)格的定義。下面按照5個(gè)步驟來(lái)建立判定表。判定表驅(qū)動(dòng)法實(shí)例①確定規(guī)則的條數(shù)。這里有3個(gè)條件,每個(gè)條件有兩個(gè)取值,故應(yīng)有:

2*2*2=8條規(guī)則。②列出所有的條件樁和動(dòng)作樁。條件樁有三項(xiàng):功率大于50馬力、維修記錄不全、已運(yùn)行10年以上動(dòng)作樁有兩項(xiàng):給于優(yōu)先處理、做其他處理判定表驅(qū)動(dòng)法實(shí)例確定規(guī)則的條數(shù)、列出所有的條件樁和動(dòng)作樁:③填入條件項(xiàng)。條件項(xiàng)共有8種不同的組合,把它們填入表中。④填入動(dòng)作項(xiàng),得到初始判定表。根據(jù)程序規(guī)格要求,把每種條件組合應(yīng)執(zhí)行的操作填入表中相應(yīng)的位置,這樣便得到如圖所示的初始判定表。判定表驅(qū)動(dòng)法實(shí)例填入條件項(xiàng)和動(dòng)作頂,得到初始判定表:⑤化簡(jiǎn)。得到的初始判定表中,規(guī)則1、2可以合并;5、7可以合并;6、8可以合并。合并相似規(guī)則后得到最終的判定表。判定表驅(qū)動(dòng)法實(shí)例合并相似規(guī)則后得到最終的判定表:

接下來(lái),我們根據(jù)最終判定表的5條規(guī)則,來(lái)設(shè)計(jì)5個(gè)測(cè)試用例,然后再用設(shè)計(jì)好的測(cè)試用例來(lái)對(duì)軟件進(jìn)行測(cè)試即可。按照最終判定表的5條規(guī)則,設(shè)計(jì)的測(cè)試用例如表所示。判定表驅(qū)動(dòng)法實(shí)例判定表驅(qū)動(dòng)法實(shí)例討論題對(duì)初始判定表,有沒有其它化簡(jiǎn)方案?

當(dāng)然,也不是任何時(shí)候都適合使用判定表驅(qū)動(dòng)法來(lái)設(shè)計(jì)測(cè)試用例,適合使用判定表驅(qū)動(dòng)法的條件如下:1、規(guī)格說明以判定表形式給出,或很容易轉(zhuǎn)換成判定表。2、條件的排列順序不會(huì)也不影響執(zhí)行哪些操作。判定表驅(qū)動(dòng)法3、規(guī)則的排列順序不會(huì)也不影響執(zhí)行哪些操作。4、每當(dāng)某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗(yàn)別的規(guī)則。5、如果某一規(guī)則得到滿足要執(zhí)行多個(gè)操作,這些操作的執(zhí)行順序無(wú)關(guān)緊要。判定表驅(qū)動(dòng)法本節(jié)內(nèi)容就講到這里,謝謝,再見!軟件質(zhì)量保證與測(cè)試3.6因果圖法第3章黑盒測(cè)試SoftwareQualityAssuranceandTesting因果圖

因果圖是一種將多個(gè)原因和不同結(jié)果之間的對(duì)應(yīng)關(guān)系用圖來(lái)表達(dá)的工具。因果圖的優(yōu)點(diǎn)是可以用圖解的形式,直觀的表達(dá)輸入條件的組合、約束關(guān)系和輸出結(jié)果之間的因果關(guān)系,因果圖一般和判定表結(jié)合起來(lái)使用。程序輸入輸出程序原因結(jié)果因果圖法

因果圖法是指,從用自然語(yǔ)言描述的程序規(guī)格說明描述中找出因和果,用因果圖來(lái)表達(dá)它們的邏輯關(guān)系,因是輸入條件,果是輸出或程序狀態(tài)的改變,也就是表達(dá)當(dāng)輸入是什么的情況下,結(jié)果會(huì)是什么?然后根據(jù)因果圖寫出判定表,再由判定表來(lái)設(shè)計(jì)測(cè)試用例的方法。程序規(guī)格因果圖判定表測(cè)試用例因果圖法如果由程序規(guī)格說明可以較為容易的得出判定表,那就不必先畫因果圖,而是可以直接利用判定表驅(qū)動(dòng)法來(lái)設(shè)計(jì)測(cè)試用例了,但在較為復(fù)雜的問題中,因果圖法常常是十分有效的。

例如:在輸入條件比較多的情況下,直接使用判定表可能會(huì)產(chǎn)生過多的條件組合,從而導(dǎo)致判定表的列數(shù)太多。實(shí)際上,這些條件之間可能會(huì)存在約束條件,所以很多條件的組合是無(wú)效的,也就是說,它們?cè)谂卸ū碇型耆嵌嘤嗟?。此時(shí),可先畫出因果圖,下一步根據(jù)因果圖畫出判定表時(shí),就可以有意識(shí)地排除掉這些無(wú)效的條件組合,從而會(huì)使判定表的列數(shù)大幅度減少。因果圖法因果圖的畫法

在因果圖中,通常:用Ci表示原因,置于圖的左部;用Ei表示結(jié)果,置于圖的右部。Ci和Ei均可取值0或1,0表示某狀態(tài)不出現(xiàn),1表示某狀態(tài)出現(xiàn)。原因和結(jié)果之間以直線連接。①恒等:若原因出現(xiàn),則結(jié)果出現(xiàn);若原因不出現(xiàn),則結(jié)果也不出現(xiàn)。②非(~):若原因出現(xiàn),則結(jié)果不出現(xiàn);若原因不出現(xiàn),則結(jié)果出現(xiàn)。(1)關(guān)系

或(∨):若幾個(gè)原因中有1個(gè)出現(xiàn),則結(jié)果出現(xiàn);若幾個(gè)原因都不出現(xiàn),則結(jié)果不出現(xiàn)。

④與(∧):若幾個(gè)原因都出現(xiàn),結(jié)果才出現(xiàn)。若其中有1個(gè)原因不出現(xiàn),則結(jié)果不出現(xiàn)。(1)關(guān)系(2)約束

各個(gè)輸入條件相互之間還可能存在某種關(guān)系,稱為約束。例如:某些輸入條件不可能同時(shí)出現(xiàn)。輸出狀態(tài)之間也往往存在約束。在因果圖中,用特定的符號(hào)標(biāo)明這些約束。A.輸入條件的約束有以下4類:

①E約束(互斥):表示不同時(shí)為1,即a,b,c中至多只有一個(gè)1;②I約束(包含):表示至少有一個(gè)1,即a,b,c中不同時(shí)為0;③O約束(唯一):表示a,b,c中有且僅有一個(gè)1;

④R約束(要求):表示若a=1,則b必須為1。即不可能a=1且b=0;(2)約束acbEacbacbROIab唯一互斥包含要求(2)約束(2)約束B.輸出條件約束類型

輸出條件的約束只有M約束(屏蔽):若結(jié)果a是1,則結(jié)果b強(qiáng)制為0。Mab屏蔽

對(duì)于規(guī)模比較大的程序來(lái)說,由于輸入條件的組合數(shù)太大,所以很難整體上使用一個(gè)因果圖。此時(shí)可以把它劃分為若干部分,然后分別對(duì)每個(gè)部分畫出因果圖。因果圖的畫法采用因果圖法設(shè)計(jì)測(cè)試用例的步驟(1)分析軟件規(guī)格說明描述中,哪些是原因,原因即輸入條件或輸入條件的等價(jià)類,哪些是結(jié)果,結(jié)果即操作和輸出,并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識(shí)符。采用因果圖法設(shè)計(jì)測(cè)試用例的步驟

需要注意的是原因和結(jié)果都需要原子化。例如:職稱是工程師的男職工基本工資加100,獎(jiǎng)金加50。這一條軟件規(guī)格說明描述中,原因有兩個(gè):

職稱=工程師,

性別=男;結(jié)果也是兩個(gè):

基本工資=基本工資+100,

獎(jiǎng)金=獎(jiǎng)金+50。(2)分析軟件規(guī)格說明描述中的語(yǔ)義,找出原因與結(jié)果之間,原因與原因之間的關(guān)系,并根據(jù)這些關(guān)系,畫出因果圖。

(3)標(biāo)明約束條件。由于某種限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn),所以為表明這些特殊的情況,應(yīng)在因果圖上使用標(biāo)準(zhǔn)的符號(hào)來(lái)標(biāo)記約束條件。

采用因果圖法設(shè)計(jì)測(cè)試用例的步驟(4)把因果圖轉(zhuǎn)換為判定表。(5)根據(jù)判定表設(shè)計(jì)測(cè)試用例。采用因果圖法設(shè)計(jì)測(cè)試用例的步驟判定表測(cè)試用例因果圖判定表因果圖法測(cè)試用例設(shè)計(jì)實(shí)例

有一個(gè)處理單價(jià)為5角錢的飲料自動(dòng)售貨機(jī)軟件。請(qǐng)用因果圖法為此軟件設(shè)計(jì)測(cè)試用例。其規(guī)格說明如下:若投入5角錢或1元錢的硬幣,按下〖橙汁〗或〖啤酒〗的按鈕,則相應(yīng)的飲料就送出來(lái)。若售貨機(jī)沒有零錢找,則一個(gè)顯示〖零錢找完〗的紅燈亮,這時(shí)在投入1元硬幣并按下按鈕后,飲料不送出來(lái)而且1元硬幣也退出來(lái);若有零錢找,則顯示〖零錢找完〗的紅燈滅,在送出飲料的同時(shí)退還5角硬幣。

(1)分析這一自動(dòng)售貨機(jī)軟件的規(guī)格說明,列出原因和結(jié)果。原因:1.售貨機(jī)有零錢找2.投入1元硬幣

3.投入5角硬幣4.按下橙汁按鈕5.按下啤酒按鈕結(jié)果:1.售貨機(jī)〖零錢找完〗燈亮2.退還1元硬幣

3.退還5角硬幣4.送出橙汁飲料

5.送出啤酒飲料因果圖法測(cè)試用例設(shè)計(jì)實(shí)例(2)畫出因果圖。原因在左,結(jié)果在右,根據(jù)軟件規(guī)格說明把原因和結(jié)果連接起來(lái)。在因果圖中還可以引入一些中間節(jié)點(diǎn),表示處理的中間狀態(tài)。本題的中間結(jié)點(diǎn)如下:1.投入1元硬幣且按下飲料按鈕2.已按下按鈕(〖橙汁〗或〖啤酒〗)3.應(yīng)當(dāng)找5角零錢并且售貨機(jī)有零錢找4.錢已付清因果圖法測(cè)試用例設(shè)計(jì)實(shí)例(3)在因果圖中加上約束條件因果圖法測(cè)試用例設(shè)計(jì)實(shí)例(4)把因果圖轉(zhuǎn)換成判定表因果圖法測(cè)試用例設(shè)計(jì)實(shí)例(5)根據(jù)判定表設(shè)計(jì)測(cè)試用例

因果圖法測(cè)試用例設(shè)計(jì)實(shí)例

在判定表中,陰影部分表示因違反約束條件的不可能出現(xiàn)的情況,應(yīng)刪去。第16列與第32列因什么動(dòng)作也沒做,也應(yīng)刪去。最后可根據(jù)剩下的16列,來(lái)設(shè)計(jì)測(cè)試用例。本節(jié)內(nèi)容就講到這里,謝謝,再見!軟件質(zhì)量保證與測(cè)試3.7場(chǎng)景法第3章黑盒測(cè)試SoftwareQualityAssuranceandTesting場(chǎng)景法

本章前面幾節(jié)介紹的黑盒測(cè)試方法,主要是針對(duì)單個(gè)功能點(diǎn),不涉及到多個(gè)操作步驟的連續(xù)執(zhí)行,和多個(gè)功能點(diǎn)的組合,無(wú)法對(duì)涉及用戶操作的動(dòng)態(tài)執(zhí)行過程進(jìn)行測(cè)試覆蓋,對(duì)于復(fù)雜的軟件系統(tǒng),不僅要對(duì)單個(gè)功能點(diǎn)做測(cè)試,更重要的是,需要從全局把握整個(gè)系統(tǒng)的業(yè)務(wù)流程,確保在有多個(gè)功能點(diǎn)交叉,存在復(fù)雜約束的情況下,測(cè)試可以充分覆蓋到程序執(zhí)行的各種情況。場(chǎng)景法

場(chǎng)景法是通過運(yùn)用場(chǎng)景來(lái)對(duì)系統(tǒng)的功能點(diǎn)或業(yè)務(wù)流程進(jìn)行覆蓋,從而提高測(cè)試效果的一種測(cè)試用例設(shè)計(jì)方法方法。提出這種測(cè)試思想的是Rational公司,在RUP2000中文版當(dāng)中有對(duì)場(chǎng)景法詳盡的解釋和應(yīng)用實(shí)例。這種在軟件設(shè)計(jì)方面的思想,被引入到軟件測(cè)試中,可以描繪出事件觸發(fā)時(shí)的情景,有利于測(cè)試設(shè)計(jì)者設(shè)計(jì)測(cè)試用例,同時(shí)使測(cè)試用例更容易理解和執(zhí)行。事件流現(xiàn)在的軟件幾乎都是用事件來(lái)觸發(fā)控制流程的,如:我們申請(qǐng)一個(gè)項(xiàng)目,需先提交審批單據(jù),再由部門經(jīng)理審批,審核通過后由總經(jīng)理來(lái)最終審批,如果部門經(jīng)理審核不通過,就直接退回。提交申請(qǐng)部門審批總經(jīng)理審批事件事件流事件流

多個(gè)事件的依次觸發(fā)形成事件流,場(chǎng)景法中把事件流分為基本流和備用流,基本流指程序每個(gè)步驟都“正?!边\(yùn)作時(shí)所經(jīng)過的執(zhí)行路徑,它是程序執(zhí)行最簡(jiǎn)單的路徑,程序只有一個(gè)基本流。提交申請(qǐng)部門審批總經(jīng)理審批事件事件流事件流

備選流是程序執(zhí)行可能經(jīng)過,也可能不經(jīng)過的路徑,可以有多個(gè),是基本流之外可選的或備選的情況,一般對(duì)應(yīng)的是異常的事件流程。提交申請(qǐng)部門審批總經(jīng)理審批事件事件流基本流和備選流左圖中用黑色的直線表示基本流,用不同顏色的弧線表示備選流。一個(gè)備選流可能從基本流開始,在某個(gè)特定條件下執(zhí)行,然后重新加入基本流中,如備選流1和3;也可能起源于另一個(gè)備選流,如備選流2,或者終止執(zhí)行而不再重新加入到某個(gè)流,如備選流2和4。

從基本流開始,通過描述經(jīng)過的路徑可以確定某一個(gè)場(chǎng)景。場(chǎng)景是事件流的一個(gè)實(shí)例,它對(duì)應(yīng)用戶執(zhí)行軟件的一個(gè)操作序列。如圖:三個(gè)場(chǎng)景。還可以有更多的場(chǎng)景。場(chǎng)景......場(chǎng)景

場(chǎng)景法要求通過遍歷基本流和所有的備選流來(lái)完成整個(gè)場(chǎng)景。場(chǎng)景主要包括4種主要的類型:

1、正常的用例場(chǎng)景,

2、備選的用例場(chǎng)景,

3、異常的用例場(chǎng)景,

4、假定推測(cè)的場(chǎng)景。場(chǎng)景法要求根據(jù)軟件需求規(guī)格說明書中的用例所包含的事件流信息,設(shè)計(jì)場(chǎng)景覆蓋所有的事件流,并設(shè)計(jì)相應(yīng)的測(cè)試用例,使每個(gè)場(chǎng)景至少發(fā)生一次。場(chǎng)景法測(cè)試用例測(cè)試用例測(cè)試用例......場(chǎng)景法場(chǎng)景法設(shè)計(jì)步驟如下:1、根據(jù)說明,描述出程序的基本流及各項(xiàng)備選流;2、根據(jù)基本流和各項(xiàng)備選流生成不同的場(chǎng)景;3、對(duì)每一個(gè)場(chǎng)景設(shè)計(jì)生成相應(yīng)的測(cè)試用例;4、對(duì)生成的所有測(cè)試用例重新復(fù)審,去掉多余的測(cè)試用例,測(cè)試用例確定后,對(duì)每一個(gè)測(cè)試用例確定測(cè)試數(shù)據(jù)值。場(chǎng)景法場(chǎng)景1:基本流;場(chǎng)景2:基本流、備選流1;場(chǎng)景3:基本流、備選流1、備選流2;場(chǎng)景4:基本流、備選流3;場(chǎng)景5:基本流、備選流3、備選流1;場(chǎng)景6:基本流、備選流3、備選流4;場(chǎng)景7:基本流、備選流4;場(chǎng)景8:基本流、備選流3、備選流1、備選流2。注:場(chǎng)景5、6和8只考慮了備選流3循環(huán)執(zhí)行一次的情況。

除上述八個(gè)場(chǎng)景之外,還可以構(gòu)建更多的場(chǎng)景,場(chǎng)景的構(gòu)建實(shí)際上等同于業(yè)務(wù)執(zhí)行路徑的構(gòu)建,備選流越多,則執(zhí)行路徑越多,場(chǎng)景越多,有時(shí),同樣的備選流按照不同的順序執(zhí)行就可能形成不同的業(yè)務(wù)流程和執(zhí)行結(jié)果。由此帶來(lái)的問題是:當(dāng)備選流數(shù)量很多時(shí),將導(dǎo)致場(chǎng)景爆炸。場(chǎng)景爆炸

如何選取典型場(chǎng)景進(jìn)行測(cè)試,以滿足測(cè)試的完備性和無(wú)冗余性要求,基本原則如下:1、最少場(chǎng)景數(shù)等于基本流和備選流的總數(shù)。2、有且唯一有一個(gè)場(chǎng)景僅包含基本流3、對(duì)應(yīng)某個(gè)備選流,至少應(yīng)有一個(gè)場(chǎng)景覆蓋它,并且在該場(chǎng)景中,應(yīng)盡量避免覆蓋其它的備選流。場(chǎng)景選取程序規(guī)格:

用戶在一個(gè)在線購(gòu)物網(wǎng)站購(gòu)物,需要成功登錄到系統(tǒng),選購(gòu)后在線購(gòu)買,在線上支付。支付成功后生成訂單,完成購(gòu)物。場(chǎng)景法應(yīng)用實(shí)例——在線購(gòu)物網(wǎng)站1、根據(jù)說明,描述出程序的基本流及各項(xiàng)備選流。場(chǎng)景法應(yīng)用實(shí)例——在線購(gòu)物網(wǎng)站賬號(hào)不存在登錄失敗2、根據(jù)基本流和各項(xiàng)備選流生成不同的場(chǎng)景。場(chǎng)景1:基本流場(chǎng)景2:基本流,備選流1場(chǎng)景3:基本流,備選流2場(chǎng)景4:基本流,備選流3場(chǎng)景5:基本流,備選流4場(chǎng)景法應(yīng)用實(shí)例——在線購(gòu)物網(wǎng)站3、對(duì)每一個(gè)場(chǎng)景生成相應(yīng)的測(cè)試用例。場(chǎng)景法應(yīng)用實(shí)例——在線購(gòu)物網(wǎng)站設(shè)有一合法賬號(hào)abc;密碼為123;賬戶余額200。本節(jié)內(nèi)容就講到這里,謝謝,再見!軟件質(zhì)量保證與測(cè)試3.8正交實(shí)驗(yàn)法第3章黑盒測(cè)試SoftwareQualityAssuranceandTesting應(yīng)用背景

在利用因果圖來(lái)設(shè)計(jì)測(cè)試用例時(shí),輸入條件與輸出結(jié)果之間的因果關(guān)系有時(shí)很難從軟件需求規(guī)格說明中得出,或者很多時(shí)候因果關(guān)系非常復(fù)雜,以至于根據(jù)因果圖得到的測(cè)試用例數(shù)目多得驚人,給軟件測(cè)試帶來(lái)沉重的負(fù)擔(dān),為了合理地減少測(cè)試的成本,提高測(cè)試的效率,可利用正交實(shí)驗(yàn)設(shè)計(jì)方法來(lái)進(jìn)行測(cè)試用例的設(shè)計(jì)。情景實(shí)例有一個(gè)網(wǎng)絡(luò)應(yīng)用系統(tǒng),共有100個(gè)功能點(diǎn),現(xiàn)在需要測(cè)試用戶在不同的軟件環(huán)境下打開它時(shí),這些功能點(diǎn)能否正常完成。由于該軟件的用戶可能分布在世界各地,所以軟件執(zhí)行時(shí)的軟件環(huán)境可能是各種各樣的,例如:操作系統(tǒng):WindowsVista,WindowsXP,Windows2000,Windows2003server,Windows7,Linux,Solaris9,Solaris10,MacOS9,MacOSX,……。瀏覽器:IE6.0,IE7.0,FireFox1.5,FireFox2.0,遨游,QQ瀏覽器,360瀏覽器,獵豹瀏覽器,蘋果etc,……。語(yǔ)言:簡(jiǎn)體中文,中文繁體,英文,日文,德文,……。情景實(shí)例經(jīng)測(cè)算,可能的執(zhí)行環(huán)境及其不同版本種類數(shù)量如下:操作系統(tǒng):15

瀏覽器:20

語(yǔ)言:8種如果要在上述執(zhí)行環(huán)境完全組合的情況下,對(duì)所有功能點(diǎn)進(jìn)行測(cè)試,測(cè)試工作量將很大??偟臏y(cè)試任務(wù)算式如下:15x20x8x100=240000正交實(shí)驗(yàn)法為了解決這種因?yàn)榭赡艿臈l件組合太多,難以進(jìn)行全面測(cè)試的問題,可以采用正交實(shí)驗(yàn)法。正交實(shí)驗(yàn)法,又稱為正交設(shè)計(jì)實(shí)驗(yàn)法,或正交設(shè)計(jì)試驗(yàn)法。若有多個(gè)因素的取值變化會(huì)影響某個(gè)事件的結(jié)果,則需要通過實(shí)驗(yàn)進(jìn)行驗(yàn)證,若影響因素個(gè)數(shù)比較多,同時(shí)每一個(gè)因素又有多種取值,那么實(shí)驗(yàn)量將會(huì)非常大。顯然,不能對(duì)每一組可能的數(shù)據(jù)都進(jìn)行實(shí)驗(yàn)。正交實(shí)驗(yàn)法就是一種從大量的實(shí)驗(yàn)數(shù)據(jù)中挑選適量的、有代表性的數(shù)據(jù)進(jìn)行測(cè)試的實(shí)驗(yàn)設(shè)計(jì)方法。正交實(shí)驗(yàn)設(shè)計(jì)方法是依據(jù)Galois理論,從大量的實(shí)驗(yàn)數(shù)據(jù)中挑選適量的,有代表性的數(shù)據(jù),合理地安排實(shí)驗(yàn)的一種科學(xué)實(shí)驗(yàn)設(shè)計(jì)方法。它根據(jù)正交性從全部可能的實(shí)驗(yàn)數(shù)據(jù)中挑選出部分有代表性的數(shù)據(jù)進(jìn)行實(shí)驗(yàn),這些有代表性的數(shù)據(jù)具有“均勻分散,整齊可比”的特點(diǎn),它是一種高效、快速、經(jīng)濟(jì)的實(shí)驗(yàn)設(shè)計(jì)方法。正交實(shí)驗(yàn)法用在軟件測(cè)試上,就是從大量的測(cè)試數(shù)據(jù)中挑選適量的,有代表性的進(jìn)行實(shí)際測(cè)試,從而合理地安排測(cè)試的一種設(shè)計(jì)方法。正交實(shí)驗(yàn)法

實(shí)驗(yàn)工作者在長(zhǎng)期的工作中總結(jié)出一套辦法,創(chuàng)造出所謂的正交表。按照正交表來(lái)安排實(shí)驗(yàn),既能使實(shí)驗(yàn)點(diǎn)分布得很均勻,又能減少實(shí)驗(yàn)次數(shù),而且計(jì)算分析簡(jiǎn)單,能夠清晰地闡明實(shí)驗(yàn)條件與指標(biāo)之間的關(guān)系。用正交表來(lái)安排實(shí)驗(yàn)及分析實(shí)驗(yàn)結(jié)果,這種方法就叫正交實(shí)驗(yàn)設(shè)計(jì)法。簡(jiǎn)單地說,就是前人總結(jié)正交表,后人直接套用。正交實(shí)驗(yàn)法中,把有可能影響實(shí)驗(yàn)結(jié)果的條件稱為因子;把條件取值可能的個(gè)數(shù)稱為因子的水平(或狀態(tài))。正交實(shí)驗(yàn)法

正交表是一整套規(guī)則的設(shè)計(jì)表格,用L為正交表的代號(hào),n為實(shí)驗(yàn)的次數(shù),t為水平數(shù),c為列數(shù),也就是可能安排最多的因素個(gè)數(shù)。正交表的構(gòu)造需要用到組合數(shù)學(xué)和概率學(xué)知識(shí),現(xiàn)在廣泛使用的Ln(tc)類型的正交表構(gòu)造思想比較成熟。正交實(shí)驗(yàn)法

例如L8(41×24)表示在有1個(gè)4水平的因子,4個(gè)2水平的因子的情況下,需要的實(shí)驗(yàn)次數(shù)為8,也就說如果有5個(gè)輸入條件,條件1有4種取值可能,條件2、3、4、5各有2種取值可能,則需要測(cè)試的次數(shù)為8。如果不用正交表,而是對(duì)所有可能的情況都進(jìn)行測(cè)試,則總共需要測(cè)試4*2*2*2*2=64次。通過實(shí)驗(yàn)次數(shù)對(duì)比,可以看出,正交表能有效地、合理地減少需要進(jìn)行的實(shí)驗(yàn)次數(shù),其作用是明顯的。正交實(shí)驗(yàn)法常用的正交表示例L8(41×24)L4(23)因子因子的狀態(tài)

正交表可分為統(tǒng)一水平數(shù)正交表和混合水平數(shù)正交表。統(tǒng)一水平數(shù)正交表:表中各個(gè)因子的水平數(shù)是一樣的;混合水平數(shù)正交表:表中的各個(gè)因子數(shù)的水平數(shù)不同正交表的分類正交實(shí)驗(yàn)法的應(yīng)用方法應(yīng)用正交實(shí)驗(yàn)法時(shí),把被測(cè)對(duì)象的條件因素看成是正交表的因子,各條件因素的取值個(gè)數(shù)看成是因子的水平數(shù),先根據(jù)被測(cè)軟件的規(guī)格說明書找出影響其功能實(shí)現(xiàn)的操作對(duì)象和外部因素,把它們當(dāng)作因子,然后把各個(gè)因子的不同取值當(dāng)作狀態(tài),明確各個(gè)因子的水平數(shù),接下來(lái)選擇合適的正交表;最后利用正交表進(jìn)行各因子的狀態(tài)組合,構(gòu)造有效的測(cè)試輸入數(shù)據(jù)集。正交實(shí)驗(yàn)法的應(yīng)用步驟(1)明確有哪些影響因素(變量)(2)每個(gè)因素有哪幾個(gè)水平(變量的取值可能)(3)選擇一個(gè)合適的正交表(4)把變量的值映射到表中(5)把每一行的各因素水平的組合做為一個(gè)測(cè)試數(shù)據(jù)(6)可以再補(bǔ)充一些其它測(cè)試數(shù)據(jù)。正交實(shí)驗(yàn)法的應(yīng)用步驟(1)明確有哪些影響因素(變量)(2)每個(gè)因素有哪幾個(gè)水平(變量的取值可能)(3)選擇一個(gè)合適的正交表(4)把變量的值映射到表中(5)把每一行的各因素水平的組合做為一個(gè)測(cè)試數(shù)據(jù)(6)可以再補(bǔ)充一些其它測(cè)試數(shù)據(jù)。正交表的選擇

已經(jīng)公開發(fā)布了很多正交表,可以從因特網(wǎng)、數(shù)理統(tǒng)計(jì)書籍、相關(guān)軟件等渠道獲得規(guī)范的正交表。在選擇合適的正交表時(shí),需要考慮因素(變量)的個(gè)數(shù),因素水平(變量的取值)的個(gè)數(shù),和正交表的行數(shù),在有多個(gè)正交表符合需要的情況下,應(yīng)取行數(shù)最少的一個(gè)。

(1)如果因素?cái)?shù)(變量)、水平數(shù)(變量值)都相符,那么直接套用符合需要的正交表即可。

正交表的選擇(2)因子數(shù)和水平數(shù)與正交表不完全吻合,可以遵循下面的原則:正交表的列數(shù)不能小于因子數(shù);正交表的水平數(shù)不能小于因子的最大狀態(tài)數(shù)。正交表的行數(shù)取最小值此時(shí)一般可以采用包含的方法,找出包含該情況的正交表,如果有多個(gè)符合條件的正交表,那么應(yīng)選取行數(shù)最少的正交表。實(shí)例一:“用戶信息輸入”窗口界面測(cè)試。剛好有因素?cái)?shù)、水平數(shù)都符合的正交表。正交實(shí)驗(yàn)法應(yīng)用實(shí)例一

有一個(gè)“用戶信息輸入”窗口界面,我們來(lái)對(duì)它采用正交實(shí)驗(yàn)法進(jìn)行測(cè)試。要測(cè)試的輸入項(xiàng)有3個(gè):姓名、昵稱、手機(jī)號(hào)碼,也就是要考慮的因素有三個(gè);而每個(gè)因素里的狀態(tài)有兩個(gè):填與不填。經(jīng)過分析不難得知,選擇正交表時(shí)應(yīng)滿足以下條件:1、表中的因素?cái)?shù)應(yīng)>=3;2、表中至少有3個(gè)因素?cái)?shù)的水平數(shù)>=2;3、若有多個(gè)正交表符合要求,則選取行數(shù)最少的一個(gè)。從正交表中開始查找,結(jié)果為:L4(23)正交實(shí)驗(yàn)法應(yīng)用實(shí)例一正交表選定后,進(jìn)行變量映射:正交實(shí)驗(yàn)法應(yīng)用實(shí)例一正交表變量映射測(cè)試用例如下:1:填寫姓名、填寫昵稱、填寫手機(jī)號(hào)碼2:填寫姓名、不填昵稱、不填手機(jī)號(hào)碼3:不填姓名、填寫昵稱、不填手機(jī)號(hào)碼4:不填姓名、不填昵稱、填寫手機(jī)號(hào)碼增補(bǔ)測(cè)試用例5:不填姓名、不填昵稱、不填手機(jī)號(hào)碼

如果不用正交實(shí)驗(yàn)法,按3個(gè)因素,每個(gè)因素兩個(gè)水平來(lái)考慮的話,總共應(yīng)有8個(gè)測(cè)試用例,而通過正交實(shí)驗(yàn)法結(jié)合用例增補(bǔ),測(cè)試用例只有5個(gè),這樣就有效減少

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論