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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、組合起來,能否達到預期要求的父功能;n全局數據結構是否有問題;n單個模塊的誤差累積起來,是否會放大,以至達到不能接受的程度。集成測試必要性n(1)一個模塊可能對另一個模塊產生不利的影響n(2)可能會發(fā)現單元測試中未發(fā)現的接口方面的報告n(3)將子功能合成時不一定產生所期望的主功能n(4)獨立可接受的誤差,在組裝后可能會超過可接受的誤差程度n(5)在單元測試中無法發(fā)現時序問題n(6)在單元測試中無法發(fā)現資源競爭問題集成測試的層次n傳統軟件:按集成粒度不同,可分為:模塊間集成測試,子系統內集成測試,子系統間集成測試;n面向對象的應用系統:類內集成測試,類間集成測試集成策略p集成策略集成策略n在對測

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

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

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

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

7、、U2、U5和U3集成,用S3代替U45.轉回到第二級,將U1、U2、U3、U5和U4集成,用S5代替U36.將U6與其它模塊集成U1U2U3U4U5U6U1S1S2S3U1S4S2S3U2U1S2S3U2U1S3U2U3U1U2U3U4S5U1U2U3U4U5U6Step 4Step 3Step 1Step 2Step 6U5U5U5深度優(yōu)先集成舉例軟件測試方法和應用 7-15自下而上p定義定義n從最底層組件開始,按照分解樹的結構,逐層向上集成,調用下層單元的上層單元以驅動出現p自下而上舉例n步驟1.從最底層U5,U3,U6開始,開發(fā)3個驅動模塊d1,d2,d3調用它們2.用U5集成U2,U

8、6,U4被d4,d5代替3.將所有單元集成在一起d1d3d2自下而上舉例U1U2U3U4U5U6U1U2U3U4U5U6U5U3U6d4d5U2U4U5U6Step 1Step 2Step 3軟件測試方法和應用 7-17三明治集成p定義定義n為減少樁模塊和驅動模塊,在分解樹的子樹上進行集成p舉例舉例n步驟1.基于功能樹,選擇完全分支/子分支作為集成單元,在本例中,我選擇了3個子樹1.為了測試U2和U5的集成,開發(fā)一個驅動器d12.開發(fā)兩個樁S1和S2測試U1和U3的集成3.為了測試U4和U6,開發(fā)一個驅動器d22.將所有的測試子樹集成在一起軟件測試方法和應用 7-18三明治集成舉例U1U2U3

9、U4U5U6U1U2U3U4U5U6d1U2U5Step 1Step 2U1S1U3S2d2U4U6subtree1subtree2subtree3軟件測試方法和應用 7-19p定義定義n這種方法由Paul C. Jorgensen提出,MM路徑法是英文Message-Method的簡稱nMM路徑可以用于描述單元之間的控制轉移?;贛M路徑的集成軟件測試方法和應用 7-20p下圖展示了一條基于調用關系的單元A,B和C的MM路徑基于MM路徑的集成123456123412345ABC一條MM路徑p相關概念相關概念n源節(jié)點:程序執(zhí)行開始時或重新開始處的語句片斷。 可能是單元中的第一個可執(zhí)行語句或者是

10、緊接著轉移控制到其它單元節(jié)點之后的節(jié)點n匯節(jié)點:程序執(zhí)結束處的語句片斷。 可能是單元中的最后一個可執(zhí)行語句或者轉移控制到其它單元的節(jié)點。n模塊執(zhí)行路徑:以源節(jié)點開始,以匯節(jié)點結束的一系列語句,中間沒有插入匯節(jié)點基于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é)點:A模塊:節(jié)點1,5;B模塊:節(jié)點1,3;C模塊:節(jié)點1n 匯節(jié)點:A模塊:節(jié)點4,6;B模

