軟件測試實(shí)例課件第3章-測試用例設(shè)計(jì)_第1頁
軟件測試實(shí)例課件第3章-測試用例設(shè)計(jì)_第2頁
軟件測試實(shí)例課件第3章-測試用例設(shè)計(jì)_第3頁
軟件測試實(shí)例課件第3章-測試用例設(shè)計(jì)_第4頁
軟件測試實(shí)例課件第3章-測試用例設(shè)計(jì)_第5頁
已閱讀5頁,還剩88頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、軟件測試實(shí)例課件第3章 測試用例設(shè)計(jì)教學(xué)提示:在軟件測試中,設(shè)計(jì)測試用例是整個過程的核心,起著非常關(guān)鍵的作用,也是測試執(zhí)行環(huán)節(jié)的基本依據(jù)。測試用例的設(shè)計(jì)是每個測試工程師必備的基本職業(yè)技能。本章將通過實(shí)例對測試用例設(shè)計(jì)的基本原則和設(shè)計(jì)方法等進(jìn)行闡述和分析。教學(xué)目標(biāo):通過本章的學(xué)習(xí),讀者將掌握黑盒測試和白盒測試的各種基礎(chǔ)知識,通過實(shí)際案例進(jìn)一步學(xué)習(xí)設(shè)計(jì)軟件測試用例的方法。3.1黑盒測試用例設(shè)計(jì)一、等價(jià)類劃分法1工作任務(wù)描述用戶注冊是網(wǎng)上購物系統(tǒng)的基本模塊,也是必需的功能。本節(jié)任務(wù)就是對用戶注冊功能進(jìn)行測試,編寫測試用例集。在此,我們使用最經(jīng)典的黑盒測試方法等價(jià)類劃分法來設(shè)計(jì)測試用例。后面的各節(jié)將使

2、用其他的方法繼續(xù)設(shè)計(jì)相關(guān)的測試用例。2應(yīng)知應(yīng)會(1)等價(jià)類劃分法等價(jià)類劃分法作為一種最為典型的黑盒測試方法,它完全不考慮程序的內(nèi)部結(jié)構(gòu),以需求規(guī)格說明書為依據(jù),選擇適當(dāng)?shù)牡湫妥蛹?,認(rèn)真分析和推敲說明書的各項(xiàng)需求,特別是功能需求,盡可能多地發(fā)現(xiàn)錯誤。它將程序所有可能的輸入數(shù)據(jù)(有效的和無效的)劃分成若干個等價(jià)類,然后從每個部分中選取具有代表性的數(shù)據(jù)當(dāng)做測試用例進(jìn)行合理的分類,測試用例由有效等價(jià)類和無效等價(jià)類的代表數(shù)據(jù)組成,從而保證測試用例具有完整性和代表性。等價(jià)類劃分法是一種系統(tǒng)性確定要輸入的測試條件的方法。 有效等價(jià)類劃分有效等價(jià)類指對于程序規(guī)格說明而言,是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。

3、利用有效等價(jià)類可以檢驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說明預(yù)先規(guī)定的功能和性能。有效等價(jià)類可以是一個,也可以是多個,根據(jù)系統(tǒng)的輸入域劃分若干部分,然后從每個部分中選取少數(shù)有代表性數(shù)據(jù)當(dāng)做數(shù)據(jù)測試的測試用例,有效等價(jià)類是輸入域中代表有效數(shù)據(jù)的集合。 無效等價(jià)類劃分無效等價(jià)類和有效等價(jià)類相反,無效等價(jià)類是指對于軟件規(guī)格說明而言,沒有意義的、不合理的輸入數(shù)據(jù)集合。利用無效等價(jià)類,可以找出程序異常說明情況,檢查程序的功能和性能的實(shí)現(xiàn)是否有不符合規(guī)格說明要求的地方。(2)等價(jià)類的劃分原則如何確定等價(jià)類成為使用等價(jià)類劃分法過程中的重要問題,以下是進(jìn)行等價(jià)類劃分的幾項(xiàng)依據(jù)。 按區(qū)間劃分。在輸入條件規(guī)定的取值范圍或值的個數(shù)

