集成測(cè)試過程_第1頁
集成測(cè)試過程_第2頁
集成測(cè)試過程_第3頁
集成測(cè)試過程_第4頁
集成測(cè)試過程_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第6章 集成測(cè)試本章大綱p本章討論與集成測(cè)試相關(guān)的內(nèi)容,包括:n集成測(cè)試過程n集成策略p大爆炸p自頂而下p自底而上p三明治集成p基于MM-路徑的集成n集成測(cè)試計(jì)劃n集成測(cè)試設(shè)計(jì)n集成測(cè)試執(zhí)行p定義定義n集成經(jīng)過單元測(cè)試的各組件評(píng)估它們之間交互的測(cè)試過程集成測(cè)試(Integration Testing)在單元測(cè)試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測(cè)試。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實(shí)現(xiàn)。什么是集成測(cè)試n目的n在把各個(gè)模塊連接起來的時(shí)候,穿越模塊接口的數(shù)據(jù)是否會(huì)丟失;n一個(gè)模塊的功能是否會(huì)對(duì)另一個(gè)模塊的功能產(chǎn)生不利的影響;n各個(gè)子功能

2、組合起來,能否達(dá)到預(yù)期要求的父功能;n全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問題;n單個(gè)模塊的誤差累積起來,是否會(huì)放大,以至達(dá)到不能接受的程度。集成測(cè)試必要性n(1)一個(gè)模塊可能對(duì)另一個(gè)模塊產(chǎn)生不利的影響n(2)可能會(huì)發(fā)現(xiàn)單元測(cè)試中未發(fā)現(xiàn)的接口方面的報(bào)告n(3)將子功能合成時(shí)不一定產(chǎn)生所期望的主功能n(4)獨(dú)立可接受的誤差,在組裝后可能會(huì)超過可接受的誤差程度n(5)在單元測(cè)試中無法發(fā)現(xiàn)時(shí)序問題n(6)在單元測(cè)試中無法發(fā)現(xiàn)資源競爭問題集成測(cè)試的層次n傳統(tǒng)軟件:按集成粒度不同,可分為:模塊間集成測(cè)試,子系統(tǒng)內(nèi)集成測(cè)試,子系統(tǒng)間集成測(cè)試;n面向?qū)ο蟮膽?yīng)用系統(tǒng):類內(nèi)集成測(cè)試,類間集成測(cè)試集成策略p集成策略集成策略n在對(duì)測(cè)

3、試對(duì)象分析的基礎(chǔ)上,描述軟件單元集成(組裝)的方式和方法。p是集成測(cè)試過程中各種活動(dòng)的基礎(chǔ),集成策略包括基于功能分解圖的集成p大爆炸p漸增式集成p自頂而下p自底而上p混合集成基于MM-路徑的集成功能分解圖p功能分解定義功能分解定義n一種基于系統(tǒng)功能和子功能將系統(tǒng)分解為多個(gè)組件的模塊分解方式SATMSATM系統(tǒng)系統(tǒng)設(shè)備傳感與控制設(shè)備傳感與控制中央銀行通信中央銀行通信終端傳感與控制終端傳感與控制管理會(huì)話管理會(huì)話通道傳感與控制通道傳感與控制槽傳感與控制槽傳感與控制屏幕驅(qū)動(dòng)器屏幕驅(qū)動(dòng)器鍵盤傳感器鍵盤傳感器驗(yàn)證卡驗(yàn)證卡驗(yàn)證驗(yàn)證PINPIN取數(shù)字取數(shù)字管理事務(wù)管理事務(wù)結(jié)束會(huì)話結(jié)束會(huì)話大爆炸集成p定義定義n

