軟件測試第六章--集成測試_第1頁
軟件測試第六章--集成測試_第2頁
軟件測試第六章--集成測試_第3頁
軟件測試第六章--集成測試_第4頁
軟件測試第六章--集成測試_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、集成測試 內(nèi)容 一一引言引言 二二基本概念基本概念 三三集成測試的目的集成測試的目的 四四集成測試的層次集成測試的層次 五五集成測試方法集成測試方法 六六集成策略集成策略 一、引言一、引言 l單元測試后問題出現(xiàn)了單元測試后問題出現(xiàn)了 l軟件在系統(tǒng)集成時(shí)會(huì)經(jīng)常有這樣的情況發(fā)軟件在系統(tǒng)集成時(shí)會(huì)經(jīng)常有這樣的情況發(fā) 生:即每個(gè)模塊都能單獨(dú)工作生:即每個(gè)模塊都能單獨(dú)工作 ,但這些模,但這些模 塊集成在一起之后卻不能正常工作;或是塊集成在一起之后卻不能正常工作;或是 系統(tǒng)集成后雖可以正常運(yùn)行,但系統(tǒng)的容系統(tǒng)集成后雖可以正常運(yùn)行,但系統(tǒng)的容 錯(cuò)性、安全性以及整體性卻得不到保障,錯(cuò)性、安全性以及整體性卻得不到

2、保障, 系統(tǒng)不能長時(shí)間運(yùn)行等等。這就需要進(jìn)行系統(tǒng)不能長時(shí)間運(yùn)行等等。這就需要進(jìn)行 集成測試和系統(tǒng)測試集成測試和系統(tǒng)測試 ,以找出其中的軟件,以找出其中的軟件 缺陷,來提高整個(gè)軟件的質(zhì)量和可靠性。缺陷,來提高整個(gè)軟件的質(zhì)量和可靠性。 一、基本概念一、基本概念 l集成測試集成測試又稱組裝測試,是在單元測試的 基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求組裝成 子系統(tǒng)或系統(tǒng)進(jìn)行的測試活動(dòng)。 l又稱子系統(tǒng)測試、聯(lián)合測試。 5 被測被測 模塊模塊單元單元 測試測試 設(shè)計(jì)設(shè)計(jì) 信息信息 集成集成 測試測試 被測被測 模塊模塊 單元單元 測試測試 被測被測 模塊模塊 單元單元 測試測試 測試過測試過 的模塊的模塊 確認(rèn)確

3、認(rèn) 測試測試 系統(tǒng)系統(tǒng) 測試測試 軟件軟件 需求需求 其它系其它系 統(tǒng)元素統(tǒng)元素 裝配好裝配好 的軟件的軟件 確認(rèn)確認(rèn) 的軟件的軟件 可運(yùn)可運(yùn) 行的行的 軟件軟件 6 集成集成 測試測試 系統(tǒng)系統(tǒng) 測試測試 單元單元 測試測試 灰盒測試灰盒測試, 采用較多黑采用較多黑 盒方法構(gòu)造盒方法構(gòu)造 測試用例測試用例 黑盒測試黑盒測試 大量采用大量采用白白 盒測試盒測試方法方法 測試方法測試方法 模塊間模塊間的的 集成和調(diào)集成和調(diào) 用關(guān)系用關(guān)系 整個(gè)系統(tǒng)整個(gè)系統(tǒng), 包括系統(tǒng)包括系統(tǒng) 軟硬件等軟硬件等 模塊內(nèi)部模塊內(nèi)部 程序錯(cuò)誤程序錯(cuò)誤 對象對象 找出與軟件設(shè)計(jì)相找出與軟件設(shè)計(jì)相 關(guān)的程序結(jié)構(gòu),模關(guān)的程序

4、結(jié)構(gòu),模 塊調(diào)用關(guān)系,模塊塊調(diào)用關(guān)系,模塊 間接口方面的問題間接口方面的問題 對整個(gè)系統(tǒng)進(jìn)行一對整個(gè)系統(tǒng)進(jìn)行一 系列的整體、有效系列的整體、有效 性測試性測試 消除局部模塊邏輯消除局部模塊邏輯 和功能上的錯(cuò)誤和和功能上的錯(cuò)誤和 缺陷缺陷 目的目的 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 目標(biāo)說明書目標(biāo)說明書 需求說明書等需求說明書等 程序結(jié)構(gòu)設(shè)計(jì)程序結(jié)構(gòu)設(shè)計(jì) 模塊邏輯設(shè)計(jì)模塊邏輯設(shè)計(jì) 模塊外部說明模塊外部說明 測試依據(jù)測試依據(jù) 三、集成測試的目的三、集成測試的目的 l確保各單元組合在一起后能夠按既定意圖 協(xié)作運(yùn)行,并確保增量的行為正確,所測 試的內(nèi)容包括單元間的接口單元間的接口以及集成后的集成后的 功能。功

