第三講功能性測試(一)_第1頁
第三講功能性測試(一)_第2頁
第三講功能性測試(一)_第3頁
第三講功能性測試(一)_第4頁
第三講功能性測試(一)_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、過程過程3 測試設(shè)計測試設(shè)計 內(nèi)容內(nèi)容 測試用例框架的設(shè)計 等價類劃分方法設(shè)計測試用例 邊界值分析方法設(shè)計測試用例 錯誤推測方法設(shè)計測試用例 因果圖方法設(shè)計測試用例 判定表驅(qū)動分析方法設(shè)計測試用例 功能圖分析方法設(shè)計測試用例 正交試驗設(shè)計方法設(shè)計測試用例 場景法設(shè)計測試用例設(shè)計測試用例 系統(tǒng)測試用例的設(shè)計 測試用例的審查3.1 測試用例框架 3.1.1 黑盒測試概述 黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,它是在已知產(chǎn)品所應(yīng)具有的功能,通過測試來檢測每個功能是否都能正常使用。軟件輸入黑盒測試不深入代碼細(xì)節(jié)輸出3.1.1 黑盒測試概述 在測試時,把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)

2、構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性,如圖所示。1黑盒測試主要用于發(fā)現(xiàn)以下情況 重點: 是否有不正確或遺漏了的功能 在接口上,能否正確地接受輸入數(shù)據(jù),能否產(chǎn)生正確地輸出信息 訪問外部信息是否有錯 性能上是否滿足要求 界面是否錯誤,是否不美觀 初始化或終止錯誤2“黑盒”的兩種基本方法 黑盒測試有兩種基本方法,即通過測試和失敗測試。 在進(jìn)行通過測試時,實際上是確認(rèn)軟件能做什么,而不會去考驗其能力如何。軟件測試員只運用最簡單,最直觀的測試案例。

3、 在設(shè)計和執(zhí)行測試案例時,總是先要進(jìn)行通過測試。在進(jìn)行破壞性試驗之前,看一看軟件基本功能是否能夠?qū)崿F(xiàn)。這一點很重要,否則在正常使用軟件時就會奇怪地發(fā)現(xiàn),為什么會有那么多的軟件缺陷出現(xiàn)? 在確信了軟件正確運行之后,就可以采取各種手段通過搞“垮”軟件來找出缺陷。純粹為了破壞軟件而設(shè)計和執(zhí)行的測試案例,被稱為失敗測試或迫使出錯測試。3黑盒測試的優(yōu)、缺點 黑盒測試的優(yōu)點有: 1)比較簡單,不需要了解程序內(nèi)部的代碼及實現(xiàn); 2)與軟件的內(nèi)部實現(xiàn)無關(guān); 3)從用戶角度出發(fā),能很容易的知道用戶會用到哪些功能,會遇到哪些問題; 4)基于軟件開發(fā)文檔,所以也能知道軟件實現(xiàn)了文檔中的哪些功能; 5)在做軟件自動化

4、測試時較為方便。 黑盒測試的缺點有: 1)不可能覆蓋所有的代碼,覆蓋率較低,大概只能達(dá)到總代碼量的30%; 2)自動化測試的復(fù)用性較低。3.1.2 測試用例 測試用例就是test case,是為了系統(tǒng)地測試一個功能而由測試工程師寫下的文檔或腳本他是為某個特定測試目標(biāo)而設(shè)定的,是測試操作過程序列、條件、期望結(jié)果及相關(guān)數(shù)據(jù)的一個集合。1. 為什么需要測試用例(一)為什么需要測試用例(一) 其實,測試用例不是必須的。 如果你是一個特別有想法的人,或者在軟件測試方面很有天賦,每天都能找到其他人幾天時間才能找到的bug,那么你可以不用測試用例,如果我是test manager的話,就會讓你做一個ad-h

5、oc (隨機測試、猴子爬桿)tester,因為我已經(jīng)覺得你足夠好了,不需要測試用例來指導(dǎo)你了,因為你很有想法,有自己的測試思路。 但是不幸的是,你可能不是這樣的人,或者你身上存在著幾種情況,就最好使用測試用例。 1. 為什么需要測試用例(二)為什么需要測試用例(二) 1.你工作不主動,你需要測試用例來催著你去工作; 2.你測試時總感覺思維很混亂,或者總感覺有些功能沒有測到,而一些功能已經(jīng)測過好幾遍了,這樣測試用例能夠幫你理清頭緒,進(jìn)行比較系統(tǒng)的測試,不會有太多的重復(fù),也不會讓你的測試工作產(chǎn)生遺漏; 3. 在測試時間緊迫的情況下,你不知道要測什么,或者要先測試那些功能,測試用例這個時候就可以幫你