4、的情況下,可以確定一個有效等價(jià)類和兩個無效等價(jià)類。 按數(shù)值劃分。在規(guī)定了輸入數(shù)據(jù)的一組值(假定有n個值),并且程序要對每個輸入值分別處理的情況下,可以確定n個有效等價(jià)類和一個無效等價(jià)類。(3)等價(jià)類劃分法的測試用例設(shè)計(jì)在設(shè)計(jì)測試用例時(shí),應(yīng)同時(shí)考慮有效等價(jià)類和無效等價(jià)類測試用例的設(shè)計(jì)。測試人員總是希望用最少的測試用例覆蓋所有的有效等價(jià)類,但對每一個無效等價(jià)類,至少要設(shè)計(jì)一個測試用例來覆蓋它。3學(xué)習(xí)案例某城市電話號碼由3部分組成:(地區(qū)碼)前綴后綴。它們的名稱和內(nèi)容分別是: 地區(qū)碼:空白或3位數(shù)字; 前 綴:起始位為非“0”或“1”的3位數(shù)字; 后 綴:4 位數(shù)字。 假定被測程序能接受一切符合上述

5、規(guī)定的電話號碼,拒絕所有不符合規(guī)定的電話號碼。根據(jù)該程序的規(guī)格說明,做等價(jià)類的劃分,并設(shè)計(jì)測試方案。輸入條件有效等價(jià)類無效等價(jià)類地區(qū)碼1. 空白 2. 3位數(shù)字 1. 有非數(shù)字字符 2. 少于3位數(shù)字 3. 多于3位數(shù)字 前 綴3. 200 999的3位數(shù)字 4. 有非數(shù)字字符 5. 起始位為“0”6. 起始位為“1”7. 少于3位數(shù)字 8. 多于3位數(shù)字 后 綴4. 4位數(shù)字 9. 有非數(shù)字字符 10. 少于4位數(shù)字 11. 多于4位數(shù)字 (1)劃分等價(jià)類方案內(nèi)容輸 入預(yù)期結(jié)果地區(qū)碼前綴后綴1空白 200 999的3位數(shù)字 4位數(shù)字( )276-2345有效 23位數(shù)字 (635)805-9

6、321有效 3有非數(shù)字字符 (20A)723-4567無效 4少于3位數(shù)字 (33)234-5678無效 5多于3位數(shù)字 (5555)345-6789無效 6有非數(shù)字字符 (345)5A2-3456無效 7起始位為“0”(345)012-3456無效 8起始位為“1”(345)132-3456無效 9少于3位數(shù)字 (345) 92-3456無效 10多于3位數(shù)字 (345)4562-3456無效 11有非數(shù)字字符 (345)342-3A56無效 12少于4位數(shù)字 (345)342-356無效 13多于4位數(shù)字 (345)562-34567無效 (2)設(shè)計(jì)測試方案4模仿設(shè)計(jì)測試用例練習(xí)學(xué)生成績等

7、級評定(AC):總分(0100) = 考試分(070)+ 平時(shí)分(030)總分=80,Grade= “A”總分=60 and = 0 and 60,Grade= “C”假定被測程序能接受一切符合上述規(guī)定的數(shù)據(jù),拒絕所有不符合規(guī)定的數(shù)據(jù)。根據(jù)該程序的規(guī)格說明,做等價(jià)類的劃分,并設(shè)計(jì)測試方案。5.實(shí)際案例使用等價(jià)類劃分法為網(wǎng)上商城系統(tǒng)的“用戶注冊”子功能設(shè)計(jì)測試用例。功能需求簡介如下。 用戶名:不能為空,不能出現(xiàn)空格,最大長度為20個字符。 密碼:不能為空,長度必須大于等于6個字符,小于等于20個字符。 確認(rèn)密碼:同密碼。 同意用戶協(xié)議:必須勾選。二、邊界值分析法1工作任務(wù)描述本節(jié)任務(wù)是繼續(xù)上節(jié)內(nèi)

8、容,對用戶注冊功能進(jìn)行測試,編寫測試用例集。在此我們使用另一種黑盒測試方法邊界值分析法來設(shè)計(jì)測試用例。2應(yīng)知應(yīng)會(1)邊界值分析法邊界值分析法就是對輸入或輸出的邊界值進(jìn)行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價(jià)類劃分法的補(bǔ)充,這種情況下,其測試用例來自等價(jià)類的邊界。(2)使用邊界值分析法的原因無數(shù)的測試實(shí)踐表明,大量的故障往往發(fā)生在輸入定義域或輸出值域的邊界上,而不是在其內(nèi)部。因此,針對各種邊界情況設(shè)計(jì)測試用例,通常會取得很好的測試效果。(3)使用邊界值分析法設(shè)計(jì)測試用例的方法 首先確定邊界情況。通常輸入或輸出等價(jià)類的邊界就是為了著重測試的邊界情況。 選取正好等于、剛剛大于或剛剛小