4、把各個(gè)單元一次性集成為一個(gè)完整的系統(tǒng)中進(jìn)行測(cè)試,而不是分階段進(jìn)行p備注備注n大爆炸法是一個(gè)折中的集成測(cè)試策略n如果系統(tǒng)很小或者定位缺陷不是那么復(fù)雜,可以采用大爆炸法。不然,比較好的辦法基于某種集成測(cè)試策略一步步集成各單元自頂而下集成p定義定義n從頂層開始,采用同設(shè)計(jì)順序一樣的思路對(duì)被測(cè)系統(tǒng)進(jìn)行測(cè)試,一般集中于頂層的組件,然后逐步測(cè)試處于底層的組件,被上層單元調(diào)用的下層單元以樁出現(xiàn)p自頂而下的集成方式自頂而下的集成方式n深度優(yōu)先p從最頂層單元開始,持續(xù)向下到下一層,選擇一個(gè)分支,自頂而下一個(gè)一個(gè)的集成這條分支上的所有單元,直到最底層,然后轉(zhuǎn)向另一個(gè)分支,重復(fù)這樣的集成操作直到所有的單元都集成進(jìn)來

5、n廣度優(yōu)先p從最頂層單元開始,持續(xù)向下到下一層, 一個(gè)個(gè)完成下一層上所有單元集成后,再轉(zhuǎn)向下面一層,重復(fù)這樣的集成操作直到所有的單元都集成進(jìn)來廣度優(yōu)先集成舉例p步驟步驟從U1開始測(cè)試, 被U1調(diào)用的U2,U3,U4被S1,S2,S3這3個(gè)樁模塊代替 集成從左向右進(jìn)行移到下一層,將U1和U2集成,被U2調(diào)用的U5被樁模塊S4代替,U3,U4被S2,S3集成U1、U2,U3,U5被S4代替,U4被S3代替集成U1,U2,U3和U4,被U4調(diào)用的U6,被S5代替,U5用S4代替移到下一層,集成U2,U1,U3,U4和U5,用S5代替U6將U6與其它單元集成U1U2U3U4U5U6U1S1S2S3U1

6、S4S2S3U2U1S3U2U1U2U5U3U4S5U1U2U3U4U5U6Step 5Step 4Step 3Step 1Step 2Step 6S4U3U1U4U2S4U3S5廣度優(yōu)先集成舉例軟件測(cè)試方法和應(yīng)用 7-13深度優(yōu)先集成舉例p步驟步驟從U1開始,被U1調(diào)用的U2、U3、U4被3個(gè)樁模塊S1、S2、S3代替,基于功能樹,選擇一個(gè)U1的分支,集成自頂而下。在本例中選擇最左面的一個(gè)分支將U1和U2集成,被U2調(diào)用的U5用樁模塊S4代替,U3、U4被S2、S3代替將U1、U2和U5集成,U3、U4用樁模塊S2、S3代替轉(zhuǎn)回到第二級(jí),將U1、U2、U5和U3集成,用S3代替U4轉(zhuǎn)回到第二

7、級(jí),將U1、U2、U3、U5和U4集成,用S5代替U3將U6與其它模塊集成U1U2U3U4U5U6U1S1S2S3U1S4S2S3U2U1S2S3U2U1S3U2U3U1U2U3U4S5U1U2U3U4U5U6Step 4Step 3Step 1Step 2Step 6U5U5U5深度優(yōu)先集成舉例軟件測(cè)試方法和應(yīng)用 7-15自下而上p定義定義n從最底層組件開始,按照分解樹的結(jié)構(gòu),逐層向上集成,調(diào)用下層單元的上層單元以驅(qū)動(dòng)出現(xiàn)p自下而上舉例n步驟從最底層U5,U3,U6開始,開發(fā)3個(gè)驅(qū)動(dòng)模塊d1,d2,d3調(diào)用它們用U5集成U2,U6,U4被d4,d5代替將所有單元集成在一起d1d3d2自下而上

8、舉例U1U2U3U4U5U6U1U2U3U4U5U6U5U3U6d4d5U2U4U5U6Step 1Step 2Step 3軟件測(cè)試方法和應(yīng)用 7-17三明治集成p定義定義n為減少樁模塊和驅(qū)動(dòng)模塊,在分解樹的子樹上進(jìn)行集成p舉例舉例n步驟基于功能樹,選擇完全分支/子分支作為集成單元,在本例中,我選擇了3個(gè)子樹為了測(cè)試U2和U5的集成,開發(fā)一個(gè)驅(qū)動(dòng)器d1開發(fā)兩個(gè)樁S1和S2測(cè)試U1和U3的集成為了測(cè)試U4和U6,開發(fā)一個(gè)驅(qū)動(dòng)器d2將所有的測(cè)試子樹集成在一起軟件測(cè)試方法和應(yīng)用 7-18三明治集成舉例U1U2U3U4U5U6U1U2U3U4U5U6d1U2U5Step 1Step 2U1S1U3S2