5、能。 l具體來說,集成測試考慮以下問題:具體來說,集成測試考慮以下問題: 三、集成測試的目的三、集成測試的目的 1.在把各個(gè)模塊連接起來的時(shí)候,穿越模塊在把各個(gè)模塊連接起來的時(shí)候,穿越模塊 接口的數(shù)據(jù)是否會(huì)丟失;接口的數(shù)據(jù)是否會(huì)丟失; 2.各個(gè)子功能組合起來,能否達(dá)到預(yù)期要求各個(gè)子功能組合起來,能否達(dá)到預(yù)期要求 的父功能;的父功能; 3.一個(gè)模塊的功能是否會(huì)對另一個(gè)模塊的功一個(gè)模塊的功能是否會(huì)對另一個(gè)模塊的功 能產(chǎn)生不利的影響;能產(chǎn)生不利的影響; 4.全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問題全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問題 5.單個(gè)模塊的誤差積累起來,是否會(huì)放大,單個(gè)模塊的誤差積累起來,是否會(huì)放大, 從而達(dá)到不可接受的程

6、度。從而達(dá)到不可接受的程度。 集成測試有以下不可替代的特點(diǎn):集成測試有以下不可替代的特點(diǎn): l 單元測試具有不徹底性,對于模塊間接口信息內(nèi)容的正確單元測試具有不徹底性,對于模塊間接口信息內(nèi)容的正確 性、相互調(diào)用關(guān)系是否符合設(shè)計(jì)無能為力。只能靠集成測性、相互調(diào)用關(guān)系是否符合設(shè)計(jì)無能為力。只能靠集成測 試來進(jìn)行保障。試來進(jìn)行保障。 l 同系統(tǒng)測試相比,由于集成測試用例是從程序結(jié)構(gòu)出發(fā)的,同系統(tǒng)測試相比,由于集成測試用例是從程序結(jié)構(gòu)出發(fā)的, 目的性、針對性更強(qiáng),測試項(xiàng)發(fā)現(xiàn)問題的效率更高,定位目的性、針對性更強(qiáng),測試項(xiàng)發(fā)現(xiàn)問題的效率更高,定位 問題的效率也較高;問題的效率也較高; l 能夠較容易地測試

7、到系統(tǒng)測試用例難以模擬的特殊異常流能夠較容易地測試到系統(tǒng)測試用例難以模擬的特殊異常流 程,從純理論的角度來講,集成測試能夠模擬所有實(shí)際情程,從純理論的角度來講,集成測試能夠模擬所有實(shí)際情 況;況; l 定位問題較快,由于集成測試具有可重復(fù)強(qiáng)、對測試人員定位問題較快,由于集成測試具有可重復(fù)強(qiáng)、對測試人員 透明的特點(diǎn),發(fā)現(xiàn)問題后容易定位,所以能夠有效地加快透明的特點(diǎn),發(fā)現(xiàn)問題后容易定位,所以能夠有效地加快 進(jìn)度,減少隱患。進(jìn)度,減少隱患。 三、集成測試的目的三、集成測試的目的 10 11 四、集成測試的層次四、集成測試的層次 l由集成的力度不同,一般可以把集成測試由集成的力度不同,一般可以把集成測

8、試 劃分為三個(gè)級(jí)別:劃分為三個(gè)級(jí)別: l(1)模塊內(nèi)集成測試。 l(2)子系統(tǒng)內(nèi)集成測試:先測試子系統(tǒng)內(nèi) 的功能模塊,然后將各個(gè)功能模塊組合起 來確認(rèn)子系統(tǒng)的功能是否達(dá)到預(yù)期要求。 l(3)子系統(tǒng)間集成測試:測試的單元是子 系統(tǒng)之間的接口。子系統(tǒng)是可單獨(dú)運(yùn)行的 程序或進(jìn)程。 五、集成測試方法五、集成測試方法 l 靜態(tài)測試技術(shù)靜態(tài)測試技術(shù)針對概要設(shè)計(jì)的測試針對概要設(shè)計(jì)的測試 (什么是概要設(shè)計(jì)?)(什么是概要設(shè)計(jì)?) l 動(dòng)態(tài)測試技術(shù)動(dòng)態(tài)測試技術(shù)灰盒測試灰盒測試 (什么是灰盒測試?)什么是灰盒測試?) 灰盒測試的優(yōu)點(diǎn):灰盒測試的優(yōu)點(diǎn): l 能夠進(jìn)行基于需求的測試和基于路徑的覆蓋測試。能夠進(jìn)行基于需

