軟件工程黑盒測試_第1頁
軟件工程黑盒測試_第2頁
軟件工程黑盒測試_第3頁
軟件工程黑盒測試_第4頁
軟件工程黑盒測試_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、5.45.4黑盒測試的測試用例設(shè)計黑盒測試的測試用例設(shè)計 5.4.1 5.4.1 等價類劃分法等價類劃分法(等價分配)(等價分配) 把所有可能的輸入數(shù)據(jù)把所有可能的輸入數(shù)據(jù)( (有效的和無效有效的和無效的的) )劃分成若干個等價的子集劃分成若干個等價的子集( (稱為等價類稱為等價類別或等價區(qū)間別或等價區(qū)間) ),使得每個子集中的一個典,使得每個子集中的一個典型值在測試中的作用與這一子集中所有其型值在測試中的作用與這一子集中所有其它值的作用相同它值的作用相同. . 可從每個子集中選取一組數(shù)據(jù)來測試程序可從每個子集中選取一組數(shù)據(jù)來測試程序例例: :某報表處理系統(tǒng)要求用戶某報表處理系統(tǒng)要求用戶輸入輸

2、入處理報表處理報表 的的日期日期,日期限制在,日期限制在20032003年年1 1月至月至20082008年年 1212月,即系統(tǒng)只能對該段期間內(nèi)的報表月,即系統(tǒng)只能對該段期間內(nèi)的報表 進行處理,如日期不在此范圍內(nèi),則顯進行處理,如日期不在此范圍內(nèi),則顯 示輸入錯誤信息。示輸入錯誤信息。 系統(tǒng)日期規(guī)定由年、月的系統(tǒng)日期規(guī)定由年、月的6 6位數(shù)字字符組位數(shù)字字符組 成,前四位代表年,后兩位代表月。成,前四位代表年,后兩位代表月。 如何用等價類劃分法設(shè)計測試用例如何用等價類劃分法設(shè)計測試用例, , 來測試程序的日期檢查功能?來測試程序的日期檢查功能?如何劃分等價類?如何劃分等價類?有效等價類有效等

3、價類( (合理等價類合理等價類) )無效等價類無效等價類( (不合理等價類不合理等價類) ) 劃分等價類的標準:劃分等價類的標準:覆蓋覆蓋不相交不相交代表性代表性劃分等價類的規(guī)則劃分等價類的規(guī)則 (1)(1)如果輸入條件規(guī)定了取值范圍,可定義一個有如果輸入條件規(guī)定了取值范圍,可定義一個有 效等價類和兩個無效等價類。效等價類和兩個無效等價類。例例 輸入值是學生成績,范圍是輸入值是學生成績,范圍是0 01001000 1000 100 有效等價類有效等價類00成績成績100100無效等價類無效等價類 成績成績100100 無效等價類無效等價類 成績成績00(2)(2)如果輸入條件代表集合的某個元素

4、,則可定義如果輸入條件代表集合的某個元素,則可定義 一個有效等價類和一個無效等價類。一個有效等價類和一個無效等價類。劃分等價類的規(guī)則:劃分等價類的規(guī)則:(3)(3)如規(guī)定了輸入數(shù)據(jù)的一組值,且程序?qū)Σ煌斎缫?guī)定了輸入數(shù)據(jù)的一組值,且程序?qū)Σ煌?入值做不同處理,則每個允許的輸入值是一個入值做不同處理,則每個允許的輸入值是一個 有效等價類,并有一個無效等價類有效等價類,并有一個無效等價類( (所有不允所有不允 許的輸入值的集合許的輸入值的集合) )。例:輸入條件說明學歷可為例:輸入條件說明學歷可為: :??啤⒈究?、碩士、博士??啤⒈究?、碩士、博士四四 種之一,則分別取這四個值作為種之一,則分別取

5、這四個值作為四個有效等價類四個有效等價類, 另外把四種學歷之外的任何學歷作為無效等價類另外把四種學歷之外的任何學歷作為無效等價類(4)(4)如果規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則,可確定如果規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則,可確定 一個有效等價類(符合規(guī)則)和若干個無效等一個有效等價類(符合規(guī)則)和若干個無效等 價類(從不同角度違反規(guī)則價類(從不同角度違反規(guī)則) )。(5)(5)如已劃分的等價類各元素在程序中的處理方式如已劃分的等價類各元素在程序中的處理方式 不同,則應(yīng)將此等價類進一步劃分成更小的等不同,則應(yīng)將此等價類進一步劃分成更小的等 價類。價類。用等價類劃分法設(shè)計測試用例步驟:用等價類劃分法設(shè)計測

