軟件集成測試過程概述_第1頁
軟件集成測試過程概述_第2頁
軟件集成測試過程概述_第3頁
軟件集成測試過程概述_第4頁
軟件集成測試過程概述_第5頁
已閱讀5頁,還剩58頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、技術(shù)創(chuàng)新,變革未來軟件集成測試過程概述2軟件集成測試執(zhí)行階段軟件集成測試用例執(zhí)行軟件集成測試軟件缺陷記錄、跟蹤軟件集成測試日報寫作軟件集成測試報告寫作軟件集成測試缺陷的回歸測試3單元測試和集成測試的區(qū)別測試對象:單元測試模塊下實現(xiàn)具體功能的單元(詳細設(shè)計)集成測試模塊以及模塊間的組合(概要設(shè)計)趨勢:單元測試和集成測試間的界限變得模糊了,如:單元測試方法中也引入了集成概念。4在單元測試的基礎(chǔ)上,需要將所有模塊按照設(shè)計要求組裝成為系統(tǒng)。這時需要考慮的問題是:集成測試(Integrated Testing) 在把各個模塊連接起來的時侯,穿越模塊接口的數(shù)據(jù)是否會丟失; 一個模塊的功能是否會對另一個模

2、塊的功能產(chǎn)生不利的影響; 各個子功能組合起來,能否達到預(yù)期要求的父功能; 單個模塊的誤差累積起來,是否會放大,從而達到不能接受的程度。 全局數(shù)據(jù)結(jié)構(gòu)是否有問題; 5簡介集成測試的目的是確保各單元組合在一起后能夠按既定意圖協(xié)作運行,并確保增量的行為正確。測試的內(nèi)容包括單元間的接口以及集成后的功能。對以前的集成進行回歸測試。6集成測試舉例現(xiàn)在有一個模塊包含以下三個函數(shù):函數(shù)A:主控函數(shù)int ctr(int x,int y),當(dāng)xy時,調(diào)用add函數(shù),否則調(diào)用sub函數(shù)函數(shù)B:加法函數(shù)int add(int x,int y),返回x和y的和函數(shù)C:減法函數(shù)int sub(int x,int y),

3、返回x和y的差需要對這三個函數(shù)進行集成,步驟如下:先對函數(shù)A和B進行集成,函數(shù)C用樁替代然后將集成的函數(shù)A、B和C進行集成集成測試考慮的是ctr輸入1,1;add是否可以輸出成功不考慮add如何計算;單元測試考慮的是add中的計算是否正確輸出27集成測試的對象(1)從最低層的單元測試到最終的產(chǎn)品,其中所有各層測試都要通過集成測試來完成,一般可把集成測試劃分成三個層次:模塊內(nèi)集成測試;子系統(tǒng)內(nèi)集成測試;子系統(tǒng)間集成測試8子系統(tǒng)內(nèi)集成測試模塊內(nèi)集成測試子系統(tǒng)間集成測試集成測試的對象(2)A產(chǎn)品子系統(tǒng)1子系統(tǒng)2軟件模塊1軟件模塊2軟件模塊2軟件模塊3軟件模塊49集成測試用例設(shè)計步驟劃分測試層次和范圍

4、確定每個層次的集成測試策略根據(jù)策略確定該層次的測試子項針對每個測試子項設(shè)計測試用例10劃分測試層次和范圍分析被測對象HLD的0層設(shè)計、1層設(shè)計、2層設(shè)計;根據(jù)每層設(shè)計中各子系統(tǒng)、模塊、子模塊及其接口的優(yōu)先級、測試人力資源狀況、測試進度要求等確定集成測試的層次,并確定每層的測試范圍模塊內(nèi)集成測試;子系統(tǒng)內(nèi)集成測試;子系統(tǒng)間集成測試11確定每個層次的集成測試策略分析每層設(shè)計中模塊間的層次、接口關(guān)系,確定該層的測試策略:被測系統(tǒng)比較小,并且它的每個組件都經(jīng)過了充分的單元測試,可以考慮用大爆炸集成;該層模塊間層次關(guān)系非常清楚,可以考慮用自底向上、自頂向下集成、三明治集成、分層集成等;關(guān)注關(guān)鍵功能驗證的