9、求的測試和基于路徑的覆蓋測試。 l 可深入被測對象的內(nèi)部,便于錯(cuò)誤的識(shí)別分析和可深入被測對象的內(nèi)部,便于錯(cuò)誤的識(shí)別分析和 解決。解決。 l 能夠保證設(shè)計(jì)的黑盒測試用例的完整性,防止功能夠保證設(shè)計(jì)的黑盒測試用例的完整性,防止功 能或功能組合的遺漏能或功能組合的遺漏 l 能夠減小需求或設(shè)計(jì)不詳細(xì)或不完整性對測試有能夠減小需求或設(shè)計(jì)不詳細(xì)或不完整性對測試有 效性造成影響。效性造成影響。 五、集成測試方法五、集成測試方法 六、集成策略六、集成策略 l指在測試對象分析基礎(chǔ)上,描述軟件模塊指在測試對象分析基礎(chǔ)上,描述軟件模塊 集成的方式、方法。集成的方式、方法。 l我們已經(jīng)知道,集成測試是把功能模塊或我們

10、已經(jīng)知道,集成測試是把功能模塊或 程序單元組合起來進(jìn)行測試,發(fā)現(xiàn)模塊在程序單元組合起來進(jìn)行測試,發(fā)現(xiàn)模塊在 組合過程中的缺陷。那么,組合過程中的缺陷。那么,系統(tǒng)中的各個(gè)系統(tǒng)中的各個(gè) 模塊如何組合呢?是全部同時(shí)組裝還是逐模塊如何組合呢?是全部同時(shí)組裝還是逐 漸組裝模塊?漸組裝模塊?這是集成策略將要解答的問這是集成策略將要解答的問 題。題。 l集成的基本策略比較多,分類比較復(fù)雜,集成的基本策略比較多,分類比較復(fù)雜, 但是都可以歸結(jié)為以下兩類:但是都可以歸結(jié)為以下兩類: l 非增量式集成策略非增量式集成策略一步到位一步到位 l NonIncremental Testing l 增量式集成策略增量式集

11、成策略逐步實(shí)現(xiàn)逐步實(shí)現(xiàn) lIncremental Testing 6.1 非增量式集成策略非增量式集成策略 l非增量式測試是采用一步到位一步到位的方法來構(gòu) 造測試: 對所有模塊進(jìn)行個(gè)別的單元測試后, 按照程序結(jié)構(gòu)圖將各模塊連接起來,把連 接后的程序當(dāng)作一個(gè)整體進(jìn)行測試。 l又叫大爆炸式集成又叫大爆炸式集成 非增量式測試非增量式測試 (Big-bang testing) Test A, B, C, D Test A Test B Test C Test D 非增量式集成測試實(shí)例非增量式集成測試實(shí)例 A S3S4S5 d2 C d4 E d5 F d1 B s1 d3 s2 D A BCD EF

12、A BCD EF (1)程序結(jié)構(gòu)圖 (3)集成測試示意圖 (2)單元測試示意圖 非增量式策略實(shí)例非增量式策略實(shí)例 評述:模塊評述:模塊d1、d2、d3、d4、d5是對各個(gè)模塊做是對各個(gè)模塊做 單元測試時(shí)建立的驅(qū)動(dòng)模塊,單元測試時(shí)建立的驅(qū)動(dòng)模塊,s1、s2、s3、s4、 s5是為單元測試而建立的樁模塊。這種一次性集是為單元測試而建立的樁模塊。這種一次性集 成方式將所測模塊連接起來進(jìn)行測試,但是一次成方式將所測模塊連接起來進(jìn)行測試,但是一次 試運(yùn)行成功地可能性并不大。其結(jié)果發(fā)現(xiàn)有錯(cuò)誤,試運(yùn)行成功地可能性并不大。其結(jié)果發(fā)現(xiàn)有錯(cuò)誤, 但茫然找不到原因,差錯(cuò)和改錯(cuò)都會(huì)遇到困難。但茫然找不到原因,差錯(cuò)和改