9、d2U4U6subtree1subtree2subtree3軟件測(cè)試方法和應(yīng)用 7-19p定義定義n這種方法由Paul C. Jorgensen提出,MM路徑法是英文Message-Method的簡稱nMM路徑可以用于描述單元之間的控制轉(zhuǎn)移。基于MM路徑的集成軟件測(cè)試方法和應(yīng)用 7-20p下圖展示了一條基于調(diào)用關(guān)系的單元A,B和C的MM路徑基于MM路徑的集成123456123412345ABC一條MM路徑p相關(guān)概念相關(guān)概念n源節(jié)點(diǎn):程序執(zhí)行開始時(shí)或重新開始處的語句片斷。 可能是單元中的第一個(gè)可執(zhí)行語句或者是緊接著轉(zhuǎn)移控制到其它單元節(jié)點(diǎn)之后的節(jié)點(diǎn)n匯節(jié)點(diǎn):程序執(zhí)結(jié)束處的語句片斷。 可能是單元中的

10、最后一個(gè)可執(zhí)行語句或者轉(zhuǎn)移控制到其它單元的節(jié)點(diǎn)。n模塊執(zhí)行路徑:以源節(jié)點(diǎn)開始,以匯節(jié)點(diǎn)結(jié)束的一系列語句,中間沒有插入?yún)R節(jié)點(diǎn)基于MM路徑的集成基于MM路徑的集成123456123412345ABCA的模塊執(zhí)行路徑: MEP(A,1) = MEP(A,2) = MEP(A,3) = B的模塊執(zhí)行路徑: MEP(B,1) = MEP(B,2) = C的模塊執(zhí)行路徑 : MEP(C,1) = MEP(C,2) = n 源節(jié)點(diǎn):A模塊:節(jié)點(diǎn)1,5;B模塊:節(jié)點(diǎn)1,3;C模塊:節(jié)點(diǎn)1n 匯節(jié)點(diǎn):A模塊:節(jié)點(diǎn)4,6;B模塊:點(diǎn)2,4;C模塊:節(jié)點(diǎn)5 p相關(guān)概念相關(guān)概念n消息:一種程序設(shè)計(jì)語言機(jī)制,通過這種機(jī)

11、制一個(gè)單元將控制轉(zhuǎn)移給另一個(gè)單元。p不同的程序設(shè)計(jì)語言消息的含義可能不同,可能是函數(shù)調(diào)用,也可能是消息接收。nMM-路徑是穿插出現(xiàn)模塊執(zhí)行路徑和消息的序列,是描述包含在單獨(dú)單元之間控制轉(zhuǎn)移的模塊執(zhí)行路徑序列?;贛M路徑的集成MEP(a,2)MEP(b,1)MEP(c,1)MEP(b,2)MEP(a,3)軟件測(cè)試方法和應(yīng)用 7-24p應(yīng)用應(yīng)用n基于系統(tǒng)中的調(diào)用關(guān)系、或者對(duì)象之間協(xié)作圖、順序圖等建模信息和代碼標(biāo)識(shí)系統(tǒng)的MM-路徑。n最低要求所有消息均被覆蓋至少一次。p難點(diǎn)難點(diǎn)nMM-路徑的標(biāo)識(shí)基于MM路徑的集成基于MM路徑的集成舉例p功能說明功能說明nNextDate:nextDate(mont

12、h,day,year) 實(shí)現(xiàn)輸出輸入日期的下一個(gè)日期,其中1month 12, 1day 31, 1900year 2060nNextDate由5個(gè)類實(shí)現(xiàn),這5個(gè)類通過彼此發(fā)送消息交互:pCalendarUnit是一個(gè)抽象類ptheDate是CalerdarUnit的一個(gè)子類pDay是CalerdarUnit的一個(gè)子類pMonth是CalerdarUnit的一個(gè)子類pYear是CalerdarUnit的一個(gè)子類CalendarUnit.javatheDate.javaDay.java軟件測(cè)試方法和應(yīng)用 7-29 Month.javaYear.java測(cè)試用例設(shè)計(jì)和實(shí)現(xiàn)pNextDate問題集成