6、分清重點,因為測試用例寫完后一定要標(biāo)重要程度和優(yōu)先級,以防止在緊急的情況下有重點的工作。 1. 為什么需要測試用例(三)為什么需要測試用例(三) 4.你積極的工作狀態(tài)不能持續(xù),這個時候測試用例又幫你一個大忙,因為測試用例上面操作步驟和預(yù)期結(jié)果都已經(jīng)寫好了,你根本不用思考,只需要照著上面做就行了。 5.測試用例是你工作的見證,也是你每次測試以后向上級匯報的依據(jù),有了測試用例,我知道我這次測試了那些功能,還有那些功能沒有測到,對上級是一個交代,也做到了自己心中有數(shù)。 6.測試用例可以記錄你的靈感。如果靈感突發(fā),有一個新穎的測試思路,你可以寫成測試用例,或許這個測試用例就是挽救整個軟件的重大功臣。

7、7.測試用例有助于不斷的改進(jìn)工作。因為通過測試用例,可以知道哪些測試用例測出bug的機率比較大,還有那些測試用例需要改進(jìn),對我們以后工作的改進(jìn)提供了依據(jù)。2.測試用例設(shè)計考慮因素測試用例設(shè)計考慮因素 (一) 1.測試用例的基本格式 軟件測試用例的基本要素包括測試用例編號、測試標(biāo)題、重要級別、測試輸入、操作步驟、預(yù)期結(jié)果,下面逐一介紹 : 用例編號: 測試用例的編號有一定的規(guī)則,比如系統(tǒng)測試用例的編號這樣定義規(guī)則: project1-st-001 ,命名規(guī)則是項目名稱測試階段類型(系統(tǒng)測試階段)編號。定義測試用例編號,便于查找測試用例,便于測試用例的跟蹤。 2.測試用例設(shè)計考慮因素測試用例設(shè)計考

8、慮因素 (二) 測試標(biāo)題: 對測試用例的描述,測試用例標(biāo)題應(yīng)該清楚表達(dá)測試用例的用途。比如 “ 測試用戶登錄時輸入錯誤密碼時,軟件的響應(yīng)情況 ” 。 重要級別: 定義測試用例的優(yōu)先級別,可以籠統(tǒng)的分為 “ 高 ” 和 “ 低 ” 兩個級別。一般來說,如果軟件需求的優(yōu)先級為 “ 高 ” ,那么針對該需求的測試用例優(yōu)先級也為 “ 高 ” ;反之亦然。 測試輸入: 提供測試執(zhí)行中的各種輸入條件。根據(jù)需求中的輸入條件,確定測試用例的輸入。測試用例的輸入對軟件需求當(dāng)中的輸入有很大的依賴性,如果軟件需求中沒有很好的定義需求的輸入,那么測試用例設(shè)計中會遇到很大的障礙。 2.測試用例設(shè)計考慮因素測試用例設(shè)計考

9、慮因素 (三) 操作步驟: 提供測試執(zhí)行過程的步驟。對于復(fù)雜的測試用例,測試用例的輸入需要分為幾個步驟完成,這部分內(nèi)容在操作步驟中詳細(xì)列出。 預(yù)期結(jié)果: 提供測試執(zhí)行的預(yù)期結(jié)果,預(yù)期結(jié)果應(yīng)該根據(jù)軟件需求中的輸出得出。如果在實際測試過程中,得到的實際測試結(jié)果與預(yù)期結(jié)果不符,那么測試不通過;反之則測試通過。 2.測試用例設(shè)計考慮因素測試用例設(shè)計考慮因素 (四) 軟件測試用例的設(shè)計主要從上述 6 個域考慮,測試用例的因素還有如下項目: 1 ) 軟件或項目的名稱 2 ) 軟件或項目的版本(內(nèi)部版本號) 3 ) 功能模塊名 4 ) 測試用例的簡單描述,即該用例執(zhí)行的目的或方法 5 ) 測試用例的參考信息

10、(便于跟蹤和參考) 6 ) 本測試用例與其他測試用例間的依賴關(guān)系 7 ) 本用例的前置條件,即執(zhí)行本用例必須要滿足的條件,如對數(shù)據(jù)庫的訪問權(quán)限 8 ) 步驟號、操作步驟描述、測試數(shù)據(jù)描述 9 )開發(fā)人員(必須有)和測試人員(可有可無) 10 )測試執(zhí)行日期(舉例)3.測試用例原則(一) (1)重用同類型項目的測試用例 一般來說,每個軟件公司的項目可以分為固定的幾大類??梢园礃I(yè)務(wù)類型劃分,比如 erp 軟件、產(chǎn)品數(shù)據(jù)管理軟件、通信軟件、地理信息系統(tǒng)軟件等等;可以按軟件結(jié)構(gòu)來劃分,比如 b/s 架構(gòu)的軟件、 c/s 架構(gòu)的軟件、嵌入式軟件等等。參考同類別軟件的測試用例,會有很大的借鑒意義。(2)利