13、錯(cuò)都會(huì)遇到困難。 非增量式策略非增量式策略 優(yōu)點(diǎn):優(yōu)點(diǎn): l方法簡單方法簡單 l允許多測試人員同時(shí)并行工作,人力物允許多測試人員同時(shí)并行工作,人力物 力資源利用率較高力資源利用率較高 缺點(diǎn)缺點(diǎn) l必須為每個(gè)模塊準(zhǔn)備相應(yīng)的驅(qū)動(dòng)模塊和必須為每個(gè)模塊準(zhǔn)備相應(yīng)的驅(qū)動(dòng)模塊和 樁模塊,測試成本較高樁模塊,測試成本較高 l一旦集成后包含多種錯(cuò)誤,難以糾正。一旦集成后包含多種錯(cuò)誤,難以糾正。 關(guān)鍵模塊問題關(guān)鍵模塊問題 l在非增量式集成測試時(shí),應(yīng)當(dāng)確定關(guān)鍵模 塊,對這些關(guān)鍵模塊及早進(jìn)行測試。 l關(guān)鍵模塊的特征: 完成需求規(guī)格說明中的關(guān)鍵功能; 在程序的模塊結(jié)構(gòu)中位于較高的層次 (高層控制模塊); 較復(fù)雜、較易發(fā)

14、生錯(cuò)誤; 有明確定義的性能要求。 6.2增量式集成策略增量式集成策略 l增量式測試的集成是逐步實(shí)現(xiàn)逐步實(shí)現(xiàn)的: 逐次將未曾集成測試的模塊和已經(jīng)集 成測試的模塊(或子系統(tǒng))結(jié)合成程序包, 再將這些模塊集成為較大系統(tǒng),在集成的 過程中邊連接邊測試,以發(fā)現(xiàn)連接過程中 產(chǎn)生的問題。 l按照不同的實(shí)施次序,增量式集成測試又 可以分為三種不同的方法: (1)自頂向下增量式測試 (2)自底向上增量式測試 (3)三明治增量式測試(混合增量式測試) 6.2增量式集成策略增量式集成策略 6.2.1 自頂向下增量測試自頂向下增量測試 l自頂向下增量式測試自頂向下增量式測試表示逐步集成和逐步 測試是按照結(jié)構(gòu)圖自上而下

15、進(jìn)行的,即模 塊集成的順序是首先集成主控模塊(主程 序),然后依照控制層次結(jié)構(gòu)向下進(jìn)行集 成。從屬于主控模塊的按深度優(yōu)先深度優(yōu)先方式 (縱向)或者廣度優(yōu)先廣度優(yōu)先方式(橫向)集成 到結(jié)構(gòu)中去。 l深度優(yōu)先方式:深度優(yōu)先方式: 首先集成在結(jié)構(gòu)中的一個(gè)主控路徑下的一個(gè)主控路徑下的 所有模塊所有模塊,主控路徑的選擇是任意的。 l廣度優(yōu)先方式:廣度優(yōu)先方式: 首先沿著水平方向,把每一層中所有把每一層中所有 直接隸屬于上一層的模塊集成起來直接隸屬于上一層的模塊集成起來,直到 底層。 l 自頂向下集成測試的整個(gè)過程由3個(gè)步驟完成: (1)主控模塊作為測試驅(qū)動(dòng)器。 (2)根據(jù)集成的方式(深度或廣度),下層的

16、樁 模塊一次一次地被替換為真正的模塊。 (3)在每個(gè)模塊被集成時(shí),都必須進(jìn)行單元測試。 重復(fù)第2步,直到整個(gè)系統(tǒng)被測試完成。 6.2.1 自頂向下增量測試自頂向下增量測試 28 29 30 31 練習(xí)一下練習(xí)一下 對如下結(jié)構(gòu)采用自頂向下深度優(yōu)先策略進(jìn)行對如下結(jié)構(gòu)采用自頂向下深度優(yōu)先策略進(jìn)行 測試測試 解:解: M S1S2S3 測試M M S2S3A S4S5 加入A M S2S3A DS5 加入D M S2S3A DE 加入E M BS3A DE 加入B M BCA DE 加入B C 自頂向下增量式集成適用范圍:自頂向下增量式集成適用范圍: 6.2.2 自底向上增量式測試自底向上增量式測試