13、測(cè)試的關(guān)鍵點(diǎn)在于 theDate類的increment()方法,為了覆蓋所有的消息,設(shè)計(jì)了3個(gè)方法:testDayIncrement()方法執(zhí)行msg7的true分支testMonthIncrement()方法執(zhí)行msg7的false分支,msg8和msg11的true分支testYearIncrement()方法執(zhí)行msg7的false分支,msg8,msg9,msg10的false分支p通過執(zhí)行這3個(gè)方法,各類間的所有消息發(fā)送都被覆蓋到了軟件測(cè)試方法和應(yīng)用 7-32testNextDatemaintheDateprintDate()DayDay()MonthMonth()YearYear(

14、)Date()Increment()msg1msg4setCurrentPos()Increment()setDay()getDay()msg21setCurrentPos()Increment()getYear()isLeap()setCurrentPos()Increment()setMonth()getMonth()getMonthSize()msg5msg18msg19msg6msg15msg16msg7msg17msg20msg12msg14msg13msg2msg3Jan. 16th 2007 MM路徑testDayIncrement()方法的MM路徑, 這條路徑不能覆蓋msg8,

15、msg9,msg10 and msg11軟件測(cè)試方法和應(yīng)用 7-33testNextDatemainDateprintDate()DayDay()MonthMonth()YearYear()Date()Increment()msg1msg4setCurrentPos()Increment()setDay()getDay()msg21setCurrentPos()Increment()getYear()isLeap()setCurrentPos()Increment()setMonth()getMonth()getMonthSize()msg5msg18msg19msg6msg15msg16ms

16、g7msg17msg20msg12msg14msg13msg2msg3Jan.31st 2007 的MM路徑testMonthIncrement() 方法的MM路徑,這條路徑不能覆蓋msg9 and msg10msg8msg11軟件測(cè)試方法和應(yīng)用 7-34testNextDatemainDateprintDate()DayDay()MonthMonth()YearYear()Date()Increment()msg1msg4setCurrentPos()Increment()setDay()getDay()msg21setCurrentPos()Increment()getYear()isLe

17、ap()setCurrentPos()Increment()setMonth()getMonth()getMonthSize()msg5msg18msg19msg6msg15msg16msg7msg17msg20msg12msg14msg13msg2msg3Dec.31st 2006 的MM路徑testMonthIncrement() 方法的MM路徑,這條路徑覆蓋了剩余的消息msg8msg11msg9msg10p與單元測(cè)試類似,主要的測(cè)試活動(dòng)包括n集成測(cè)試計(jì)劃n設(shè)計(jì)集成測(cè)試用例n實(shí)現(xiàn)測(cè)試用例n搭建集成測(cè)試環(huán)境n執(zhí)行測(cè)試n測(cè)試總結(jié)n評(píng)估測(cè)試工作量p很多時(shí)候采用黑盒和白盒相結(jié)合被稱為灰盒測(cè)試的測(cè)試方法p集成測(cè)試可由開發(fā)人員也可由測(cè)試人員承擔(dān)集成測(cè)試過程p集成測(cè)試環(huán)境中的要素n執(zhí)行集成測(cè)試的硬件和軟件n數(shù)據(jù)庫環(huán)境n網(wǎng)絡(luò)環(huán)境n接口仿真器n集成測(cè)試用例、樁和驅(qū)動(dòng)p集成測(cè)試報(bào)告n與單元測(cè)試報(bào)告類似搭建集成測(cè)試環(huán)境n不要過份區(qū)分單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試的界限n關(guān)鍵單元尤先集成,關(guān)鍵單元可能是:p系統(tǒng)的基礎(chǔ)單元p與多個(gè)其它單元關(guān)系密切的單元n如果測(cè)試人

溫馨提示

  • 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)論