6、試用例步驟:(1)(1)形成形成等價類表等價類表,每一等價類規(guī)定一個,每一等價類規(guī)定一個 唯一的唯一的編號編號;(2)(2)設(shè)計一設(shè)計一測試用例測試用例,使其盡可能多地覆,使其盡可能多地覆 蓋尚未蓋尚未覆蓋覆蓋的的有效等價類有效等價類,重復(fù)這一,重復(fù)這一 步驟,直到所有有效等價類均被測試步驟,直到所有有效等價類均被測試 用例所覆蓋;用例所覆蓋;(3)(3)設(shè)計一新設(shè)計一新測試用例測試用例,使其只,使其只覆蓋覆蓋一個一個 無效等價類無效等價類,重復(fù)這一步驟直到所有,重復(fù)這一步驟直到所有 無效等價類均被覆蓋;無效等價類均被覆蓋;第一步:等價類劃分第一步:等價類劃分輸入條件輸入條件 有效等價類有效等

7、價類 無效等價類無效等價類 報表日期的報表日期的類型及長度類型及長度6 6位數(shù)字字符位數(shù)字字符(1)(1)有非數(shù)字字符有非數(shù)字字符 (4)(4)少于少于6 6個數(shù)字字符個數(shù)字字符 (5)(5)多于多于6 6個數(shù)字字符個數(shù)字字符 (6)(6)年份范圍年份范圍在在2003200320082008之間之間 (2)(2)小于小于2003 2003 (7)(7)大于大于2008 2008 (8)(8)月份范圍月份范圍在在1 11212之間之間(3)(3)“報表日期報表日期”輸入條件的等價類表輸入條件的等價類表小于小于1 1 (9)(9)大于大于12 12 (10)(10)第二步:為有效等價類設(shè)計測試用例

8、 測試數(shù)據(jù) 期望結(jié)果 覆蓋范圍200306200306等價類等價類(1)(2)(3)(1)(2)(3)輸入有效輸入有效對表中編號為對表中編號為1,2,31,2,3的的3 3個有效等價類用一個測個有效等價類用一個測試用例覆蓋:試用例覆蓋:(1)(1)6 6位數(shù)字字符位數(shù)字字符(2)(2)年在年在2003200320082008之間之間 (3)(3)月在月在1 11212之間之間第三步:為每一個無效等價類設(shè)至少 設(shè)計一個測試用例 測試數(shù)據(jù) 期望結(jié)果 覆蓋范圍003003maymay等價類等價類(4)(4)輸入無效輸入無效2003520035等價類等價類(5)(5)輸入無效輸入無效200300520

9、03005等價類等價類(6)(6)輸入無效輸入無效200120010505等價類等價類(7)(7)輸入無效輸入無效200920090505等價類等價類(8)(8)輸入無效輸入無效200320030000等價類等價類(9)(9)輸入無效輸入無效200320031313等價類等價類(10)(10)輸入無效輸入無效不能出現(xiàn)相同不能出現(xiàn)相同的測試用例的測試用例本例的本例的1010個等價類至個等價類至少需要少需要8 8個測試用例個測試用例例例: :對招干考試系統(tǒng)對招干考試系統(tǒng)“輸入學生成績輸入學生成績”子模塊子模塊 設(shè)計測試錄入準考證號的測試用例設(shè)計測試錄入準考證號的測試用例準考證號數(shù)據(jù)格式定義:共準考

10、證號數(shù)據(jù)格式定義:共6 6為數(shù)字組成,其中為數(shù)字組成,其中第一位為專業(yè)代號第一位為專業(yè)代號: :1 1- -行政專業(yè)行政專業(yè), ,2 2- -法律專業(yè),法律專業(yè),3 3- -財經(jīng)專業(yè)財經(jīng)專業(yè)后后5 5位為考生順序號,編碼范圍為:位為考生順序號,編碼范圍為: 行政專業(yè)準考證號碼為行政專業(yè)準考證號碼為: :1 110001100011 11121511215 法律專業(yè)準考證號碼為法律專業(yè)準考證號碼為: :2 210001100012 21200612006 財經(jīng)專業(yè)準考證號碼為財經(jīng)專業(yè)準考證號碼為: :3 310001100013 31401514015 準考證號碼的等價類劃分準考證號碼的等價類劃