5、時候,可以考慮基于功能的集成;關(guān)注關(guān)鍵消息處理過程的驗證的時候,可以考慮基于消息的集成;12根據(jù)策略確定該層次的測試子項根據(jù)各層確定的測試策略,進一步細分該層測試項為測試子項:如果采用大爆炸策略,可以分析整個測試項涉及到對象的對外接口,根據(jù)接口細分成不同測試子項;如果采用自底向上、自頂向下集成、三明治集成、分層集成等,則可根據(jù)各集成步驟來劃分測試子項;如果采用基于功能的集成,則可以根據(jù)各功能來劃分測試子項;如果采用基于消息的集成,則可以根據(jù)各消息來劃分測試子項;13針對每個測試子項設(shè)計測試用例分析每個測試子項涉及的接口選擇合適測試用例設(shè)計方法設(shè)計用例覆蓋相關(guān)接口等價類分析邊界值分析錯誤猜測法1

6、4主要的集成測試策略基于分解的集成大爆炸集成(非增量式集成)自頂向下增量式集成自底向上增量式集成三明治集成基于調(diào)用圖的集成成對集成相鄰集成基于路徑的集成15以SATM為例詳細分析集成測試的方法一、功能的分解表示功能分解描述(表131)功能分解的圖示分解樹表示(圖131)161ADB2345678910111213B1415C1617F22181920212324252627C圖13-1 STAM的功能分解樹17 從功能分解樹進一步細化出單元調(diào)用圖111171819232241325272624682314155720219101216圖13-2 STAM的調(diào)用圖18由單元調(diào)用圖得出鄰接矩陣(表

7、132)二、基于功能分解集成測試 1.大爆炸集成(Big Bang Integration)屬于非增量式集成的一種方法又名一次性組裝或整體拼裝先分別測試每個模塊,再把所有模塊組裝在一起進行測試,最終得到要求的軟件系統(tǒng) 19實例20非增量式測試方法的優(yōu)點:可迅速完成集成測試;需要的測試用例最少;該方法比較簡單;多個測試人員可以并行工作,對資源利用較高。21非增量式測試方法的缺點:一次試運行成功的可能性并不大;在發(fā)現(xiàn)錯誤時,問題定位和修改都比較困難;即使被測系統(tǒng)能夠被一次性集成,但還是會有許多接口錯誤很容易躲過測試而進入到系統(tǒng)范圍測試內(nèi)。22非增量式與增量式集成測試比較非增量式測試的做法是先分散測

8、試,然后集中起來一次完成集成測試如果在模塊的接口處存在錯誤,只會在最后的集成測試時一下子暴露出來增量式測試使用逐步集成和逐步測試的辦法,把可能出現(xiàn)的差錯分散出來,便于找出問題和修改一些模塊在逐步集成的測試中,得到了較為頻繁的考驗,因而可能取得較好的測試效果增量式測試與非增量式測試相比,具有一定的優(yōu)越性23增量式集成測試將單元測試與集成測試交替進行在組裝的過程中邊連接邊測試,以發(fā)現(xiàn)連接過程中產(chǎn)生的問題通過逐步組裝成為要求的軟件系統(tǒng)兩種基本方法自頂向下增量式集成自底向上增量式集成242.自頂向下增量式集成測試集成是逐步實現(xiàn)的,集成測試是逐步完成的最上面的模塊最先測試測試由樁模塊控制樁模塊逐步由實際

9、模塊代替整個過程一直重復(fù)直到最底層模塊得到測試包含樹的深度優(yōu)先(Depth First Search)或廣度優(yōu)先(Breadth First Search)遍歷過程25自頂向下增量式集成測試的步驟主控模塊作為測試驅(qū)動器;根據(jù)集成的方式(深度或廣度),下層的樁模塊一次一次地被替換為真正的模塊;在每個模塊被集成時,都必須進行單元測試。重復(fù)第2步,直到整個系統(tǒng)被測試完成。26自頂向下集成示意圖深度優(yōu)先組裝方式27As1s2s3ABs2s3s4ABCs3s4ABCDs4s5ABCDEs5ABCDEF測試A加入B加入C加入D加入E加入F廣度優(yōu)先組裝方式28模塊測試結(jié)合順序深度優(yōu)先:A、B、E、C、D、F