9、于邊界的值作為測試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值。(4)與等價(jià)劃分的區(qū)別 邊界值分析不是從某等價(jià)類中隨便挑一個作為代表,而是使這個等價(jià)類的每個邊界都作為測試條件。 邊界值分析不僅考慮輸入條件,還要考慮輸出空間產(chǎn)生的測試情況。(5)在應(yīng)用邊界值分析法進(jìn)行測試用例設(shè)計(jì)時(shí),要遵循的幾條原則如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個范圍的邊界值以及剛剛超過這個范圍邊界的值作為測試輸入數(shù)據(jù)。如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)和比最大個數(shù)多1個、比最小個數(shù)少1個的數(shù)作為測試數(shù)據(jù)。根據(jù)程序規(guī)格說明的每個輸出條件,使用原則。 根據(jù)程序規(guī)格說明的每個輸出條件,使用原則。 如果程序的規(guī)

10、格說明給出的輸入域或輸出域是有序集合(如有序表、順序文件等),則應(yīng)選取集合中的第一個和最后一個元素作為測試用例。 如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例。 分析程序規(guī)格說明,找出其他可能的邊界條件。(6)健壯性測試健壯性測試是作為邊界值分析的一個簡單的擴(kuò)充,它除了對變量的5個邊界值分析取值外,還需要增加一個略大于最大值(max+)以及略小于最小值(min-)的取值,檢查超過極限值時(shí)系統(tǒng)的情況。因此,對于有n個變量的函數(shù)采用健壯性測試需要6n+1個測試用例。3. 學(xué)習(xí)案例三角形問題。輸入3個整數(shù)a、b、c分別作為三角形的3條邊,現(xiàn)通過程序判斷由3條邊

11、構(gòu)成的三角形的類型為:等邊三角形、等腰三角形、一般三角形以及構(gòu)不成三角形?,F(xiàn)在要求輸入3個整數(shù)a、b、c,必須滿足以下條件:條件1 1a100 條件2 1b100 條件3 1c100條件4 a b+c條件5 b a+c條件6 c =80,Grade= “A”總分=60 and = 0 and 60,Grade= “C”假定被測程序能接受一切符合上述規(guī)定的數(shù)據(jù),拒絕所有不符合規(guī)定的數(shù)據(jù)。根據(jù)該程序的規(guī)格說明,使用邊界值分析法,并設(shè)計(jì)健壯性測試用例。5實(shí)際案例使用邊界值分析法為網(wǎng)上商城系統(tǒng)的“用戶注冊”子功能設(shè)計(jì)測試用例?!坝脩糇浴苯缑嫒鐖D3-5所示,功能需求簡介如下。 用戶名:不能為空,不能出

12、現(xiàn)空格,最大長度為20個字符。 密碼:不能為空,長度必須大于等于6個字符,小于等于20個字符。 確認(rèn)密碼:同密碼。 同意用戶協(xié)議:必須勾選。三、錯誤推測法1. 工作任務(wù)描述本節(jié)任務(wù)是繼續(xù)上節(jié)內(nèi)容,對用戶注冊功能進(jìn)行測試,編寫測試用例集。在此我們使用另一種黑盒測試方法錯誤推測法來設(shè)計(jì)測試用例。2. 應(yīng)知應(yīng)會錯誤推測法,即錯誤推測法就是根據(jù)經(jīng)驗(yàn)和直覺推測程序中所有可能存在的各種錯誤,從而有針對性地設(shè)計(jì)測試用例的方法。使用錯誤推測法時(shí),可以憑經(jīng)驗(yàn)列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,幫助猜測錯誤可能發(fā)生的位置,提高錯誤推測的有效性,根據(jù)他們來選擇測試用例。3. 學(xué)習(xí)案例三角形問題。輸

13、入3個整數(shù)a、b、c分別作為三角形的3條邊,現(xiàn)通過程序判斷由3條邊構(gòu)成的三角形的類型為:等邊三角形、等腰三角形、一般三角形以及構(gòu)不成三角形?,F(xiàn)在要求輸入3個整數(shù)a、b、c,必須滿足以下條件:條件1 1a100 條件2 1b100 條件3 1c100條件4 a b+c條件5 b a+c條件6 c =80,Grade= “A”總分=60 and = 0 and 60,Grade= “C”假定被測程序能接受一切符合上述規(guī)定的數(shù)據(jù),拒絕所有不符合規(guī)定的數(shù)據(jù)。根據(jù)該程序的規(guī)格說明,使用邊界值分析法,并設(shè)計(jì)健壯性測試用例。5實(shí)際案例使用錯誤推測法為網(wǎng)上商城系統(tǒng)的“用戶注冊”子功能設(shè)計(jì)測試用例?!坝脩糇浴?/p>