11、分 有效等價類有效等價類: : (1) 110001 (1) 110001 111215111215 (2) 210001 (2) 210001 212006212006 (3) 310001 (3) 310001 314015314015 無效等價類無效等價類: : (4) - (4) - 110000110000 (5) 111216 (5) 111216 210000210000 (6) 212007 (6) 212007 3100031000 (7) 314016 (7) 314016 + + 5.4.2 5.4.2 邊界值分析法邊界值分析法邊界值分析法與等價類劃分法區(qū)別邊界值分析法與

12、等價類劃分法區(qū)別(1)(1)邊界值分析不是從某等價類中邊界值分析不是從某等價類中 隨便挑一個作為代表,而是使隨便挑一個作為代表,而是使 這個等價類的每個邊界都要作這個等價類的每個邊界都要作 為測試條件。為測試條件。(2)(2)邊界值分析不僅考慮輸入條件,邊界值分析不僅考慮輸入條件, 還要考慮輸出空間產(chǎn)生的測試還要考慮輸出空間產(chǎn)生的測試 情況情況被測試被測試子子 域域測試內(nèi)點測試內(nèi)點測試外點測試外點 如果在懸崖峭壁邊如果在懸崖峭壁邊可以自信地安全行走,可以自信地安全行走,平地就不在話下。平地就不在話下。 如果軟件在能力達如果軟件在能力達到極限時能夠運行,那到極限時能夠運行,那么在正常情況下就不會

13、么在正常情況下就不會出什么問題出什么問題。軟件邊界與懸崖很類似輸入輸入條件條件報表日報表日期的類期的類型及長型及長度度1 1個數(shù)字字符個數(shù)字字符5 5個數(shù)字字符個數(shù)字字符7 7個數(shù)字字符個數(shù)字字符有有1 1個非數(shù)字字符個非數(shù)字字符全部是非數(shù)字字符全部是非數(shù)字字符6 6個數(shù)字字符個數(shù)字字符顯示出錯顯示出錯顯示出錯顯示出錯顯示出錯顯示出錯顯示出錯顯示出錯顯示出錯顯示出錯輸入有效輸入有效日期日期范圍范圍月份月份范圍范圍“報表日期報表日期”邊界值分析法測試用邊界值分析法測試用例例測試用例說明測試用例說明測試數(shù)據(jù)測試數(shù)據(jù) 期望結(jié)果期望結(jié)果選取理由選取理由5 52003520035200300520030

14、052003.52003.5may-may-200305200305月份為月份為1 1月月月份為月份為1212月月月份月份11212200301200301200312200312200300200300200313200313200301200301200812200812200300200300200813200813輸入有效輸入有效輸入有效輸入有效顯示出錯顯示出錯顯示出錯顯示出錯輸入有效輸入有效輸入有效輸入有效顯示出錯顯示出錯顯示出錯顯示出錯在有效范圍在有效范圍邊界上選取邊界上選取數(shù)據(jù)數(shù)據(jù)僅有僅有1 1個合法字符個合法字符比有效長度少比有效長度少1 1比有效長度多比有效長度多1 1只有只