11、用已有的軟件 checklist 每種類型的軟件都有一定的測試規(guī)范,比如, web 軟件系統(tǒng)在系統(tǒng)測試過程中,會有一系列的范式,比如針對 cookie 就會有很多測試點。(3)加強測試用例的評審 測試用例設(shè)計完畢后,最好能夠增加評審過程。如果認(rèn)真操作這個環(huán)節(jié),測試用例中的很多問題都會暴露出來,比如用例設(shè)計錯誤、用例設(shè)計遺漏、用例設(shè)計冗余、用例設(shè)計不充分等等;如果同行評審不充分,那么,在測試執(zhí)行的過程中,上述本應(yīng)在評審階段發(fā)現(xiàn)的測試用例相關(guān)問題,會給測試執(zhí)行帶來大麻煩,甚至導(dǎo)致測試執(zhí)行掛起。 3.測試用例原則(二) (4)定義測試用例的執(zhí)行順序 在測試用例執(zhí)行過程中,你會發(fā)現(xiàn)每個測試用例都對測試

12、環(huán)境有特殊的要求,或者對測試環(huán)境有特殊的影響。因此,定義測試用例的執(zhí)行順序,對測試的執(zhí)行效率影響非常大。 比如某些異常測試用例會導(dǎo)致服務(wù)器頻繁重新啟動,服務(wù)器的每次重新啟動都會消耗大量的時間,導(dǎo)致這部分測試用例執(zhí)行也消耗很多的時間。那么在編排測試用例執(zhí)行順序的時候,應(yīng)該考慮把這部分測試用例放在最后執(zhí)行,如果在測試進(jìn)度很緊張的情況下,如果優(yōu)先執(zhí)行這部分消耗時間的異常測試用例,那么在測試執(zhí)行時間過了大半的時候,測試用例執(zhí)行的進(jìn)度依然是緩慢的,這會影響到測試人員的心情,進(jìn)而導(dǎo)致匆忙地測試后面的測試用例,這樣測試用例的漏測、誤測就不可避免,嚴(yán)重影響了軟件測試效果和進(jìn)度。因而,合理地定義測試用例的執(zhí)行順

13、序是很有必要的。 3.測試用例原則(三) (5)測試用例執(zhí)行 測試用例設(shè)計完畢后,接下來的工作是測試執(zhí)行,測試執(zhí)行中應(yīng)該注意以下幾個問題: 搭建軟件測試環(huán)境,執(zhí)行測試用例 測試用例執(zhí)行過程中,搭建測試環(huán)境是第一步。一般來說,軟件產(chǎn)品提交測試后,開發(fā)人員應(yīng)該提交一份產(chǎn)品安裝指導(dǎo)書,在指導(dǎo)書中詳細(xì)指明軟件產(chǎn)品運行的軟硬件環(huán)境,比如要求操作系統(tǒng)系統(tǒng)是 windows 2000 pack4 版本,數(shù)據(jù)庫是 sql server 2000 等等, 3.測試用例原則(四) (6)提交一份優(yōu)秀的問題報告單 軟件測試提交的問題報告單和測試日報一樣,都是軟件測試人員的工作輸出,是測試人員績效的集中體現(xiàn)。因此,提

14、交一份優(yōu)秀的問題報告單是很重要的。軟件測試報告單最關(guān)鍵的域就是 “ 問題描述 ” ,這是開發(fā)人員重現(xiàn)問題,定位問題的依據(jù)。問題描述應(yīng)該包括以下幾部分內(nèi)容:軟件配置、硬件配置、測試用例輸入、操作步驟、輸出、當(dāng)時輸出設(shè)備的相關(guān)輸出信息和相關(guān)的日志等。 3.測試用例原則(五) (7)測試結(jié)果分析 軟件測試執(zhí)行結(jié)束后,測試活動還沒有結(jié)束。測試結(jié)果分析是必不可少的重要環(huán)節(jié), “ 編筐編簍,全在收口 ” ,測試結(jié)果的分析對下一輪測試工作的開展有很大的借鑒意義。前面的 “ 測試準(zhǔn)備工作 ” 中,建議測試人員走讀缺陷跟蹤庫,查閱其他測試人員發(fā)現(xiàn)的軟件缺陷。測試結(jié)束后,也應(yīng)該分析自己發(fā)現(xiàn)的軟件缺陷,對發(fā)現(xiàn)的缺陷