10、廣度優(yōu)先:A、B、C、D、E、FADBECF29頂層子樹第二層子樹底層子樹自頂向下集成圖13-330特點:可以較早發(fā)現(xiàn)較高層次或主控路徑的問題??梢暂^早實現(xiàn)軟件部分功能,從心理上要增強信心。選用按深度方向組裝的方式,可以首先實現(xiàn)和驗證一個完整的軟件功能。不需驅(qū)動模塊。需要樁模塊。測試和設(shè)計可并行進行(和設(shè)計順序一致)。支持故障隔離。樁的開發(fā)和維護成本大。隨著底層模塊的不斷增加,整個系統(tǒng)越來越復(fù)雜,導(dǎo)致底層模塊的測試不充分。313.自底向上增量式集成測試最下面的模塊先得到測試測試由測試驅(qū)動控制不需要樁模塊父單元用測試過的子單元測試整個過程重復(fù)到最上面的模塊測試結(jié)束32自底向上集成示意圖33頂層子

11、樹第二層子樹底層子樹圖134 自底向上集成34特點可以在任何一個葉子節(jié)點已經(jīng)就緒的情況下進行集成測試;不需樁模塊;支持故障隔離;對高層的驗證被推遲到了最后,設(shè)計上的錯誤不能被及時發(fā)現(xiàn);隨著集成到了頂層,整個系統(tǒng)將變得越來越復(fù)雜,并且對于底層的一些異常將很難覆蓋。35自頂向下測試與自底向上測試方法的比較 集成測試方法 測試推進方法 優(yōu)點 缺點 自底向上測試要準備替代上層模塊的測試驅(qū)動模塊。 能夠并行測試作業(yè),同時對多個模塊進行測試。 測試作業(yè)較分散,往往在測試的后期才能發(fā)現(xiàn)系統(tǒng)的重要缺陷。 自頂向下測試要準備替代下層模塊的測試樁模塊。 能夠在早期檢測出接口界面的錯誤等重大缺陷??蓪ι蠈幽K進行反

12、復(fù)測試,提高其可靠性。 僅由部分人員擔(dān)任測試,測試期間較長。 測試驅(qū)動模塊模塊D模塊A測試樁模塊36三明治集成測試有時也被稱為混合式集成一種綜合自頂向下集成和自底向上集成測試策略的優(yōu)點的方法,提高測試效率把系統(tǒng)劃分成三層,中間一層為目標層對目標層上面的一層使用由頂向下的集成策略對目標層下面的一層使用自底向上的集成策略把目標層下面的一層與目標層集成最后測試在目標層會合37三明治測試策略示例測試E測試F測試B、E測試D、F測試A測試ABCDEFABCDEF底層測試頂層測試38三明治集成測試優(yōu)缺點集合了自頂向下和自底向上的兩種集成策略的優(yōu)點;樁和驅(qū)動器的開發(fā)工作比較??;中間層在被集成前測試不充分;在

13、一定程度上增加了定位缺陷的難度。39除了大爆炸集成,基于功能分解的集成測試:缺陷定位清晰。只要發(fā)現(xiàn)失效,就懷疑最新加入的單元。人工操作,需要開發(fā)大量的樁和驅(qū)動模塊自頂向下集成需要的樁為節(jié)點-1個自底向上集成的驅(qū)動模塊為節(jié)點-葉個重復(fù)測試帶來工作量總結(jié)40 三、基于調(diào)用圖的測試單元調(diào)用圖是有向圖,節(jié)點表示程序單元,邊對應(yīng)程序調(diào)用。對入度和出度很高的節(jié)點,集成測試很重要。成對集成(圖136)對調(diào)用圖中的每條邊設(shè)計一個測試用例;最終對調(diào)用圖中每條邊有一個集成測試會話;大大降低了樁和驅(qū)動模塊的開發(fā)工作;41157202191012111718192322413252726246823141516圖13

14、6 成對集成40個集成測試過程42相鄰集成節(jié)點鄰居是給定節(jié)點的所有前驅(qū)節(jié)點和后繼節(jié)點的集合(圖137);每個內(nèi)部節(jié)點有一個鄰居;給定調(diào)用圖的所有內(nèi)部節(jié)點鄰居總數(shù): 節(jié)點數(shù)-匯節(jié)點數(shù);相鄰集成即對調(diào)用圖中每一組內(nèi)部節(jié)點鄰居設(shè)計一個測試用例。大大降低集成測試會話數(shù)量,避免樁和驅(qū)動的開發(fā)。43157202191012111718192322413252726246823141516圖137 相鄰集成11個集成測試過程44基于調(diào)用圖的集成測試技術(shù)特點以行為為基礎(chǔ);相鄰集成降低了測試用例數(shù),避免了樁和驅(qū)動模塊的開發(fā)工作;存在缺陷隔離困難的問題,尤其是對有大量鄰居的情況。45 四、基于路徑的集成測試 集成