15、有1 1個非法字符個非法字符6 6個非法字符個非法字符類型及長度均有效類型及長度均有效最小日期最小日期最大日期最大日期剛好小于最小日期剛好小于最小日期剛好大于最大日期剛好大于最大日期最小月份最小月份最大月份最大月份剛好小于最小月份剛好小于最小月份剛好大于最大月份剛好大于最大月份有效等價類和用來測試有效等價類和用來測試getnumdaysinmonth()getnumdaysinmonth()方法所選的有效輸入方法所選的有效輸入 有效有效等價類一個月有一個月有3131天天, ,非閏年非閏年190119017(7(七月七月) )一個月有一個月有3131天天, , 閏年閏年190419047(7(七

16、月七月) )一個月有一個月有3030天天, ,非閏年非閏年190119016(6(六月六月) )一個月有一個月有3030天天, , 閏年閏年190419046(6(六月六月) )一個月為一個月為2828或或2929天天, ,非閏年非閏年190119012(2(二月二月) )月份輸入值年份輸入值一個月為一個月為2828或或2929天天, , 閏年閏年2(2(二月二月) )19041904用來測試用來測試getnumdaysinmonth()getnumdaysinmonth()方法的附加邊界值方法的附加邊界值 等價類可以被可以被400400整除的閏年整除的閏年200020002(2(二月二月)

17、)可以被可以被100100整除的非閏年整除的非閏年190019002(2(二月二月) )非正數(shù)無效月份非正數(shù)無效月份129112910 0正數(shù)無效月份正數(shù)無效月份131513151313月份輸入值年份輸入值5.4.3 5.4.3 錯誤推測法錯誤推測法(error guessing)根據(jù)經(jīng)驗、直覺和預(yù)感來進行測試根據(jù)經(jīng)驗、直覺和預(yù)感來進行測試例如:例如:一定要考慮建立處理下列等價類一定要考慮建立處理下列等價類: :缺省值缺省值空白空白空值空值零值零值無輸入條件無輸入條件在已經(jīng)找到軟件缺陷的地方再找找在已經(jīng)找到軟件缺陷的地方再找找 5.4.4 5.4.4 因果圖法因果圖法 因果圖適合于描述對于多種

18、輸入條件因果圖適合于描述對于多種輸入條件的組合,相應(yīng)產(chǎn)生多個動作的形式來設(shè)計的組合,相應(yīng)產(chǎn)生多個動作的形式來設(shè)計測試用例。測試用例。 因果圖方法最終生成的是因果圖方法最終生成的是判定表判定表。因果圖方法實例某電力公司有某電力公司有a a、b b、c c、d d四類收費標準四類收費標準, ,并規(guī)定:并規(guī)定:居民用電居民用電 100100度度/ /月月 按按a a類收費類收費 100100度度/ /月按月按b b類收費類收費動力用電動力用電 1000010000度度/ /月月, ,非高峰非高峰,b,b類收費類收費 1000010000度度/ /月月, ,非高峰非高峰,c,c類收費類收費 10000

19、10000度度/ /月月, , 高峰高峰,c,c類收費類收費 1000010000度度/ /月月, , 高峰高峰,d,d類收費類收費 用因果圖表明輸入和輸出間的邏輯關(guān)系用因果圖表明輸入和輸出間的邏輯關(guān)系1 1i i1 12 2a ab bc c4 43 35 5d di i4 4i i3 3i i2 2因因果果把因果圖轉(zhuǎn)換為判定表把因果圖轉(zhuǎn)換為判定表組合條件組合條件條件條件( (原因原因) ) 動作動作( (結(jié)果結(jié)果) )a ab bc c1 12 23 31 12 23 34 45 56 61 10 01 11 10 00 00 01 11 10 00 00 01 11 10 00 00 0

20、0 01 10 00 00 00 01 11 10 04 41 10 01 10 05 50 00 01 11 1d d0 00 00 01 11 10 00 01 10 00 00 00 0測試用例測試用例為判定表每一列設(shè)計一個測試用例為判定表每一列設(shè)計一個測試用例: :1 1列列 居民電居民電,90,90度度/ /月月 a a2 2列列 居民電居民電,110,110度度/ /月月 b b3 3列列 動力電動力電, ,非高峰非高峰,8000,8000度度/ /月月 b b4 4列列 動力電動力電, ,非高峰非高峰,1.2,1.2萬度萬度/ /月月 c c5 5列列 動力電動力電, , 高峰高

21、峰,0.9,0.9萬度萬度/ /月月 c c6 6列列 動力電動力電, , 高峰高峰,1.1,1.1萬度萬度/ /月月 d d 條件條件 測試用例測試用例 預(yù)期結(jié)果預(yù)期結(jié)果組合組合 ( (輸入數(shù)據(jù)輸入數(shù)據(jù)) () (輸出動作輸出動作) )5.4.55.4.5 狀態(tài)測試狀態(tài)測試 軟件必須測試程序的狀態(tài)及其轉(zhuǎn)換。軟件必須測試程序的狀態(tài)及其轉(zhuǎn)換。測試軟件的邏輯流程測試軟件的邏輯流程建立狀態(tài)轉(zhuǎn)換圖建立狀態(tài)轉(zhuǎn)換圖減少要測試的狀態(tài)及轉(zhuǎn)換的數(shù)量減少要測試的狀態(tài)及轉(zhuǎn)換的數(shù)量空閑空閑等待用戶等待用戶輸入命令輸入命令按下按下escesc鍵鍵顯示口令框顯示口令框口令錯誤口令錯誤 消除消除口令正確口令正確初始狀態(tài)消失