14、界面如圖所示,功能需求簡介如下。 用戶名:不能為空,不能出現(xiàn)空格,最大長度為20個字符。 密碼:不能為空,長度必須大于等于6個字符,小于等于20個字符。 確認(rèn)密碼:同密碼。 同意用戶協(xié)議:必須勾選。四、因果圖法1工作任務(wù)描述本節(jié)任務(wù)是繼續(xù)上節(jié)內(nèi)容,對用戶購物功能進(jìn)行測試,編寫測試用例集。在此我們使用因果圖法來設(shè)計(jì)測試用例。2應(yīng)知應(yīng)會(1)因果圖法產(chǎn)生的背景等價(jià)類劃分法和邊界值分析方法都是著重考慮輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關(guān)系。這樣雖然各種輸入條件可能出錯的情況已經(jīng)測試到了,但多個輸入條件組合起來可能出錯的情況卻被忽視了。(2)因果圖法簡介因果圖法基于這樣的一

15、種思想:一些程序的功能可以用判定表(或稱決策表)的形式來表示,并根據(jù)輸入條件的組合情況規(guī)定相應(yīng)的操作。因果圖法的定義:是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計(jì)測試用例的方法,它適合于檢查程序輸入條件的各種組合情況。(3)使用因果圖法的基本步驟 分析軟件規(guī)格說明描述中哪些是原因,哪些是結(jié)果,原因是輸入或輸入條件的等價(jià)類,結(jié)果是輸出條件。給每個原因和結(jié)果賦予一個標(biāo)識符。 分析軟件規(guī)格說明描述中的語義。找出原因與結(jié)果之間、原因與原因之間的對應(yīng)關(guān)系,并根據(jù)這些關(guān)系畫出因果圖。 在因果圖上用一些記號標(biāo)明約束或限制條件。 把因果圖轉(zhuǎn)換為判定表。 依據(jù)判定表的每一列,設(shè)計(jì)測試用例。(4)使用因果圖法

16、的優(yōu)點(diǎn) 考慮到了輸入情況的各種組合以及各個輸入情況之間的相互制約關(guān)系。 能夠幫助測試人員按照一定的步驟,高效率開發(fā)測試用例。 因果圖法是將自然語言規(guī)格說明轉(zhuǎn)化成形式語言規(guī)格說明的一種嚴(yán)格的方法,可以指出規(guī)格說明存在的不完整性和二義性。(5)因果圖中的4種基本關(guān)系在因果圖中,用ci表示輸入狀態(tài)(或稱原因),ei表示輸出狀態(tài)(或稱結(jié)果)。因果圖中用4種符號分別表示規(guī)格說明中的4種因果關(guān)系,其基本符號如圖所示。 恒等 非 或 與ci 與 ei 取值0或1,0表示某狀態(tài)不出現(xiàn),1則表示某狀態(tài)出現(xiàn)。a.恒等:若 c1 是1,則 e1 也為1,否則 e1 為0。b.非:若 c1 是1,則 e1 為0,否則

17、e1為1。c.或:若 c1 或 c2 或 c3 是1,則 e1 為1,否則 e1 為0。d.與:若 c1 和 c2 都是1,則 e1 為1,否則 e1 為0。6. 因果圖中的約束在實(shí)際問題中,輸入狀態(tài)相互之間、輸出狀態(tài)相互之間可能存在某些依賴關(guān)系,稱為“約束”。對于輸入條件的約束有E、I、O、R四種約束,對于輸出條件的約束只有M約束。因果圖中用來表示約束關(guān)系的約束符號如圖所示。 E約束(異):a和b中最多有一個可能為1,即a和b不能同時(shí)為1。 I 約束(或):a、b、c中至少有一個必須為1,即 a、b、c不能同時(shí)為0。 O約束(唯一):a和b必須有一個且僅有一個為1。 R約束(要求):a是1時(shí)

18、,b必須是1,即a為1時(shí),b不能為0。 M約束(強(qiáng)制):若結(jié)果a為1,則結(jié)果b強(qiáng)制為0。3學(xué)習(xí)案例有一個自動售貨機(jī)軟件處理單價(jià)為5角錢飲料。若投入5角錢或1元錢的硬幣,壓下“橙汁”或“啤酒”的按鈕,則相應(yīng)的飲料就送出來。若售貨機(jī)沒有零錢找,則一個顯示“零錢找完”的紅燈亮,這時(shí)再投入1元硬幣并壓下按鈕后,飲料不送出來而且1元硬幣也被退出來;若有零錢找,則顯示“零錢找完”的紅燈滅,在送出飲料的同時(shí)找回5角硬幣。4模仿設(shè)計(jì)測試用例練習(xí)薪金管理系統(tǒng)扣款模塊功能描述如下 薪制員工:嚴(yán)重過失,扣年終風(fēng)險(xiǎn)金4;過失,扣年終風(fēng)險(xiǎn)金的2。 年薪制員工:嚴(yán)重過失,扣當(dāng)月薪資的8;過失,扣當(dāng)月薪資的4。請畫出因果圖