15、分類,你會發(fā)現(xiàn)自己提交的問題只有固定的幾個類別; 4.測試用例設(shè)計的思想 (一) (1)正面測試(positive testing) 正面測試的測試用例用于驗證被測單元能夠執(zhí)行應(yīng)該完成的工作。測試設(shè)計者應(yīng)該查閱相關(guān)的設(shè)計說明;每個測試用例應(yīng)該測試模塊設(shè)計說明中一項或多項陳述。如果涉及多個設(shè)計說明,最好使測試用例的序列對應(yīng)一個模塊單元的主設(shè)計說明。 適合的技術(shù): 設(shè)計說明導(dǎo)出的測試 對等區(qū)間劃分 狀態(tài)轉(zhuǎn)換測試4.測試用例設(shè)計的思想 (二) (2)負(fù)面測試(negative testing) 負(fù)面測試用于驗證軟件不執(zhí)行其不應(yīng)該完成的工作。這一步驟主要依賴于錯誤猜測,需要依靠軟件測試設(shè)計者的經(jīng)驗判斷

16、可能出現(xiàn)問題的位置。 適合的技術(shù)有: 錯誤猜測 邊界值分析 內(nèi)部邊界值測試 狀態(tài)轉(zhuǎn)換測試黑盒測試的測試用例設(shè)計方法 等價類劃分方法 邊界值分析方法 錯誤推測方法 因果圖方法 判定表驅(qū)動分析方法 功能圖分析方法 .思考題 舉例:設(shè)計這樣的測試用例,來實現(xiàn)一個對所有實數(shù)進(jìn)行開平方運算( y = sqrt(x) )的程序的測試。 思考方向: 由于開平方運算只對非負(fù)實數(shù)有效,這時需要將所有的實數(shù)(輸入域x)進(jìn)行劃分,可以分成:正實數(shù)、0 和 負(fù)實數(shù)。假設(shè)我們選定+1.4444代表正實數(shù),-2.345代表負(fù)實數(shù),則為該程序設(shè)計的測試用例的輸入為+1.4444、 0 和 -2.345。3.2 等價類劃方法

17、等價類劃方法 為了保證軟件質(zhì)量,我們需要做盡量多的測試,但不可能用所有可能的輸入數(shù)據(jù)來測試程序,即窮盡測試是不可能的。我們可以選擇一些有代表性的數(shù)據(jù)來測試程序,但怎樣選擇呢?等價類劃分是解決這一問題的一個方法。 等價類劃分是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分(子集),然后從每一個子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例。該方法是一種重要的,常用的黑盒測試用例設(shè)計方法。1.等價類的概念等價類的概念 等價類是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的。并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試。因此,可以把全部輸入數(shù)據(jù)合理劃分

18、為若干等價類,在每一個等價類中取一個數(shù)據(jù)作為測試的輸入條件,就可以用少量代表性的測試數(shù)據(jù),取得較好的測試結(jié)果。等價類劃分可有兩種不同的情況:有效等價類和無效等價類。1.等價類的概念等價類的概念 有效等價類:是指對于程序的規(guī)格說明來說是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用有效等價類可檢驗程序是否實現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能。 無效等價類:與有效等價類的定義恰巧相反。 設(shè)計測試用例時,要同時考慮這兩種等價類。因為,軟件不僅要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗。這樣的測試才能確保軟件具有更高的可靠性。2.劃分等價類的標(biāo)準(zhǔn) 1)完備測試、避免冗余; 2)劃分等價類重要的是:集合的劃分,劃

19、分為互不相交的一組子集,而子集的并是整個集合; 3)并是整個集合:完備性; 4)子集互不相交:保證一種形式的無冗余性; 5)同一類中標(biāo)識(選擇)一個測試用例,同一等價類中,往往處理相同,相同處理映射到相同的執(zhí)行路徑。 3.劃分等價類的規(guī)則(重點) (1).如果輸入條件規(guī)定了取值范圍,可定義一個有效等價類和兩個無效等價類。 例: 輸入值是學(xué)生成績,范圍是0100 有效等價類:0成績100 無效等價類:成績1003.劃分等價類的規(guī)則(續(xù)) (2)如果規(guī)定了輸入數(shù)據(jù)的個數(shù),則類似地可以劃分出一個有效等價類和兩個無效等價類。 例:一個學(xué)生每學(xué)期只能選修13門課 有效等價類:選修13門 無效等價類:不選

20、 或 選修超過3門3.劃分等價類的規(guī)則(續(xù)) (3)如規(guī)定了輸入數(shù)據(jù)的一組值,且程序?qū)Σ煌斎胫底霾煌幚?,則每個允許的輸入值是一個有效等價類,并有一個無效等價類(所有不允許的輸入值的集合)。 例:輸入條件說明學(xué)歷可為:???、本科、碩士、博士四種之一 有效等價類:???、本科、碩士、博士 無效等價類:其它任何學(xué)歷3.劃分等價類的規(guī)則(續(xù)) 例:程序輸入x取值于一個固定的枚舉類型1,3,7,15,且程序 中對這4個數(shù)值分別進(jìn)行了處理,則: 有效等價類為x=1、x=3、 x=7、x=15, 無效等價類為x1,3,7,15的值的集合。3.劃分等價類的規(guī)則(續(xù)) (4)如果規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則,