22、初始狀態(tài)消失空閑空閑等待用戶等待用戶輸入命令輸入命令按下按下escesc鍵鍵口令正確口令正確口令錯誤口令錯誤不同形式的狀態(tài)轉(zhuǎn)換圖 在黑盒測試中,不必了解代碼中設(shè)置的地層變量,在黑盒測試中,不必了解代碼中設(shè)置的地層變量,從軟件用戶的角度建立狀態(tài)圖即可從軟件用戶的角度建立狀態(tài)圖即可減少要測試的狀態(tài)及轉(zhuǎn)換的數(shù)量減少要測試的狀態(tài)及轉(zhuǎn)換的數(shù)量每種狀態(tài)至少訪問一次每種狀態(tài)至少訪問一次測試最常見最普遍的狀態(tài)轉(zhuǎn)換測試最常見最普遍的狀態(tài)轉(zhuǎn)換測試狀態(tài)之間最不常用的分支測試狀態(tài)之間最不常用的分支測試所有錯誤狀態(tài)及其返回值、測試所有錯誤狀態(tài)及其返回值、測試隨即狀態(tài)轉(zhuǎn)換測試隨即狀態(tài)轉(zhuǎn)換失敗狀態(tài)測試失敗狀態(tài)測試找到測試軟

23、件失敗的案例找到測試軟件失敗的案例。競爭條件和時序錯亂競爭條件和時序錯亂重復(fù)重復(fù)壓迫壓迫重負重負應(yīng)聯(lián)合使用,同時進行 設(shè)置設(shè)置2bwatch 上的時間的順序圖上的時間的順序圖:2bwatch用戶用戶按下左和右按鈕按下左和右按鈕:2bwatch輸入輸入 :2bwatch顯示顯示 :2bwatch時間時間時間時間按下左按鈕按下左按鈕按下右按鈕按下右按鈕按下左和右按鈕按下左和右按鈕閃爍小時閃爍小時閃爍分鐘閃爍分鐘增加分鐘增加分鐘刷新刷新提交更新時間提交更新時間停止閃爍停止閃爍2bwatch 設(shè)置時間功能的狀態(tài)圖和測試結(jié)果設(shè)置時間功能的狀態(tài)圖和測試結(jié)果 按左按鈕按左按鈕 按右按鈕按右按鈕按左按鈕按左按

24、鈕 按右按鈕按右按鈕4. 4. 2 2分鐘以后分鐘以后測量時間測量時間設(shè)置時間設(shè)置時間電池沒電電池沒電3.3.按下左右按鈕按下左右按鈕5.5.按下左右按鈕按下左右按鈕/ /蜂鳴蜂鳴8.8. 20 20年以后年以后7.7. 20 20年以后年以后6.6.2.2.1.1.激勵因素空集合空集合測量時間測量時間1.1.初始變遷初始變遷測試的變遷預(yù)期結(jié)果狀態(tài)按下左邊按鈕按下左邊按鈕測量時間測量時間2.2.同時按下兩個按鈕同時按下兩個按鈕設(shè)置時間設(shè)置時間3.3.等等2 2分鐘分鐘測量時間測量時間4.4.超時超時5.55.5 針對專門環(huán)境和應(yīng)用的測試針對專門環(huán)境和應(yīng)用的測試5.5.1 5.5.1 gui測試