19、,并進(jìn)行測試用例設(shè)計(jì)。5實(shí)際案例網(wǎng)上商城系統(tǒng)的“折扣計(jì)費(fèi)”子功能簡介如下。用戶購物時(shí)收費(fèi)有4種情況:非VIP會員一次購物累計(jì)少于100元,按A類標(biāo)準(zhǔn)收費(fèi)(不打折),一次購物累計(jì)多于或等于100元,按B類標(biāo)準(zhǔn)收費(fèi)(打9折);VIP會員顧客按VIP會員價(jià)格一次購物累計(jì)少于1000元,按C類標(biāo)準(zhǔn)收費(fèi)(打8折),一次購物累計(jì)等于或多于1000 元,按D類標(biāo)準(zhǔn)收費(fèi)(打7折)。請使用因果圖法設(shè)計(jì)測試用例,測試以上計(jì)算顧客購物收費(fèi)的模塊。五、場景分析法1工作任務(wù)描述 本節(jié)任務(wù)是繼續(xù)前幾節(jié)內(nèi)容,對用戶購物功能進(jìn)行測試,編寫測試用例集。在此我們使用場景分析法來設(shè)計(jì)測試用例。2應(yīng)知應(yīng)會(1)場景分析法簡介現(xiàn)在的軟

20、件幾乎都是用事件觸發(fā)來控制流程的,事件觸發(fā)時(shí)的情景便形成了場景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。這種在軟件設(shè)計(jì)方面的思想也可以引入軟件測試中,可以比較生動地描繪出事件觸發(fā)時(shí)的情景,有利于測試設(shè)計(jì)者設(shè)計(jì)測試用例,同時(shí)使測試用例更容易理解和執(zhí)行。提出這種測試思想的是Rational公司。通過運(yùn)用場景來對系統(tǒng)的功能點(diǎn)或業(yè)務(wù)流程進(jìn)行描述,從而提高測試效果。場景法一般包含基本流和備用流,從一個流程開始,通過描述經(jīng)過的路徑來確定的過程,經(jīng)過遍歷所有的基本流和備用流來完成整個場景。(2)場景法能清晰地描述整個事件的原因 原因:現(xiàn)在的系統(tǒng)基本上都是由事件來觸發(fā)控制流程的。如我們申請一個項(xiàng)目,需

21、先提交審批單據(jù),再由部門經(jīng)理審批,審核通過后由總經(jīng)理來最終審批,如果部門經(jīng)理審核不通過,就直接退回。每個事件觸發(fā)時(shí)的情景便形成了場景。而同一事件不同的觸發(fā)順序和處理結(jié)果形成事件流。(3)基本流和備選流 事件流示意圖如圖3-14所示。 每個經(jīng)過用例的可能路徑,可以確定不同的用例場景。從基本流開始,再將基本流和備選流結(jié)合起來,可以確定以下用例場景:場景1基本流場景2基本流 備選流 1場景3基本流 備選流 1 備選流 2場景4基本流 備選流 3場景5基本流 備選流 3 備選流 1場景6基本流 備選流 3 備選流 1 備選流 2場景7基本流 備選流 4場景8基本流 備選流 3 備選流 43學(xué)習(xí)案例 用

22、戶進(jìn)入網(wǎng)上商城購物網(wǎng)站進(jìn)行購物,選擇物品后,進(jìn)行在線購買,這時(shí)需要使用賬號登錄,登錄成功后,付錢交易,交易成功后,生成訂購單,完成整個購物過程。4模仿設(shè)計(jì)測試用例練習(xí) 圖3-15所示是ATM的流程示意圖。3.2白盒測試用例設(shè)計(jì)3.2.1邏輯覆蓋法 1工作任務(wù)描述 在本節(jié)中我們將使用白盒測試方法購物網(wǎng)站的相關(guān)功能源代碼進(jìn)行測試用例設(shè)計(jì)。 我們以用戶注冊模塊源代碼進(jìn)行白盒測試用例設(shè)計(jì)介紹。 用戶注冊模塊中考慮到系統(tǒng)的交互性,用戶在進(jìn)行注冊信息填寫時(shí),如果填寫信息不符合數(shù)據(jù)合理性要求應(yīng)該有相應(yīng)的信息提示,如下圖所示。 3.2白盒測試用例設(shè)計(jì)3.2.1邏輯覆蓋法 2應(yīng)知應(yīng)會 (1)邏輯覆蓋方法邏輯測試