21、可確定一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。 例:校內(nèi)電話號碼撥外線為9開頭 有效等價類: 9外線號碼 無效等價類:非9開頭外線號碼 9非外線號碼,3.劃分等價類的規(guī)則(續(xù)) (5)在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可確立一個有效等價類和一個無效等價類; 又如:標(biāo)識符的第一個字符必須是字母。 可以劃分為一個有效等價類:第一個字符是字母。 可以劃分一個無效等價類:第一個字符不是字母。 3.劃分等價類的規(guī)則(續(xù)) (6)在輸入條件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類。 (7)在確知已劃分的等價類中各元素在程序處理中

22、的方式不同的情況下,則應(yīng)再將該等價類進(jìn)一步的劃分為更小的等價類。 在確立了等價類后,可建立等價類表,列出所有劃分出的等價類:輸入條件輸入條件有效等價類有效等價類無效等價類無效等價類4.等價類劃分法測試用例設(shè)計(1) 對每個輸入或外部條件進(jìn)行等價類劃分,形成等價類表,為每一等價類規(guī)定一個唯一的編號;(2)設(shè)計一測試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價類,重復(fù)這一步驟,直到所有有效等價類均被測試用例所覆蓋;(3)設(shè)計一新測試用例,使其只覆蓋一個無效等價類,重復(fù)這一步驟直到所有無效等價類均被覆蓋;例1:報表日期 設(shè)某公司要打印20012005年的報表,其中報表日期為6位數(shù)字組成,其中,前4位為

23、年份,后兩位為月份。第一步:劃分等價類輸入及外部條件有效等價類無效等價類報表日期的報表日期的類型及長度類型及長度6位數(shù)字字符位數(shù)字字符有非數(shù)字字符有非數(shù)字字符 少于少于6個數(shù)字字符個數(shù)字字符 多于多于6個數(shù)字字符個數(shù)字字符 年份范圍年份范圍在在20012005之間之間小于小于2001 大于大于2005 月份范圍月份范圍在在112之間之間小于小于1 大于大于12 第二步:為有效等價類設(shè)計測試用例對表中編號為的3個有效等價類用一個測試用例覆蓋:測試數(shù)據(jù)期望結(jié)果覆蓋范圍200105輸入有效輸入有效等價類等價類第三步:為每一個無效等價類至少設(shè)計一個測試用例測試數(shù)據(jù)測試數(shù)據(jù)期望結(jié)果期望結(jié)果覆蓋范圍覆蓋范

24、圍001may輸入無效輸入無效等價類等價類20015輸入無效輸入無效等價類等價類2001001輸入無效輸入無效等價類等價類20000輸入無效輸入無效等價類等價類20080輸入無效輸入無效等價類等價類200100輸入無效輸入無效等價類等價類200113輸入無效輸入無效等價類等價類本例的本例的1010個等價類至個等價類至少需要少需要8 8個測試用例個測試用例不能出現(xiàn)相同的測試用例不能出現(xiàn)相同的測試用例對招干考試系統(tǒng)“輸入學(xué)生成績”子模塊設(shè)計測試用例 招干考試分三個專業(yè),準(zhǔn)考證號第一位為專業(yè)代號,如: 1-行政專業(yè), 2-法律專業(yè), 3-財經(jīng)專業(yè). 行政專業(yè)準(zhǔn)考證號碼為:110001111215法律

25、專業(yè)準(zhǔn)考證號碼為:210001212006財經(jīng)專業(yè)準(zhǔn)考證號碼為:310001314015例:例2:準(zhǔn)考證號碼 例:準(zhǔn)考證號碼的等價類劃分 有效等價類: (1) 110001 111215 (2) 210001 212006 (3) 310001 314015 無效等價類: (4) - 110000 (5) 111216 210000 (6) 212007 310000 (7) 314016 + 例3 電話號碼 城市的電話號碼由兩部分組成。這兩部分的名稱和內(nèi)容分別是: 地區(qū)碼:以0開頭的三位或者四位數(shù)字(包括0); 電話號碼:以非0、非1開頭的七位或者八位數(shù)字。 假定被調(diào)試的程序能接受一切符合上

26、述規(guī)定的電話號碼,拒絕所有不符合規(guī)定的號碼,就可用等價分類法來設(shè)計它的調(diào)試用例。劃分等價類并編號輸入數(shù)據(jù)有效等價類無效等價類地區(qū)碼(1)以0開頭的3位數(shù)串(2)以0開頭的4位數(shù)串(1)以0開頭的含有非數(shù)字字符的串(2)以0開頭的小于3位的數(shù)串(3)以0開頭的大于4位的數(shù)串(4)以非0開頭的數(shù)串電話號碼(1)以非0、非1開頭的7位數(shù)串(2)以非0、非1開頭的8位數(shù)串(1)以0開頭的數(shù)串(2)以1開頭的數(shù)串(3)以非0、非1開頭的含有非法字符7或者8位數(shù)串(4)以非0、非1開頭的小于7位數(shù)串(5)以非0、非1開頭的大于8位數(shù)串為有效等價類設(shè)計測試用例 測試數(shù)據(jù)期望結(jié)果覆蓋范圍010 2314567