25、測試 常見常見gui測試指南:測試指南:對于窗口對于窗口對于菜單和鼠標操作對于菜單和鼠標操作對于數(shù)據(jù)項對于數(shù)據(jù)項5.5.2 5.5.2 c/s體系結(jié)構(gòu)的體系結(jié)構(gòu)的測試測試 整體整體c/sc/s測試策略測試策略( (三個不同層次三個不同層次) )客戶端應(yīng)以客戶端應(yīng)以“分離的分離的”模式被測試模式被測試 ( (不考慮服務(wù)器和底層網(wǎng)絡(luò)的運行不考慮服務(wù)器和底層網(wǎng)絡(luò)的運行) )客戶端軟件和關(guān)聯(lián)的服務(wù)器端應(yīng)用被一起測試客戶端軟件和關(guān)聯(lián)的服務(wù)器端應(yīng)用被一起測試( (網(wǎng)絡(luò)運行不被明顯考慮網(wǎng)絡(luò)運行不被明顯考慮) )完整的完整的c/sc/s體系結(jié)構(gòu)體系結(jié)構(gòu)( (包括網(wǎng)絡(luò)運行和性能包括網(wǎng)絡(luò)運行和性能) )被測被測試

26、試 c/s c/s常用測試方法常用測試方法客戶端應(yīng)用功能測試客戶端應(yīng)用功能測試服務(wù)器測試服務(wù)器測試(協(xié)調(diào)和數(shù)據(jù)管理功能、性能)(協(xié)調(diào)和數(shù)據(jù)管理功能、性能)數(shù)據(jù)庫測試數(shù)據(jù)庫測試事務(wù)測試事務(wù)測試網(wǎng)絡(luò)通信測試網(wǎng)絡(luò)通信測試5.5.3 5.5.3 實時系統(tǒng)測試實時系統(tǒng)測試 可采用以下四步策略:可采用以下四步策略:(1) (1) 任務(wù)測試任務(wù)測試(2) (2) 行為測試行為測試(3) (3) 任務(wù)間測試任務(wù)間測試(4) (4) 系統(tǒng)測試系統(tǒng)測試(1) (1) 任務(wù)測試任務(wù)測試 ( (task testing) ) 對每一個任務(wù)進行單獨測試對每一個任務(wù)進行單獨測試( (白盒、黑盒測試白盒、黑盒測試) ),發(fā)

27、現(xiàn),發(fā)現(xiàn)邏輯和功邏輯和功能上錯誤能上錯誤,不能發(fā)現(xiàn)定時上和行為,不能發(fā)現(xiàn)定時上和行為上錯誤上錯誤 。(2)(2)行為行為測試測試( (behavioral testing) ) 用用case工具創(chuàng)建應(yīng)用系統(tǒng)模型,工具創(chuàng)建應(yīng)用系統(tǒng)模型,模擬實時系統(tǒng)行為。模擬實時系統(tǒng)行為。 按類測試各種事件按類測試各種事件( (如中斷、控制如中斷、控制信號、數(shù)據(jù)信號、數(shù)據(jù)) )。 測試過的事件以隨機次序、隨機頻測試過的事件以隨機次序、隨機頻率送給系統(tǒng)率送給系統(tǒng), ,檢查軟件檢查軟件行為方面的錯誤行為方面的錯誤. .(3)(3)任務(wù)間測試任務(wù)間測試( (intertask testing) ) 檢查檢查與時間有關(guān)錯

28、誤與時間有關(guān)錯誤。 如用不同數(shù)據(jù)速率、處理負載如用不同數(shù)據(jù)速率、處理負載 測試相互通信的異步任務(wù)。測試相互通信的異步任務(wù)。 通過消息隊列或數(shù)據(jù)存儲測試通過消息隊列或數(shù)據(jù)存儲測試 任務(wù)間的通信來找出數(shù)據(jù)存儲區(qū)錯任務(wù)間的通信來找出數(shù)據(jù)存儲區(qū)錯 誤的范圍。誤的范圍。(4) (4) 系統(tǒng)測試系統(tǒng)測試 ( (system testing) ) 軟件、硬件組裝后,找出軟件、硬件組裝后,找出軟、軟、硬件接口錯誤硬件接口錯誤。軟件測試的過程軟件測試的過程單元單元測試測試被測被測模塊模塊集成集成測試測試設(shè)計設(shè)計信息信息單元單元測試測試被測被測模塊模塊單元單元測試測試被測被測模塊模塊測試過測試過的模塊的模塊確認確

