《軟件測試與質(zhì)量保障教學(xué)資料-集成測試課件》由會員分享,可在線閱讀,更多相關(guān)《軟件測試與質(zhì)量保障教學(xué)資料-集成測試課件(43頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、,Click to edit Master title style,Click to edit Master text styles,Second Level,Third Level,Fourth Level,Fifth Level,*,集成測試,華中農(nóng)業(yè)大學(xué)信息學(xué)院計(jì)算機(jī)科學(xué)系,集成測試,問題引入,測試過程,單元測試,集成測試,系統(tǒng)測試,為什么需要集成測試?,問題引入測試過程為什么需要集成測試?,為什么總是集成不起來?,為什么總是集成不起來?,一、集成測試概述,集成測試,(,Integration test,),也叫組裝測試或聯(lián)合測試,是在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求集成為系統(tǒng)或
2、子系統(tǒng),并進(jìn)行測試。,驗(yàn)證程序和,概要設(shè)計(jì)說明,的一致性,一、集成測試概述集成測試(Integration test),二、基于功能分解的集成,實(shí)施策略,非漸增式集成,漸增式集成,二、基于功能分解的集成實(shí)施策略,非漸增式集成,定義,又叫大爆炸集成,(,Big-bang Integration,),把所有通過了單元測試的模塊按設(shè)計(jì)要求,一次全部組裝起來,然后進(jìn)行整體測試。,非漸增式集成定義,目的,盡可能縮短測試時(shí)間,使用最少的測試用例驗(yàn)證系統(tǒng)。,特點(diǎn),“急于求成”,目的,具體方法,例:假設(shè)要對某個(gè)系統(tǒng)的部分功能進(jìn)行測試,其功能分解如圖所示:,A,B,D,C,具體方法ABDC,三、漸增式集成方式,
3、定義,從一個(gè)模塊開始,測一次添加一個(gè)模塊,邊組裝邊測試,以發(fā)現(xiàn)與接口相聯(lián)系的問題。,集成方式,自頂向下集成,自底向上集成,三明治集成,三、漸增式集成方式定義,1.,自頂向下集成,定義,自頂向下集成,(,Top-down Integration,),按照系統(tǒng)層次結(jié)構(gòu)圖,以主程序模塊為中心,自上而下按照,深度優(yōu)先,或者,廣度優(yōu)先,策略,對各個(gè)模塊一邊組裝一邊進(jìn)行測試。,1.自頂向下集成定義,自頂向下集成的兩種類型,廣度優(yōu)先,深度優(yōu)先,A,B,C,D,H,G,J,E,F,I,K,L,M,N,A,、,B,、,E,、,J,、,K,、,C,、,F,、,L,、,G,、,D,、,H,、,M,、,N,、,I,深
4、度優(yōu)先:,A,、,B,、,C,、,D,、,E,、,F,、,G,、,H,、,I,、,J,、,K,、,L,、,M,、,N,廣度優(yōu)先:,自頂向下集成的兩種類型ABCDHGJEFIKLMNA、B、E,自頂向下集成步驟,(1),以主控模塊作為測試驅(qū)動模塊,把對主控模塊進(jìn)行單元測試時(shí)引入的所有樁模塊用實(shí)際模塊替代,(2),依據(jù)所選的集成策略,每次只替代一個(gè)樁模塊,,(3),每集成一個(gè)模塊立即測試一遍,(4),只有每組測試完成后,才著手替換下一個(gè)樁模塊,(5),為避免引入新錯(cuò)誤,須不斷地進(jìn)行回歸測試,從第,(2),步開始,循環(huán)執(zhí)行上述步驟,直至整個(gè)程序結(jié)構(gòu)構(gòu)造完畢。,自頂向下集成步驟(1)以主控模塊作為測試
5、驅(qū)動模塊,把對主控模,舉例:,A,D,B,E,C,F,深度優(yōu)先,:,A,、,B,、,E,、,C,、,D,、,F,廣度優(yōu)先,:,A,、,B,、,C,、,D,、,E,、,F,自頂向下集成,舉例:ADBECF深度優(yōu)先:A、B、E、C、D、F廣度優(yōu)先:,深度優(yōu)先,A,加入,E,S2,B,S3,E,A,測試,A,S2,S1,S3,A,加入,B,S2,B,S3,S4,加入,F,C,B,D,E,A,F,A,加入,C,C,B,S3,E,加入,D,C,B,D,E,A,S5,深度優(yōu)先A加入ES2BS3EA測試 AS2S1S3A加入BS,2.,自底向上集成,定義,自底向上集成,(,Bottom-up Integra
6、tion,),從系統(tǒng)層次結(jié)構(gòu)圖的最底層模塊開始進(jìn)行組裝和集成測試的方式。,2.自底向上集成定義,自底向上集成步驟,(,1,)從最底層的模塊開始組裝,組合成一個(gè)能夠完成某個(gè)子功能的構(gòu)件;,(,2,)編制驅(qū)動程序,協(xié)調(diào)測試用例的輸入與輸出;,(,3,)測試集成后的構(gòu)件;,(,4,)使用實(shí)際模塊代替驅(qū)動程序,按程序結(jié)構(gòu)向上組裝測試后的構(gòu)件;,(,5,)重復(fù)上面的第二步,直到系統(tǒng)的最頂層模塊被加入到系統(tǒng)中為止。,自底向上集成步驟,舉例,:,A,C,B,D,F,E,E,d,1,C,d,3,F,d,4,E,B,d,2,D,d,5,F,A,C,B,D,F,E,舉例:ACBDFEEd1Cd3Fd4EBd2Dd
7、5FACBD,優(yōu)點(diǎn),可以盡早的驗(yàn)證底層模塊的行為;,提高了測試效率;,對實(shí)際被測模塊的可測試性要求較少;,減少了樁模塊的工作量;,容易對錯(cuò)誤進(jìn)行定位。,優(yōu)點(diǎn),缺點(diǎn),直到最后一個(gè)模塊加進(jìn)去之后才能看到整個(gè)系統(tǒng)的框架;,只有到測試過程的后期才能發(fā)現(xiàn)時(shí)序問題和資源競爭問題;,驅(qū)動模塊的設(shè)計(jì)工作量大,;,不能及時(shí)發(fā)現(xiàn)高層模塊設(shè)計(jì)上的錯(cuò)誤。,缺點(diǎn),適用范圍,底層模塊接口比較穩(wěn)定的產(chǎn)品;,高層模塊接口變更比較頻繁的產(chǎn)品;,底層模塊開發(fā)和單元測試工作完成較早的產(chǎn)品。,適用范圍,四、三明治集成,定義,三明治集成方法,(,Sandwich Integration,),三明治集成是一種混合增值式測試策略,綜合了自
8、頂向下和自底向上兩種集成方法的優(yōu)點(diǎn)。,四、三明治集成定義,方法,一般對軟件結(jié)構(gòu)的上層使用自頂向下結(jié)合的方法;,對下層使用自底向上結(jié)合的方法;,方法,舉例,用三明治集成方式如何測試?,C,B,D,E,F,A,舉例用三明治集成方式如何測試?CBDEFA,三明治集成步驟,首先,確定以哪一層為界來決定使用三明治集成策略。我們確定以,B,模塊為界;,其次,對模塊,B,及其所在層下面的各層使用自底向上的集成策略;,再次,對模塊,B,所在層上面的層次使用自頂向下的集成策略;,然后,把模塊,B,所在層各模塊同相應(yīng)的下層集成;,最后,對系統(tǒng)進(jìn)行整體測試。,三明治集成步驟首先,確定以哪一層為界來決定使用三明治集成
9、策略,軟件測試與質(zhì)量保障教學(xué)資料-集成測試課件,優(yōu)點(diǎn),除了具有自頂向下和自底向上兩種集成策略的優(yōu)點(diǎn)之外,運(yùn)用一定的技巧,能夠減少了樁模塊和驅(qū)動模塊的開發(fā)。,缺點(diǎn),在被集成之前,中間層不能盡早得到充分的測試。,優(yōu)點(diǎn),五、基于調(diào)用圖的集成,基于調(diào)用圖的集成有兩種:,成對集成,相鄰集成,五、基于調(diào)用圖的集成基于調(diào)用圖的集成有兩種:,1,、成對集成,成對集成的思想就是免除樁,/,驅(qū)動器開發(fā)工作,使用實(shí)際代碼來代替樁,/,驅(qū)動器。,成對集成的方法就是對應(yīng),調(diào)用圖的每一個(gè)邊,建立并執(zhí)行一個(gè)集成測試會話。,1、成對集成成對集成的思想就是免除樁/驅(qū)動器開發(fā)工作,使用實(shí),軟件測試與質(zhì)量保障教學(xué)資料-集成測試課件
10、,2.,相鄰集成,相鄰節(jié)點(diǎn),有向圖中,節(jié)點(diǎn)鄰居包括所有,直接前驅(qū)節(jié)點(diǎn),和,直接后繼節(jié)點(diǎn),相鄰集成,可大大降低集成測試的會話數(shù)量,并可避免樁和驅(qū)動器的開發(fā),相鄰集成本質(zhì)上是三明治集成,相鄰集成具有,“,中爆炸,”,集成的缺陷:隔離困難,2.相鄰集成相鄰節(jié)點(diǎn),軟件測試與質(zhì)量保障教學(xué)資料-集成測試課件,基于調(diào)用圖的集成的優(yōu)缺點(diǎn),優(yōu)點(diǎn),基于調(diào)用圖的集成偏離了純結(jié)構(gòu)集成,轉(zhuǎn)向行為基礎(chǔ)。,免除了樁,/,驅(qū)動器開發(fā)工作量。,缺點(diǎn),缺陷隔離問題,基于調(diào)用圖的集成的優(yōu)缺點(diǎn)優(yōu)點(diǎn),六、基于路徑的集成,概念,源節(jié)點(diǎn),匯節(jié)點(diǎn),模塊執(zhí)行路徑,消息,六、基于路徑的集成概念,MM-,路徑圖,給定一組單元,其,MM-,路徑圖是
11、一種有向圖,其中節(jié)點(diǎn)表示,模塊執(zhí)行路徑,,邊表示,消息和單元之間的返回,。,注意:,MM-,路徑圖是按照一組單元定義的。,MM-路徑圖,MM-,路徑,MM-,路徑是穿插出現(xiàn),模塊執(zhí)行路徑,和,消息,的序列,對于傳統(tǒng)軟件來說,,MM-,路徑永遠(yuǎn)是從主程序開始,在主程序中結(jié)束。,注意:,MM-,路徑,不是可執(zhí)行路徑,,并且要跨越單元邊界,MM-路徑,例:,模塊執(zhí)行路徑:,MEP(A,1)=,MEP(A,2)=,MEP(A,3)=,MEP(B,1)=,MEP(B,2)=,MEP(C,1)=,MEP(C,2)=,跨三個(gè)單元的,MM-,路徑,A,1,2,4,3,5,6,B,1,2,3,4,C,1,2,3
12、,4,5,A,1,2,4,3,5,6,B,1,2,3,4,C,1,2,3,4,5,例:模塊執(zhí)行路徑:跨三個(gè)單元的MM-路徑A124356B12,例:,從上圖導(dǎo)出的,MM-,路徑圖,MEP(A,2),MEP(B,1),MEP(C,1),MEP(B,2),MEP(C,2),MEP(A,3),MEP(A,1),實(shí)線箭頭表示消息,,虛線箭頭表示返回。,例:從上圖導(dǎo)出的MM-路徑圖MEP(A,2)MEP(B,1),MM-,路徑的深度,MM-,路徑末端點(diǎn)有兩點(diǎn)可觀察的行為準(zhǔn)則,即消息靜止和數(shù)據(jù)靜止,消息靜止,當(dāng)?shù)竭_(dá)不發(fā)送消息的結(jié)點(diǎn)時(shí),消息靜止發(fā)生。例如圖中的模塊,C,數(shù)據(jù)靜止,當(dāng)處理不立即使用的存儲數(shù)據(jù)的
13、創(chuàng)建序列結(jié)束時(shí),數(shù)據(jù)靜止發(fā)生。,MM-路徑的深度,MM-,路徑圖的特點(diǎn),優(yōu)點(diǎn),功能性和結(jié)構(gòu)性的一種混合,表達(dá)上:功能性,標(biāo)識方式上:結(jié)構(gòu)性,集成測試和系統(tǒng)測試無逢連接,缺點(diǎn),標(biāo)識,MM-,路徑的工作量很大,MM-路徑圖的特點(diǎn),MM-,路徑復(fù)雜度,V,(,G,),=e n+2p,V,(,G,),=e n+2,(對于結(jié)構(gòu)化過程代碼,,p=1,),MM-路徑復(fù)雜度V(G)=e n+2p,MM-,路徑有向圖,A,B,C,Main,ValidatePIN,GetPINforPAN,ScreenDriver,GetPIN,KeySensor,V,(,G1,),=4-3+2,=3,V,(,G2,),=24-6+2,=20,MM-路徑有向圖ABCMainValidatePINGetP,基于路徑集成的優(yōu)缺點(diǎn),優(yōu)點(diǎn):,MM-,路徑是功能性測試和結(jié)構(gòu)性測試的一種混合。,基于路徑的集成測試既適用于采用傳統(tǒng)瀑布過程開發(fā)的軟件,也適用于采用基于合成可選的生命周期模型開發(fā)的軟件。,缺點(diǎn):,需要更多的工作量標(biāo)識,MM-,路徑。,基于路徑集成的優(yōu)缺點(diǎn)優(yōu)點(diǎn):,小 結(jié),集成測試的幾種方法,基于分解的集成,基于調(diào)用圖的集成,基于路徑的集成,小 結(jié)集成測試的幾種方法,