15、測試的目標從測試單元的接口轉(zhuǎn)為測試單元之間的交互性上。程序圖概念的擴展源節(jié)點:程序執(zhí)行開始/重新開始的語句片段匯節(jié)點:程序執(zhí)行結(jié)束處的語句片段模塊執(zhí)行路徑:以源節(jié)點開始,到匯節(jié)點結(jié)束的一組語句,中間沒有插入?yún)R節(jié)點46消息:是一種程序設(shè)計語言機制,通過這種機制一個單元將控制轉(zhuǎn)移給另一個單元(子程序調(diào)用,過程調(diào)用,函數(shù)引用)MM-路徑:穿插出現(xiàn)模塊執(zhí)行路徑和消息的序列通過消息邊完成單元的跨越例: (圖138)47ABC123456123412345圖13-8 跨3個單元的MM-路徑48上圖給出了7條模塊執(zhí)行路徑:MEP(A,1)=MEP(A,2)=MEP(A,3)=MEP(B,1)=MEP(B,2

16、)=MEP(C,1)=MEP(C,2)=49 MM-路徑圖:用節(jié)點表示模塊執(zhí)行路徑,邊表示消息和單元之間的返回的有向圖MEP(A,2)MEP(B,1)MEP(C,1)MEP(B,2)MEP(A,3)MEP(C,2)MEP(A,1)圖13-9 由圖13-8導(dǎo)出的MM-路徑圖50程序圖是DD-路徑序列, MM-路徑是模塊執(zhí)行路徑序列模塊執(zhí)行路徑和DD-路徑的關(guān)系:可能互相包容和部分重疊MM-路徑的末端點的特點:消息靜止不發(fā)送消息的節(jié)點數(shù)據(jù)靜止處理不立即使用的存儲數(shù)據(jù)的序列結(jié)束(圖13-10)。模塊執(zhí)行路徑、程序圖、DD-路徑、MM-路徑關(guān)系51F1F2F1F2A因果數(shù)據(jù)流非因果數(shù)據(jù)流圖13-10

17、數(shù)據(jù)靜止A52SATM系統(tǒng)中的MM-路徑MM-路徑舉例描述(P202)第一次嘗試正確PIN輸入的MM-路徑,模塊執(zhí)行路徑由單元名后接語句片段編號序列描述。Main(1,2,3,17,18) ValidatePIN(PINok,PAN)msg 7MM-路徑序列圖(圖13-11)53MainValidatPINGetPINforPANScreenDriverGetPINKeySensor時間msg7msg15msg16msg17msg25msg26msg25msg27msg25msg25msg29圖13-11 示例MM-路徑的UML序列圖msg28543.MM-路徑復(fù)雜度以圖13-8與圖13-11

18、比較計算(圖13-12 )55圖13-12 MM-路徑圖ABCMainValidatePINGetPINforPANScreenDriverGetPINKeySensor56MM-路徑是功能性測試和結(jié)構(gòu)性測試的混合,與實際系統(tǒng)的行為密切匹配,克服結(jié)構(gòu)性測試的缺點,使集成測試和系統(tǒng)測試無縫連接輸入/輸出行動的表達上為功能性測試MM-路徑圖的標識方式上為結(jié)構(gòu)性測試標識MM-路徑需要更多的工作量。特點:57五、案例研究重新編寫NextDate,主程序功能分解為過程和函數(shù)(P205)單元程序圖(圖13-13,13-14)基于分解的集成(圖13-15)自頂向下集成自底向上集成58圖13-13 主程序和第一層單元Main V(G)=1123456GetDate V(G)=2345657、656667IncrementDate V(G)=33434343434343434343434PrintDate V(G)=179808159圖13-15 功能分解MainisLeaplastDayOfMonthGetDateIncremnetDateprintDateValidateDate60MainisLeaplastDayOfMonthGetDateIncremnetDateprintDateValidateDate圖13-16 集成版本的調(diào)用圖61基于調(diào)用圖的集成(圖1

溫馨提示

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

評論

0/150

提交評論