29、認測試測試系統(tǒng)系統(tǒng)測試測試軟件軟件需求需求其它系其它系統(tǒng)元素統(tǒng)元素裝配裝配好的軟件好的軟件 確認確認的軟件的軟件可運可運行的行的軟件軟件5.65.6軟件測試的步驟軟件測試的步驟軟件測試策略軟件測試策略單元測試單元測試u uc cd dr rs si iv vstst集成測試集成測試確認測試確認測試系統(tǒng)測試系統(tǒng)測試系統(tǒng)工程系統(tǒng)工程軟件需求分析軟件需求分析軟件設(shè)計軟件設(shè)計代碼編寫代碼編寫5.6.1 5.6.1 單元測試單元測試一一. .單元測試的內(nèi)容單元測試的內(nèi)容主要對模塊的主要對模塊的五個基本特性五個基本特性進行評價進行評價模塊模塊錯誤處理錯誤處理模塊接口模塊接口局部數(shù)局部數(shù)據(jù)結(jié)構(gòu)據(jù)結(jié)構(gòu) 重要的

30、重要的執(zhí)行路徑執(zhí)行路徑邊界條件邊界條件1.1.常見錯誤類型常見錯誤類型 接口錯誤接口錯誤i/oi/o錯誤錯誤數(shù)據(jù)結(jié)構(gòu)錯誤數(shù)據(jù)結(jié)構(gòu)錯誤算法錯誤算法錯誤比較及控制邏輯錯誤比較及控制邏輯錯誤錯誤處理錯誤錯誤處理錯誤2.2. 模塊測試基本原則模塊測試基本原則 至少一次測試所有語句至少一次測試所有語句 測試所有可能的執(zhí)行或邏輯路徑的組合測試所有可能的執(zhí)行或邏輯路徑的組合 測試每個模塊的所有入口和出口測試每個模塊的所有入口和出口3.3. 確定單元測試數(shù)據(jù)集確定單元測試數(shù)據(jù)集 值域值域值類值類離散值離散值值的次序集值的次序集( (測試順序文件和測試順序文件和表表) ) 二二. . 單元測試的方法單元測試的方

31、法單元測試一般為編碼步驟的附屬部分單元測試一般為編碼步驟的附屬部分. .模塊不是獨立的程序模塊不是獨立的程序, ,自己不能運行自己不能運行, ,要靠其它部分來調(diào)用和驅(qū)動要靠其它部分來調(diào)用和驅(qū)動, ,要為每個要為每個單元測試開發(fā)兩個軟件單元測試開發(fā)兩個軟件: :(1)(1)驅(qū)動模塊驅(qū)動模塊( (驅(qū)動程序驅(qū)動程序) ): :相當于主模塊相當于主模塊(2)(2)樁模塊樁模塊( (測試存根、連接程序測試存根、連接程序):): 代替所測模塊調(diào)用的子模塊代替所測模塊調(diào)用的子模塊單元測試的測試環(huán)境舉例單元測試的測試環(huán)境舉例: :b ba ac cd de e待測試模塊待測試模塊單元測試的測試環(huán)境舉例單元測試

32、的測試環(huán)境舉例: :被測模塊被測模塊 b b 驅(qū)動模塊驅(qū)動模塊( (模擬模塊模擬模塊a a) )樁模塊樁模塊( (測試存根測試存根) )( (模擬模塊模擬模塊e e) )測試用例測試用例測試結(jié)果測試結(jié)果許多模塊不能用簡單的軟件進行充分的單元許多模塊不能用簡單的軟件進行充分的單元測試測試, , 此時此時, , 完全的測試可放到集成測試階完全的測試可放到集成測試階段再進行段再進行. .單元測試的測試環(huán)境舉例單元測試的測試環(huán)境舉例: : 實際軟件實際軟件華氏到懾氏華氏到懾氏轉(zhuǎn)換模塊轉(zhuǎn)換模塊溫度數(shù)據(jù)溫度數(shù)據(jù)實際配置實際配置測試用例數(shù)據(jù)測試用例數(shù)據(jù)結(jié)果結(jié)果 測試驅(qū)動軟件測試驅(qū)動軟件華氏到懾氏華氏到懾氏轉(zhuǎn)