23、方法是白盒測試方法的一種。白盒測試是將測試對象看成一個透明的盒子,測試人員可以看到程序的內(nèi)部邏輯結(jié)構(gòu),而測試人員正是利用了手頭的程序規(guī)格說明和程序清單為基礎(chǔ)來設(shè)計(jì)測試用例的。 白盒測試法需要考慮測試用例對程序內(nèi)部邏輯結(jié)構(gòu)的覆蓋程度,所以最好的白盒測試用例是要覆蓋程序中的每一條路徑。但要執(zhí)行每一條路徑將是不可能的,在白盒測試中為了衡量覆蓋程度,建立了一些測試覆蓋標(biāo)準(zhǔn)。 邏輯覆蓋法根據(jù)測試用例中覆蓋目標(biāo)的不同,并且根據(jù)覆蓋標(biāo)準(zhǔn)發(fā)現(xiàn)錯誤的能力從低向高又可以分為語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。 (2)語句覆蓋 語句覆蓋是一個比較弱的測試標(biāo)準(zhǔn),對程序執(zhí)行邏輯的覆蓋很

24、低。語句覆蓋法是設(shè)計(jì)最少的測試用例,運(yùn)行被測程序,使得程序中每一條可執(zhí)行語句至少執(zhí)行一次。 語句覆蓋在測試中主要用于發(fā)現(xiàn)缺陷或錯誤語句,是最弱的覆蓋標(biāo)準(zhǔn)。 (3)判斷覆蓋 判定覆蓋,也稱為分支覆蓋,這種測試方法是設(shè)計(jì)若干個測試用例,運(yùn)行被測程序,使得程序中的每一個判定(每一個分支)的真、假取值至少都通過一次。 判定覆蓋標(biāo)準(zhǔn)包含了分支覆蓋,并且只比語句覆蓋標(biāo)準(zhǔn)稍強(qiáng)一些,在判定覆蓋法中,雖然把程序所有判定(分支)均覆蓋到了,但其主要對整個判定表達(dá)式最終取值進(jìn)行測試,而忽略了判定細(xì)節(jié),如果在判定條件表達(dá)式的內(nèi)部出現(xiàn)了問題則無法通過此種覆蓋完全找出。 (4)條件覆蓋條件覆蓋較之判定覆蓋考慮了判定條件表

25、達(dá)式中的每一個邏輯條件,這種測試方法是設(shè)計(jì)若干個測試用例,運(yùn)行被測程序,使得每一判定表達(dá)式中每個邏輯條件的真、假取值至少都通過一次。 條件覆蓋深入判定表達(dá)式中的每一個邏輯條件,但是測試用例可能不能滿足判定覆蓋的要求。 (5)判定/條件覆蓋 判定/條件覆蓋是將判定覆蓋和條件覆蓋兩個標(biāo)準(zhǔn)都覆蓋到,這種測試方法是設(shè)計(jì)若干個測試用例,運(yùn)行被測程序,使得程序中的每一個判定的真假取值以及每個判定中的每一個邏輯條件的真假取值都通過一次。判定/條件覆蓋充分解決了前3種覆蓋的缺陷,但是這種覆蓋方法依然存在缺陷。在程序中往往某些條件掩蓋了另一些條件,因此會遺漏某些條件取值錯誤的情況。 (6)條件組合覆蓋條件組合覆

26、蓋,也稱多條件覆蓋,這種測試方法是設(shè)計(jì)足夠多的測試用例,運(yùn)行被測程序,使得每個判定表達(dá)式中的邏輯條件的各種可能組合都至少通過一次。 條件符合測試是相當(dāng)強(qiáng)的覆蓋準(zhǔn)則,可以有效地檢查各種可能的條件取值的組合是否正確。它不但可覆蓋所有邏輯條件的可能取值的組合,還可覆蓋所有判定的所有分支。3.2.1邏輯覆蓋法 3學(xué)習(xí)案例(1)“三角形判定”問題: 在三角形判定中,要求三角形的3個邊長:a、b 和c,當(dāng)3邊不可能構(gòu)成三角形時(shí)提示“無法構(gòu)成三角形”;若是等腰三角形,打印“等腰三角形”;若是等邊三角形,則提示“等邊三角形”;否則提示構(gòu)成普通三角形。 在利用邏輯覆蓋法設(shè)計(jì)測試用例時(shí),可以使用程序流程圖直觀地看