17、自底向上進(jìn)行集成和測試時(shí),需要為所測模自底向上進(jìn)行集成和測試時(shí),需要為所測模 塊或子系統(tǒng)編制相應(yīng)的驅(qū)動(dòng)模塊。常見的塊或子系統(tǒng)編制相應(yīng)的驅(qū)動(dòng)模塊。常見的 幾種類型的驅(qū)動(dòng)模塊如圖所示:幾種類型的驅(qū)動(dòng)模塊如圖所示: 驅(qū)動(dòng)程序 Driver A 驅(qū)動(dòng)程序 Driver B 驅(qū)動(dòng)程序 Driver C 驅(qū)動(dòng)程序 Driver D 調(diào)用從屬模塊從表(或外部文 件)中傳遞參數(shù) 顯示參數(shù)兼有驅(qū)動(dòng)程序B、 C的功能 表示傳送的參數(shù)信息表示傳送的參數(shù)信息 6.2.2 自底向上增量式測試自底向上增量式測試 自底向上增量式集成測試步驟:自底向上增量式集成測試步驟: 自底向上增量式測試自底向上增量式測試 A B C D

18、 E F d2 C d1 E d3 F d4 B E d5 F D A B C D E F 39 40 41 42 43 44 改進(jìn)后的三明治集成方法改進(jìn)后的三明治集成方法 改進(jìn)的三明治集成方法,不僅自兩頭向中改進(jìn)的三明治集成方法,不僅自兩頭向中 間集成,而且保證每個(gè)模塊得到單獨(dú)的測間集成,而且保證每個(gè)模塊得到單獨(dú)的測 試,使測試進(jìn)行得比較徹底試,使測試進(jìn)行得比較徹底 。 改進(jìn)的三明治集成方法改進(jìn)的三明治集成方法 集成策略框圖集成策略框圖 七、不同集成測試方法的比較七、不同集成測試方法的比較 1、非增量式測試與增量式測試的比較 l 非增量式測試的方法是先分散測試,然后集中起來再一次 完成集成測

19、試。假如在模塊的接口處存在錯(cuò)誤,只會(huì)在最 后的集成測試時(shí)一下子暴露出來。 l 增量式測試是逐步集成和逐步測試的方法,把可能出現(xiàn)的 差錯(cuò)分散暴露出來,便于找出問題和修改。而且一些模塊 在逐步集成的測試中,得到了較多次的考驗(yàn),因此,可能 會(huì)取得較好的測試效果。 結(jié)論:增量式測試要比非增量式測試具有一定的優(yōu)越性。 七、不同集成測試方法的比較不同集成測試方法的比較 2、自頂向下與自底向上增量式測試的比較 l 自頂向下增量式測試: 主要優(yōu)點(diǎn)在于它可以自然的做到逐步求精,一開始 就能讓測試者看到系統(tǒng)的框架。 主要缺點(diǎn)是需要提供樁模塊,并且在輸入/輸出模塊 接入系統(tǒng)以前,在樁模塊中表示測試數(shù)據(jù)有一定困難。

20、l 自底向上增量式測試: 優(yōu)點(diǎn)在于,由于驅(qū)動(dòng)模塊模擬了所有調(diào)用參數(shù),即 使數(shù)據(jù)流并未構(gòu)成有向的非環(huán)狀圖,生成測試數(shù)據(jù)也無 困難。 主要缺點(diǎn)在于,直到最后一個(gè)模塊被加進(jìn)去之后才 能看到整個(gè)程序(系統(tǒng))的框架。 三種增量測試比較三種增量測試比較 作業(yè):畫圖給出集成測試的步驟(自頂向下,自底向上)作業(yè):畫圖給出集成測試的步驟(自頂向下,自底向上) 八、集成測試流程八、集成測試流程 集成測試主要由系統(tǒng)部的集成測試主要由系統(tǒng)部的系統(tǒng)設(shè)計(jì)人員系統(tǒng)設(shè)計(jì)人員、 軟件評測部軟件評測部完成,完成,開發(fā)人員開發(fā)人員也參與集成測也參與集成測 試。集成測試相對來說是挺復(fù)雜的,而且試。集成測試相對來說是挺復(fù)雜的,而且 對于不同的技術(shù)、平臺(tái)和應(yīng)用差異也比較對于不同的技術(shù)、平臺(tái)和應(yīng)用差異也比較 大,更多是和開發(fā)環(huán)境融合在一起。集成大,更多是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論