33、換模塊轉(zhuǎn)換模塊結(jié)果結(jié)果測試驅(qū)動際配置測試驅(qū)動際配置單元測試的測試環(huán)境舉例單元測試的測試環(huán)境舉例 溫度顯示模塊溫度顯示模塊溫度接口溫度接口模塊模塊實際配置實際配置測試驅(qū)動際配置測試驅(qū)動際配置 溫度顯示模塊溫度顯示模塊程序員編寫程序員編寫的樁模塊的樁模塊( (測試存根測試存根) )溫度值的測試文件溫度值的測試文件5.6.2 5.6.2 集成測試集成測試( (組裝測試組裝測試) ) 集成測試需考慮的問題集成測試需考慮的問題: :數(shù)據(jù)穿越接口可能丟失數(shù)據(jù)穿越接口可能丟失. .一模塊可能破壞另一模塊功能一模塊可能破壞另一模塊功能. .子功能組裝可能未產(chǎn)生所要求的子功能組裝可能未產(chǎn)生所要求的 主功能主功能

34、. .全程數(shù)據(jù)結(jié)構(gòu)可能出問題全程數(shù)據(jù)結(jié)構(gòu)可能出問題. .誤差累積問題誤差累積問題. .集成測試方法集成測試方法 通常采用黑盒測試技術(shù)通常采用黑盒測試技術(shù) 實施策略實施策略: :非漸增式測試非漸增式測試漸增式測試漸增式測試 深度優(yōu)先深度優(yōu)先廣度優(yōu)先廣度優(yōu)先自頂向下結(jié)合自頂向下結(jié)合自底向上結(jié)合自底向上結(jié)合一一. . 非漸增式集成方式非漸增式集成方式 一次就把所有通過了單元測試的模塊一次就把所有通過了單元測試的模塊組合在一起進行全程序的測試組合在一起進行全程序的測試. . 缺點缺點: :發(fā)現(xiàn)錯誤難以診斷定位發(fā)現(xiàn)錯誤難以診斷定位. . 又稱又稱“莽撞測試莽撞測試” . .二二. . 漸增式集成方式漸增

35、式集成方式 從一個模塊開始從一個模塊開始, ,測一次添加一個模測一次添加一個模塊,邊組裝邊測試,以發(fā)現(xiàn)與接口相聯(lián)系塊,邊組裝邊測試,以發(fā)現(xiàn)與接口相聯(lián)系的問題。的問題。自頂向下結(jié)合方式舉例自頂向下結(jié)合方式舉例: :adbe模塊測試模塊測試結(jié)合順序結(jié)合順序cf深度優(yōu)先深度優(yōu)先: :a、b、e、c、d、f廣度優(yōu)先廣度優(yōu)先: :a、b、c、d、e、f自頂向下結(jié)合方式舉例自頂向下結(jié)合方式舉例: :( (深度優(yōu)先深度優(yōu)先) )a測試測試 as2s2s1s1s3s3a加入加入bs2s2bs3s3s4s4a加入加入es2s2bs3s3ea加入加入ccbs3s3e加入加入dcbde加入加入fcbdeaafs5s

36、5自底向上結(jié)合方式舉例自底向上結(jié)合方式舉例: :a ac cb bd df fe ee ed d1 1c cd d3 3f fd d4 4b bd d2 2e ed dd d5 5f f自底向上結(jié)合方式舉例自底向上結(jié)合方式舉例: :mcd1mambd2d3簇簇1 1簇簇2 2簇簇3 33. 3. 混合集成測試方法混合集成測試方法一般對軟件結(jié)構(gòu)的上層使用自頂向下結(jié)合的一般對軟件結(jié)構(gòu)的上層使用自頂向下結(jié)合的 方法方法; ;對下層使用自底向上結(jié)合的方法對下層使用自底向上結(jié)合的方法; ;自頂向下自頂向下自底向上自底向上 優(yōu)點優(yōu)點可在測試早期可在測試早期 實現(xiàn)并實現(xiàn)并驗證系統(tǒng)主要功能驗證系統(tǒng)主要功能設(shè)計測試用例容易設(shè)計測試用例容易 缺點缺點不需驅(qū)動模塊不需驅(qū)動模塊需樁模塊需樁模塊不需樁模塊不需樁模塊 只有到最后程序才能作只有到最后程序才能作為一個整體為一個整體五五. . 測試和測試和測試測試測試測試(alpha)(alpha)在開發(fā)者的場所由用戶進行在開發(fā)者的場所由用戶進行, ,在開發(fā)在開發(fā)著關(guān)注和控制的環(huán)境下進行著關(guān)注和控制的環(huán)境下進行. .測試測試(be

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論