27、8顯示有效輸入(1)、(8)023 2234567顯示有效輸入(1)、(7)0851 3456789顯示有效輸入(2)、(7)0851 23145678顯示有效輸入(2)、(8)為每一個無效等價類至少設(shè)計一個測試用例 測試數(shù)據(jù)期望結(jié)果覆蓋范圍0a34 23456789顯示無效輸入(3)05 23456789顯示無效輸入(4)01234 23456789顯示無效輸入(5)2341 23456789顯示無效輸入(6)028 01234567顯示無效輸入(9)028 12345678顯示無效輸入(10)028 qw123456顯示無效輸入(11)028 623456顯示無效輸入(12)028 886

28、234569顯示無效輸入(13)例4八進(jìn)制 某一8位微機,其八進(jìn)制常數(shù)定義為:以零開頭的數(shù)是八進(jìn)制整數(shù),其值的范圍是-01770177,如05,0127,-065。 (1)劃分等價類并編號,如下表示: 輸入數(shù)據(jù)輸入數(shù)據(jù)有效等價類有效等價類無效等價類無效等價類八進(jìn)制整數(shù)八進(jìn)制整數(shù)(1)以以0開頭的開頭的1-3位八進(jìn)制數(shù)位八進(jìn)制數(shù)串串(2)以以-0開頭的開頭的1-3位八進(jìn)制位八進(jìn)制數(shù)串?dāng)?shù)串(1)以非以非0開頭的八進(jìn)制數(shù)字串開頭的八進(jìn)制數(shù)字串(2)以非以非-0開頭的八進(jìn)制數(shù)字串開頭的八進(jìn)制數(shù)字串(3)以以0或者或者-0開頭含有非八進(jìn)制開頭含有非八進(jìn)制數(shù)字字符的串?dāng)?shù)字字符的串(4)以以0開頭且多于開頭

29、且多于3位的數(shù)位的數(shù)(5)以以0開頭且少于開頭且少于1位的數(shù)位的數(shù)(6)以以-0開頭且多于開頭且多于3位的數(shù)位的數(shù)(7)以以-0開頭且少于開頭且少于1位的數(shù)位的數(shù)八進(jìn)制數(shù)范圍八進(jìn)制數(shù)范圍(1)在在-01770177之間之間(1)小于小于-0177(2)大于大于0177 (2)為有效等價類設(shè)計測試用例,表中有兩個合理等價類,設(shè)計兩個例子測試數(shù)據(jù)測試數(shù)據(jù)期望結(jié)果期望結(jié)果覆蓋范圍覆蓋范圍023顯示有效輸入顯示有效輸入(1)、()、(10)-0156顯示有效輸入顯示有效輸入(2)、()、(10)(3)為每一個無效等價類至少設(shè)計一個測試用例測試數(shù)據(jù)測試數(shù)據(jù)期望結(jié)果期望結(jié)果覆蓋范圍覆蓋范圍102顯示無效輸

30、入顯示無效輸入(3)-123顯示無效輸入顯示無效輸入(4)-0x33顯示無效輸入顯示無效輸入(5)06221顯示無效輸入顯示無效輸入(6)0顯示無效輸入顯示無效輸入(7)-07656顯示無效輸入顯示無效輸入(8)-0顯示無效輸入顯示無效輸入(9)-0200顯示無效輸入顯示無效輸入(11)233顯示無效輸入顯示無效輸入(12) 解析等價類劃分屬于黑盒測試的一種,它將輸入數(shù)據(jù)域按有效的或無效的劃分成若干個等價類,測試每個等價類的代表值就等于對該類其他值的測試,這樣用少量有代表性的例子代替大量測試目的相同的例子,可以有效提高測試效率。 本題劃分了3個有效等價類,9個無效等價類進(jìn)行測試,取到了預(yù)期的效