11、塊:點2,4;C模塊:節(jié)點5 p相關概念相關概念n消息:一種程序設計語言機制,通過這種機制一個單元將控制轉移給另一個單元。p不同的程序設計語言消息的含義可能不同,可能是函數調用,也可能是消息接收。nMM-路徑是穿插出現模塊執(zhí)行路徑和消息的序列,是描述包含在單獨單元之間控制轉移的模塊執(zhí)行路徑序列?;贛M路徑的集成MEP(a,2)MEP(b,1)MEP(c,1)MEP(b,2)MEP(a,3)軟件測試方法和應用 7-24p應用應用n基于系統中的調用關系、或者對象之間協作圖、順序圖等建模信息和代碼標識系統的MM-路徑。n最低要求所有消息均被覆蓋至少一次。p難點難點nMM-路徑的標識基于MM路徑的集

12、成基于MM路徑的集成舉例p功能說明功能說明nNextDate:nextDate(month,day,year) 實現輸出輸入日期的下一個日期,其中1month 12, 1day 31, 1900year 2060nNextDate由5個類實現,這5個類通過彼此發(fā)送消息交互:pCalendarUnit是一個抽象類ptheDate是CalerdarUnit的一個子類pDay是CalerdarUnit的一個子類pMonth是CalerdarUnit的一個子類pYear是CalerdarUnit的一個子類CalendarUnit.javatheDate.javaDay.java軟件測試方法和應用 7-

13、29 Month.javaYear.java測試用例設計和實現pNextDate問題集成測試的關鍵點在于 theDate類的increment()方法,為了覆蓋所有的消息,設計了3個方法:1.testDayIncrement()方法執(zhí)行msg7的true分支2.testMonthIncrement()方法執(zhí)行msg7的false分支,msg8和msg11的true分支3.testYearIncrement()方法執(zhí)行msg7的false分支,msg8,msg9,msg10的false分支p通過執(zhí)行這3個方法,各類間的所有消息發(fā)送都被覆蓋到了軟件測試方法和應用 7-32testNextDatem

14、aintheDateprintDate()DayDay()MonthMonth()YearYear()Date()Increment()msg1msg4setCurrentPos()Increment()setDay()getDay()msg21setCurrentPos()Increment()getYear()isLeap()setCurrentPos()Increment()setMonth()getMonth()getMonthSize()msg5msg18msg19msg6msg15msg16msg7msg17msg20msg12msg14msg13msg2msg3Jan. 16th

15、 2007 MM路徑testDayIncrement()方法的MM路徑, 這條路徑不能覆蓋msg8,msg9,msg10 and msg11軟件測試方法和應用 7-33testNextDatemainDateprintDate()DayDay()MonthMonth()YearYear()Date()Increment()msg1msg4setCurrentPos()Increment()setDay()getDay()msg21setCurrentPos()Increment()getYear()isLeap()setCurrentPos()Increment()setMonth()getM

16、onth()getMonthSize()msg5msg18msg19msg6msg15msg16msg7msg17msg20msg12msg14msg13msg2msg3Jan.31st 2007 的MM路徑testMonthIncrement() 方法的MM路徑,這條路徑不能覆蓋msg9 and msg10msg8msg11軟件測試方法和應用 7-34testNextDatemainDateprintDate()DayDay()MonthMonth()YearYear()Date()Increment()msg1msg4setCurrentPos()Increment()setDay()ge

17、tDay()msg21setCurrentPos()Increment()getYear()isLeap()setCurrentPos()Increment()setMonth()getMonth()getMonthSize()msg5msg18msg19msg6msg15msg16msg7msg17msg20msg12msg14msg13msg2msg3Dec.31st 2006 的MM路徑testMonthIncrement() 方法的MM路徑,這條路徑覆蓋了剩余的消息msg8msg11msg9msg10p與單元測試類似,主要的測試活動包括n集成測試計劃n設計集成測試用例n實現測試用例n搭建集成測試環(huán)境n執(zhí)行測試n測試總結n評估測試工作量p很多時候采用黑盒和白盒相結合被稱為灰盒測試的測試方法p集成測試可由開發(fā)人員也可由測試人員承擔集成測試過程p集成測試環(huán)境中的要素n執(zhí)行集成測

溫馨提示

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

評論

0/150

提交評論