27、到程序邏輯結(jié)構(gòu),然后使用依據(jù)不同的覆蓋標(biāo)準(zhǔn)得到測試用例。 3.2.1邏輯覆蓋法 4模仿設(shè)計(jì)測試用例練習(xí) “日期判定”問題:從鍵盤輸入3個整數(shù),由這三個整數(shù)作為年、月、日組成日期,但是并不是任意的3個整數(shù)都可以組成正確的日期,因此,需要對于輸入的,3個整數(shù)進(jìn)行判定 。 請對于上述的源代碼進(jìn)行白盒測試,分析程序中的執(zhí)行語句有哪些,分析程序中的判定條件有哪些,分析每一個判定中的邏輯條件有哪些,分別使用語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋和條件組合覆蓋標(biāo)準(zhǔn)來設(shè)計(jì)測試用例。并分析各種覆蓋標(biāo)準(zhǔn)得到的測試用例的覆蓋強(qiáng)弱關(guān)系。3.2.1邏輯覆蓋法 5實(shí)際案例 使用邏輯覆蓋法為網(wǎng)上商城系統(tǒng)的“用戶注冊”

28、功能中用戶名填寫交互信息提示子功能設(shè)計(jì)測試用例。3.2白盒測試用例設(shè)計(jì)3.2.2路徑測試法 1工作任務(wù)描述 使用白盒測試方法中的路徑測試法為網(wǎng)上商城系統(tǒng)的“用戶結(jié)算”功能中的驗(yàn)證優(yōu)惠券子功能設(shè)計(jì)測試用例。 3.2白盒測試用例設(shè)計(jì)3.2.2路徑測試法 2應(yīng)知應(yīng)會 路徑測試就是從一個程序的入口開始,執(zhí)行所經(jīng)歷的各個語句的完整過程。從廣義的角度講,任何有關(guān)路徑分析的測試都可以被稱為路徑測試。 為了了解路徑測試方法,需要對于兩個基本概念有清晰的認(rèn)識,即控制流圖和路徑表達(dá)式。 3.2.2路徑測試法 2應(yīng)知應(yīng)會 (1)控制流圖 控制流圖簡稱流圖,在這種圖形中更加突出了程序控制流的結(jié)構(gòu),它是對程序流程圖的一

29、種簡化。在控制流圖中主要包含兩種圖形符號:節(jié)點(diǎn)和控制流線。 節(jié)點(diǎn)是將代表一個或多個語句、一個處理框序列和一個條件判斷框(假設(shè)不包含復(fù)合判定條件)由帶標(biāo)號的圓圈表示。如果程序中存在復(fù)合判定條件,可以將條件分解為多個單個條件。包含判定條件的節(jié)點(diǎn)也稱為判定節(jié)點(diǎn)。在控制流圖中從判定節(jié)點(diǎn)出發(fā)最后需要匯聚為一個節(jié)點(diǎn),因此有時(shí)需要添加虛節(jié)點(diǎn)表示匯聚節(jié)點(diǎn)。 控制流線也稱之為邊,是將程序中的控制流由帶箭頭的弧或線表示。3.2.2路徑測試法 2應(yīng)知應(yīng)會 (2)路徑表達(dá)式 路徑可以用控制流圖中表示程序通路的節(jié)點(diǎn)序列表示,也可用弧線表示。 路徑表達(dá)式是針對控制流圖中的弧進(jìn)行加和乘兩種運(yùn)算形成的數(shù)學(xué)表達(dá)式?;乘弧b(

30、描述成ab)表示流圖中先沿弧a再沿弧b所經(jīng)歷的路徑;弧a加弧b(描述成a+b)表示流圖中弧a和弧b的關(guān)系為或關(guān)系。 3.2.2路徑測試法 2應(yīng)知應(yīng)會 (3)路徑測試方法 將待測試程序的流程圖轉(zhuǎn)換成控制流圖,在控制流圖中給每一條弧用符號標(biāo)明。 根據(jù)控制流圖寫出路徑表達(dá)式,對路徑表達(dá)式進(jìn)行分解 進(jìn)行路徑表達(dá)式計(jì)算,即將表達(dá)式中的每一條弧取值為1,然后依加法和乘法運(yùn)算得到路徑數(shù)。 通過路徑條件枚舉產(chǎn)生特定路徑測試用例。 3.2白盒測試用例設(shè)計(jì)3.2.2路徑測試法 3學(xué)習(xí)案例 對于上一節(jié)提到的“三角形判定”問題使用路徑測試方法設(shè)計(jì)測試用例。為了完成路徑測試需要先畫出控制流圖,由于在控制流圖中需要將復(fù)雜