31、果。使用等價類劃分法測試的實例(續(xù)) 案例案例 保險公司計算保費費率的程序保險公司計算保費費率的程序 某保險公司的人壽保險的保費計算方式為: 投保額保險費率 其中,保險費率依點數(shù)不同而有別,10點及10點以上保險費率為0.6%,10點以下保險費率為0.1%;而點數(shù)又是由 投保人的年齡、性別、婚姻狀況和撫養(yǎng)人數(shù)來決定,具體規(guī)則如下:年齡 性別婚姻撫養(yǎng)人數(shù) 2039 4059 其它 m f 已婚 未婚 1人扣0.5點 最多扣3點(四舍五入取整) 6點 4點 2點 5點 3點 3點 5點計算保費費率的程序 (1)分析程序規(guī)格說明中給出和隱含的對輸入條件的要求,列出等價類表(包括有效等價類和無效等價類

32、)。 年齡:一位或兩位非零整數(shù),值的有效范圍為199 性別:一位英文字符,只能取值m或f 婚姻:字符,只能取值已婚或未婚 撫養(yǎng)人數(shù):空白或一位非零整數(shù)(19) 點數(shù) :一位或兩位非零整數(shù),值的范圍為199 (2)根據(jù)(1)中的等價類表,設(shè)計能覆蓋所有等價類的 測試用例。數(shù) 字 范圍1 9920 39歲40 59歲1.年 齡等 價 類60歲 以 上 20歲 以 下類 型英 文 字 之 集 合類 型 : 英 文 字集 合 : male 、 m2.性 別等 價 類集 合 : female 、 f保險費率計算程序根據(jù)輸入數(shù)據(jù)值域劃分等價類保險費率計算程序根據(jù)輸入數(shù)據(jù)值域劃分等價類等價類劃分已婚3.婚姻

