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

下載本文檔

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

文檔簡介

第七章集成(jíchénɡ)測試過程第一頁,共38頁。本章(běnzhānɡ)大綱本章討論與集成測試相關(guān)(xiāngguān)的內(nèi)容,包括:集成測試過程集成策略大爆炸自頂而下自底而上三明治集成基于MM-路徑的集成集成測試計劃集成測試設(shè)計集成測試執(zhí)行第二頁,共38頁。定義集成經(jīng)過單元測試的各組件評估它們之間交互的測試過程集成測試(IntegrationTesting)在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計要求(yāoqiú)組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測試。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實現(xiàn)。什么(shénme)是集成測試第三頁,共38頁。目的在把各個模塊連接起來的時候,穿越模塊接口的數(shù)據(jù)是否會丟失;一個模塊的功能是否會對另一個模塊的功能產(chǎn)生不利的影響;各個子功能組合起來,能否達(dá)到預(yù)期要求的父功能;全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問題;單個模塊的誤差累積起來,是否會放大,以至(yǐzhì)達(dá)到不能接受的程度。第四頁,共38頁。集成(jíchénɡ)測試必要性(1)一個模塊可能(kěnéng)對另一個模塊產(chǎn)生不利的影響(2)可能(kěnéng)會發(fā)現(xiàn)單元測試中未發(fā)現(xiàn)的接口方面的報告(3)將子功能合成時不一定產(chǎn)生所期望的主功能(4)獨(dú)立可接受的誤差,在組裝后可能(kěnéng)會超過可接受的誤差程度(5)在單元測試中無法發(fā)現(xiàn)時序問題(6)在單元測試中無法發(fā)現(xiàn)資源競爭問題第五頁,共38頁。集成測試(cèshì)的層次傳統(tǒng)軟件:按集成粒度不同,可分為:模塊間集成測試,子系統(tǒng)內(nèi)集成測試,子系統(tǒng)間集成測試;面向?qū)ο蟮膽?yīng)用(yìngyòng)系統(tǒng):類內(nèi)集成測試,類間集成測試第六頁,共38頁。集成(jíchénɡ)策略集成策略在對測試(cèshì)對象分析的基礎(chǔ)上,描述軟件單元集成(組裝)的方式和方法。是集成測試(cèshì)過程中各種活動的基礎(chǔ),集成策略包括基于功能分解圖的集成大爆炸漸增式集成自頂而下自底而上混合集成基于MM-路徑的集成第七頁,共38頁。功能(gōngnéng)分解圖功能分解定義(dìngyì)一種基于系統(tǒng)功能和子功能將系統(tǒng)分解為多個組件的模塊分解方式SATM系統(tǒng)(xìtǒng)設(shè)備傳感與控制中央通信終端傳感與控制管理會話通道傳感與控制槽傳感與控制屏幕驅(qū)動器鍵盤傳感器驗證卡驗證PIN取數(shù)字管理事務(wù)結(jié)束會話第八頁,共38頁。大爆炸(bàozhà)集成定義把各個單元一次性集成為(chéngwéi)一個完整的系統(tǒng)中進(jìn)行測試,而不是分階段進(jìn)行備注大爆炸法是一個折中的集成測試策略如果系統(tǒng)很小或者定位缺陷不是那么復(fù)雜,可以采用大爆炸法。不然,比較好的辦法基于某種集成測試策略一步步集成各單元第九頁,共38頁。自頂而下集成(jíchénɡ)定義從頂層開始,采用同設(shè)計順序一樣的思路(sīlù)對被測系統(tǒng)進(jìn)行測試,一般集中于頂層的組件,然后逐步測試處于底層的組件,被上層單元調(diào)用的下層單元以樁出現(xiàn)自頂而下的集成方式深度優(yōu)先從最頂層單元開始,持續(xù)向下到下一層,選擇一個分支,自頂而下一個一個的集成這條分支上的所有單元,直到最底層,然后轉(zhuǎn)向另一個分支,重復(fù)這樣的集成操作直到所有的單元都集成進(jìn)來廣度優(yōu)先從最頂層單元開始,持續(xù)向下到下一層,一個個完成下一層上所有單元集成后,再轉(zhuǎn)向下面一層,重復(fù)這樣的集成操作直到所有的單元都集成進(jìn)來第十頁,共38頁。廣度優(yōu)先集成(jíchénɡ)舉例步驟從U1開始測試,被U1調(diào)用(diàoyòng)的U2,U3,U4被S1,S2,S3這3個樁模塊代替集成從左向右進(jìn)行移到下一層,將U1和U2集成,被U2調(diào)用(diàoyòng)的U5被樁模塊S4代替,U3,U4被S2,S3集成U1、U2,U3,U5被S4代替,U4被S3代替集成U1,U2,U3和U4,被U4調(diào)用(diàoyòng)的U6,被S5代替,U5用S4代替移到下一層,集成U2,U1,U3,U4和U5,用S5代替U6將U6與其它單元集成第十一頁,共38頁。U1U2U3U4U5U6U1S1S2S3U1S4S2S3U2U1S3U2U1U2U5U3U4S5U1U2U3U4U5U6Step5Step4Step3Step1Step2Step6S4U3U1U4U2S4U3S5廣度優(yōu)先(yōuxiān)集成舉例第十二頁,共38頁。深度(shēndù)優(yōu)先集成舉例步驟從U1開始,被U1調(diào)用的U2、U3、U4被3個樁模塊S1、S2、S3代替,基于功能(gōngnéng)樹,選擇一個U1的分支,集成自頂而下。在本例中選擇最左面的一個分支將U1和U2集成,被U2調(diào)用的U5用樁模塊S4代替,U3、U4被S2、S3代替將U1、U2和U5集成,U3、U4用樁模塊S2、S3代替轉(zhuǎn)回到第二級,將U1、U2、U5和U3集成,用S3代替U4轉(zhuǎn)回到第二級,將U1、U2、U3、U5和U4集成,用S5代替U3將U6與其它模塊集成《軟件測試方法(fāngfǎ)和應(yīng)用》7-13第十三頁,共38頁。U1U2U3U4U5U6U1S1S2S3U1S4S2S3U2U1S2S3U2U1S3U2U3U1U2U3U4S5U1U2U3U4U5U6Step4Step3Step1Step2Step6U5U5U5深度優(yōu)先集成(jíchénɡ)舉例第十四頁,共38頁。自下而上(zìxiàérshànɡ)定義從最底層組件開始,按照分解樹的結(jié)構(gòu),逐層向上集成,調(diào)用下層單元的上層單元以驅(qū)動出現(xiàn)自下而上(zìxiàérshànɡ)舉例步驟從最底層U5,U3,U6開始,開發(fā)3個驅(qū)動模塊d1,d2,d3調(diào)用它們用U5集成U2,U6,U4被d4,d5代替將所有單元集成在一起《軟件測試方法(fāngfǎ)和應(yīng)用》7-15第十五頁,共38頁。d1d3d2自下而上(zìxiàérshànɡ)舉例U1U2U3U4U5U6U1U2U3U4U5U6U5U3U6d4d5U2U4U5U6Step1Step2Step3第十六頁,共38頁。三明治集成(jíchénɡ)定義為減少樁模塊和驅(qū)動模塊,在分解樹的子樹上進(jìn)行集成(jíchénɡ)舉例步驟基于功能樹,選擇完全分支/子分支作為集成(jíchénɡ)單元,在本例中,我選擇了3個子樹為了測試U2和U5的集成(jíchénɡ),開發(fā)一個驅(qū)動器d1開發(fā)兩個樁S1和S2測試U1和U3的集成(jíchénɡ)為了測試U4和U6,開發(fā)一個驅(qū)動器d2將所有的測試子樹集成(jíchénɡ)在一起《軟件測試方法(fāngfǎ)和應(yīng)用》7-17第十七頁,共38頁。三明治集成(jíchénɡ)舉例U1U2U3U4U5U6U1U2U3U4U5U6d1U2U5Step1Step2U1S1U3S2d2U4U6subtree1subtree2subtree3《軟件測試方法(fāngfǎ)和應(yīng)用》7-18第十八頁,共38頁。定義這種方法由PaulC.Jorgensen提出,MM路徑法是英文Message-Method的簡稱MM路徑可以用于描述單元之間的控制(kòngzhì)轉(zhuǎn)移?;?jīyú)MM路徑的集成《軟件測試方法(fāngfǎ)和應(yīng)用》7-19第十九頁,共38頁。下圖展示了一條基于調(diào)用關(guān)系(guānxì)的單元A,B和C的MM路徑基于MM路徑(lùjìng)的集成123456123412345ABC一條(yītiáo)MM路徑《軟件測試方法和應(yīng)用》7-20第二十頁,共38頁。相關(guān)概念源節(jié)點(diǎn):程序執(zhí)行開始時或重新開始處的語句片斷??赡苁菃卧械牡谝粋€可執(zhí)行語句或者是緊接著轉(zhuǎn)移控制到其它單元節(jié)點(diǎn)之后的節(jié)點(diǎn)匯節(jié)點(diǎn):程序執(zhí)結(jié)束處的語句片斷??赡苁菃卧械淖詈笠粋€可執(zhí)行語句或者轉(zhuǎn)移控制到其它單元的節(jié)點(diǎn)。模塊執(zhí)行路徑:以源節(jié)點(diǎn)開始,以匯節(jié)點(diǎn)結(jié)束的一系列語句,中間(zhōngjiān)沒有插入?yún)R節(jié)點(diǎn)基于MM路徑(lùjìng)的集成第二十一頁,共38頁。基于(jīyú)MM路徑的集成123456123412345ABCA的模塊執(zhí)行(zhíxíng)路徑:MEP(A,1)=<1,2,3,6>MEP(A,2)=<1,2,4>MEP(A,3)=<5,6>B的模塊執(zhí)行(zhíxíng)路徑:MEP(B,1)=<1,2>MEP(B,2)=<3,4>C的模塊執(zhí)行(zhíxíng)路徑:MEP(C,1)=<1,2,4,5>MEP(C,2)=<1,,3,4,5>源節(jié)點(diǎn)(jiédiǎn):A模塊:節(jié)點(diǎn)(jiédiǎn)1,5;B模塊:節(jié)點(diǎn)(jiédiǎn)1,3;C模塊:節(jié)點(diǎn)(jiédiǎn)1匯節(jié)點(diǎn)(jiédiǎn):A模塊:節(jié)點(diǎn)(jiédiǎn)4,6;B模塊:點(diǎn)2,4;C模塊:節(jié)點(diǎn)(jiédiǎn)5第二十二頁,共38頁。相關(guān)概念消息:一種程序設(shè)計語言機(jī)制,通過這種機(jī)制一個單元將控制轉(zhuǎn)移給另一個單元。不同(bùtónɡ)的程序設(shè)計語言消息的含義可能不同(bùtónɡ),可能是函數(shù)調(diào)用,也可能是消息接收。MM-路徑是穿插出現(xiàn)模塊執(zhí)行路徑和消息的序列,是描述包含在單獨(dú)單元之間控制轉(zhuǎn)移的模塊執(zhí)行路徑序列?;贛M路徑(lùjìng)的集成MEP(a,2)MEP(b,1)MEP(c,1)MEP(b,2)MEP(a,3)第二十三頁,共38頁。應(yīng)用基于系統(tǒng)中的調(diào)用(diàoyòng)關(guān)系、或者對象之間協(xié)作圖、順序圖等建模信息和代碼標(biāo)識系統(tǒng)的MM-路徑。最低要求所有消息均被覆蓋至少一次。。難點(diǎn)MM-路徑的標(biāo)識基于(jīyú)MM路徑的集成《軟件測試方法(fāngfǎ)和應(yīng)用》7-24第二十四頁,共38頁。基于(jīyú)MM路徑的集成舉例功能說明(shuōmíng)NextDate:nextDate(month,day,year)實現(xiàn)輸出輸入日期的下一個日期,其中1≤month≤12,1≤day≤31,1900≤year≤2060NextDate由5個類實現(xiàn),這5個類通過彼此發(fā)送消息交互:CalendarUnit是一個抽象類theDate是CalerdarUnit的一個子類Day是CalerdarUnit的一個子類Month是CalerdarUnit的一個子類Year是CalerdarUnit的一個子類第二十五頁,共38頁。廣度優(yōu)先(yōuxiān)集成舉例是集成測試(cèshì)過程中各種活動的基礎(chǔ),集成策略包括Increment()將U1、U2和U5集成,U3、U4用樁模塊S2、S3代替第三十二頁,共38頁?;贛M路徑(lùjìng)的集成大爆炸法是一個折中的集成測試策略消息:一種程序設(shè)計語言機(jī)制,通過這種機(jī)制一個單元將控制轉(zhuǎn)移給另一個單元。Jorgensen提出,MM路徑法是英文Message-Method的簡稱(3)將子功能合成時不一定產(chǎn)生所期望的主功能集成經(jīng)過單元測試的各組件評估它們之間交互的測試過程集成測試(IntegrationTesting)在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計要求(yāoqiú)組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測試。將所有的測試子樹集成(jíchénɡ)在一起基于功能樹,選擇完全分支/子分支作為集成(jíchénɡ)單元,在本例中,我選擇了3個子樹MEP(B,2)=<3,4>一條(yītiáo)MM路徑源節(jié)點(diǎn)(jiédiǎn):A模塊:節(jié)點(diǎn)(jiédiǎn)1,5;第二十六頁,共38頁。第二十七頁,共38頁。第二十八頁,共38頁?!盾浖y試方法(fāngfǎ)和應(yīng)用》7-29第二十九頁,共38頁。第三十頁,共38頁。測試用例設(shè)計(shèjì)和實現(xiàn)NextDate問題集成測試的關(guān)鍵點(diǎn)在于theDate類的increment()方法,為了覆蓋所有的消息(xiāoxi),設(shè)計了3個方法:testDayIncrement()方法執(zhí)行msg7的true分支testMonthIncrement()方法執(zhí)行msg7的false分支,msg8和msg11的true分支testYearIncrement()方法執(zhí)行msg7的false分支,msg8,msg9,msg10的false分支通過執(zhí)行這3個方法,各類間的所有消息(xiāoxi)發(fā)送都被覆蓋到了第三十一頁,共38頁。testNextDatemaintheDateprintDate()DayDay()MonthMonth()YearYear()Date()Increment()msg1msg4setCurrentPos()Increment()setDay()getDay()msg21setCurrentPos()Increment()getYear()isLeap()setCurrentPos()Increment()setMonth()getMonth()getMonthSize()msg5msg18msg19msg6msg15msg16msg7msg17msg20msg12msg14msg13msg2msg3Jan.16th2007MM路徑(lùjìng)testDayIncrement()方法的MM路徑(lùjìng),這條路徑(lùjìng)不能覆蓋msg8,msg9,msg10andmsg11《軟件測試方法(fāngfǎ)和應(yīng)用》7-32第三十二頁,共38頁。testNextDatemainDateprintDate()DayDay()MonthMonth()YearYear()Date()Increment()msg1msg4setCurrentPos()Increment()setDay()getDay()msg21setCurrentPos()Increment()getYear()isLeap()setCurrentPos()Increment()setMonth()getMonth()getMonthSize()msg5msg18msg19msg6msg15msg16msg7msg17msg20msg12msg14msg13msg2msg3Jan.31st2007的MM路徑(lùjìng)testMonthIncrement()方法的MM路徑(lùjìng),這條路徑(lùjìng)不能覆蓋msg9andmsg10msg8msg11《軟件測試方法(fāngfǎ)和應(yīng)用》7-33第三十三頁,共38頁。testNextDatemainDateprintDate()DayDay()MonthMonth()YearYear()Date()Increment()msg1msg4setCurrentPos()Increment()setDay()getDay()msg21setCurrentPos()Increment()getYear()isLeap()setCurrentPos()Increment()setMonth()getMonth()

溫馨提示

  • 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

提交評論