31、判定條件分解成簡單判定條件,因此將“三角形判定”問題中的復(fù)合判定表達(dá)式進(jìn)行分解 3.2白盒測試用例設(shè)計(jì)3.2.2路徑測試法 4模仿設(shè)計(jì)測試用例練習(xí) 博弈論中的經(jīng)典案例“囚徒困境”:即A、B兩個同犯被隔離審查,均被告之可能有3種結(jié)果。如果都不招供,各判年徒刑;如A招供,B未招供,A將被釋放,B被判10年徒刑,反之亦然;如都招供,都被判5年徒刑。 3.2.2路徑測試法 5實(shí)際案例 使用路徑測試法為網(wǎng)上商城系統(tǒng)的“購物結(jié)算”功能中優(yōu)惠券驗(yàn)證子功能設(shè)計(jì)測試用例。(1)畫出程序流程圖(2)畫出控制流圖(3)寫出路徑表達(dá)式并進(jìn)行分解(4)計(jì)算路徑表達(dá)式并寫出路徑(5)根據(jù)路徑設(shè)計(jì)測試用例3.2白盒測試用例

32、設(shè)計(jì)3.2.3基本路徑法 1工作任務(wù)描述 在本節(jié)中使用白盒測試方法中最經(jīng)典的基本路徑法為網(wǎng)上購物系統(tǒng)中的“用戶密碼修改”模塊的測試用例集,填寫測試用例表。 3.2白盒測試用例設(shè)計(jì)3.2.3基本路徑法2應(yīng)知應(yīng)會 任何有關(guān)路徑分析的測試都可以被稱為路徑測試。而我們也知道完成路徑測試的理想情況是做到路徑覆蓋,但對于復(fù)雜性強(qiáng)的程序要做到所有路徑覆蓋(測試所有可執(zhí)行路徑)是不可能的。在不能做到所有路徑覆蓋的前提下,可以使用基本路徑測試方法。 3.2.3基本路徑法2應(yīng)知應(yīng)會 (1)基本概念 獨(dú)立路徑:是指至少包含有一條在其他獨(dú)立路徑中從未有過的邊的路徑,也就是指在程序中至少引入一個新的處理語句集合或一個新

33、條件的程序通路。 環(huán)形復(fù)雜度:也稱為圈復(fù)雜度,是一種為程序邏輯復(fù)雜性提供定量測度的軟件度量,將該度量用于計(jì)算程序的基本的獨(dú)立路徑數(shù)目,為確保所有語句至少執(zhí)行一次的測試數(shù)量的上界。 2應(yīng)知應(yīng)會 (2)基本路徑測試方法步驟 畫出程序的控制流圖,在控制流圖中標(biāo)明節(jié)點(diǎn)和弧,明確哪些節(jié)點(diǎn)為判定節(jié)點(diǎn),并保證判定節(jié)點(diǎn)要有對應(yīng)的匯聚節(jié)點(diǎn),形成相應(yīng)的區(qū)域。區(qū)域是由節(jié)點(diǎn)和弧組成的限定范圍,且計(jì)算區(qū)域時(shí)也需要包含控制流圖中的外部范圍。 計(jì)算控制流圖的環(huán)形復(fù)雜度。 根據(jù)環(huán)形復(fù)雜度個數(shù)導(dǎo)出獨(dú)立路徑個數(shù),獨(dú)立路徑個數(shù)等于環(huán)形復(fù)雜度。 3.2.3基本路徑法3學(xué)習(xí)案例使用C語言為“學(xué)生成績統(tǒng)計(jì)系統(tǒng)”編寫系統(tǒng)入口,使用基本路徑測試法設(shè)計(jì)測試用例。(1)畫出程序流程圖并轉(zhuǎn)換為控制流圖(2)計(jì)算環(huán)形復(fù)雜度(3)導(dǎo)出獨(dú)立路徑(4)為上述每一條獨(dú)立路徑設(shè)計(jì)測試用例 3.2.3基本路徑法4模仿設(shè)計(jì)測試用例練習(xí)使用基本路徑測試法對下列函數(shù)進(jìn)行測試,給出測試用例。在下列程序中完成對于參數(shù)給定的3個整數(shù)描述的日期(年、月、日),判定它是星期幾?假定3個整數(shù)可以構(gòu)成正確的日期。 3.2.3基本路徑法5實(shí)際案例使用基本路徑法為網(wǎng)上購物系統(tǒng)中的“用戶密碼修改”模塊設(shè)計(jì)測試用例。3.2白盒測試用例設(shè)計(jì)3.2.4圖形矩陣

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論