33、等價類未婚選擇項 扶養(yǎng)人數(shù)可以有,也可沒有范圍19空白16 人4.扶養(yǎng)人數(shù)等價類6 人以上10 點以上10 點以下5.保險費率 等價類保險費率計算程序根據(jù)輸入數(shù)據(jù)值域劃分等價類(續(xù))保險費率計算程序根據(jù)輸入數(shù)據(jù)值域劃分等價類(續(xù))等價類劃分有效等價類有效等價類無效等價類無效等價類無效等價類無效等價類年齡年齡20392039任選一個(任選一個(1 1)年齡年齡40594059任選一個(任選一個(2 2)年齡年齡6060歲以上(歲以上(3 3););2020歲歲以下任選一個(以下任選一個(4 4)大于大于6060(5 5);小于);小于2020任選一個(任選一個(6 6)大于大于9999選一個(選

34、一個(7 7)性別性別英文英文malemale(8 8););m m(9 9)任選一個任選一個非英文字,如非英文字,如“男男”(1010)非非malemale、m m、femalefemale、f f任意英任意英文字,如文字,如“child”child”(1111)性別性別英文英文femalefemale(1212););f f任選一個(任選一個(1313)婚姻婚姻已婚(已婚(1414)非非“已婚已婚”或或“未婚未婚”之任意字符。如之任意字符。如“離離婚婚”(1515)有效等價類和無效等價類有效等價類有效等價類無效等價類無效等價類無效等價類無效等價類婚姻婚姻未婚(未婚(1616)撫養(yǎng)人數(shù)撫養(yǎng)人

35、數(shù)空白(空白(1717)撫養(yǎng)人數(shù)撫養(yǎng)人數(shù)1616(1818)小于小于1 1選一個(選一個(1919)撫養(yǎng)人數(shù)撫養(yǎng)人數(shù)7979(2020)大于大于9 9選一個(選一個(2121)保險費率保險費率1010點以上(點以上(0.6%0.6%)(2222)保險費率保險費率1010點以下(點以下(0.1%0.1%)(2323)有效等價類和無效等價類目標(biāo):覆蓋所有等價類目標(biāo):覆蓋所有等價類用例用例編號編號年年齡齡性性別別婚婚姻姻撫養(yǎng)撫養(yǎng)人數(shù)人數(shù)保險保險費率費率覆蓋等價類覆蓋等價類1 12727femalefemale未婚未婚空白空白0.6%0.6%(1 1)、()、(1111)、()、(1515)、)、(1

36、616)、()、(2121)2 25050malemale已婚已婚2 20.6%0.6%(2 2)、()、(7 7)、()、(1313)、)、(1717)、()、(2121)3 37070f f未婚未婚7 70.1%0.1%(3 3)、()、(1212)、()、(1515)、)、(1919)、()、(2222)4 41515m m未婚未婚空白空白0.6%0.6%(4 4)、()、(8 8)、()、(1515)、)、(1616)、()、(2121)5 50 0m m已婚已婚4 4無法無法推算推算(5 5)6 610100 0femalefemale未婚未婚5 5無法無法推算推算(6 6)測試用例

37、選擇用例用例編號編號年年齡齡性性別別婚婚姻姻撫養(yǎng)撫養(yǎng)人數(shù)人數(shù)保險保險費率費率覆蓋等價類覆蓋等價類7 71 1男男已婚已婚6 6無法無法推算推算(9 9)8 89999childchild未婚未婚1 1無法無法推算推算(1010)9 93030malemale離婚離婚3 3無法無法推算推算(1414)10107575femalefemale未婚未婚0 0無法無法推算推算(1818)11111717malemale已婚已婚1010無法無法推算推算(2020)測試用例選擇實例介紹 三角形問題 三角形問題是在軟件測試文獻(xiàn)中使用最廣的一個例子,這個例子經(jīng)久不衰的原因之一是,它包含了清晰而又復(fù)雜的邏輯。它

38、還是削弱客戶、開發(fā)人員和測試人員溝通的不完整定義的典型例子。 三角形問題之所以復(fù)雜,是因為輸入與正確輸出之間的關(guān)系復(fù)雜。三角形問題陳述三角形問題陳述簡單版本簡單版本:三角形問題接受三個整數(shù)a、b和c作為輸入,用作三角形的邊。程序的輸出是由這三條邊確定的三角形類型:等邊三角形、等腰三角形、不等邊三角形或非三角形。有時這個問題被擴展為將直角三角形作為第五類,在有些練習(xí)中會使用這種擴展。改進(jìn)版本改進(jìn)版本:三角形問題接受三個整數(shù)a、b和c作為輸入,用作三角形的邊。整數(shù)a、b和c必須滿足以下條件:c1:1=a=200 c4: ab+cc2: 1=b=200 c5: ba+cc3: 1=c=200 c6:

39、 ca+b 續(xù) 程序的輸出是由這三條邊確定的三角形類型:等邊三角形、等腰三角形、不等邊三角形或非三角形。如果輸入值沒有滿足這些條件中的任何一個,則程序會通過輸出消息來進(jìn)行通知,例如,“b的取值不在允許范圍內(nèi)”,若c1、c2、c3滿足,則給出以下四種相互排斥輸出的一個:1. 如果三條邊相等,則程序的輸出是等邊三角形。2. 如果兩條邊相等,則程序的輸出是等腰三角形。3. 如果沒有兩條邊相等,則程序的輸出是不等邊三角形。4. 如果c4、c5和c6中有一個條件不滿足,則程序的輸出是非三角形。三角形問題實現(xiàn) 以下是三角形問題的數(shù)據(jù)流圖描述??梢园堰@個程序?qū)崿F(xiàn)為一個主程序和三個簡單的過程。在后續(xù)章節(jié)里我們

40、還要用到這個例子,現(xiàn)在將它的實現(xiàn)用偽代碼表示。 三角形程序之所以復(fù)雜,是因為它包含了清晰而復(fù)雜的邏輯。三角形程序?qū)崿F(xiàn)的數(shù)據(jù)流圖三角形問題實現(xiàn)的偽代碼program triangle2 version of simpledim a,b,c as integerdim isatriangle as booleanstep1: get inputoutput(“enter 3 integers which are sides of a triangle”)input(a,b,c)output(“side a is ”,a)output(“side b is ”,b)output(“side c is

41、 ”,c)step 2:is a triangle?if (ab+c) and(ba+c)and(ca+b)then isatriangle =trueelse isatriangle =falseendifstep3:determine triangle typeif isatrangle then if(a=b)and (b=c) then output(“equilateral”) else if(ab)and(ac)and(bc) then output(“scalence”) else output(“isosecles”) endif endif else output(“not

42、a triangle”)endifend triangle2三角形問題實現(xiàn)的偽代碼program triangle3 improved versiondim a,b,c as integerdim isatriangle as booleanstep1: get inputdooutput(“enter 3 integers which are sides of a triangle”)input(a,b,c)c1=(1=200)c2=(1=200)c3=(1=200)if not(c1) then output(“value of a is not in the range of permi

43、tted values”)endifif not(c2) then output(“value of b is not in the range of permitted values”)endifif not(c3) then output(“value of c is not in the range of permitted values”)endifuntil c1 and c2 and c3output(“side a is ”,a)output(“side b is ”,b)output(“side c is ”,c) step2 step3end triangle3nextdat

44、e函數(shù) 輸入變量之間的邏輯比較復(fù)雜 有兩種復(fù)雜性來源:輸入域和閏年規(guī)則 80%活動出現(xiàn)在20%的空間nextdate 問題陳述 nextdate是一個有三個變量(月份、日期和年)的函數(shù)。函數(shù)返回輸入日期后面的那個日期。變量月份、日期和年都是整數(shù)值,并滿足以下條件:c1:1=月份=12c2:1=日期=31c3:1812=年=2012 我們的處理要包括對月份、日期和年的無效輸入值的響應(yīng)處理,還要對無效邏輯處理,例如任意年的4月31日。nextdate 的偽代碼實現(xiàn)program nextdate1 simple versiondim tomorrowday,tomorrowmonth,tomorr

45、owyear as integerdim day,month,year as integeroutput(“enter todays date in the form mm dd yyyy”)input(month,day,year)case month ofcase 1:month is1,3,5,7,8,or 10:31 day months (excpet 12)if day31 then tomorrowday=day+1 else tomorrowday=1 tomorrowmonth=month+1endifcase 2:month is 4,6,9 or 11 30day monthif day

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論