集成測(cè)試關(guān)鍵詞: 集成測(cè)試
集成測(cè)試(也叫組裝測(cè)試,聯(lián)合測(cè)試)是單元測(cè)試的邏輯擴(kuò)展。它的最簡(jiǎn)單的形式是:兩個(gè)已經(jīng)測(cè)試過(guò)的單元組合成一個(gè)組件,并且測(cè)試它們之間的接口。從這一層意義上講,組件是指多個(gè)單元的集成聚合。在現(xiàn)實(shí)方案中,許多單元組合成組件,而這些組件又聚合成程序的更大部分。方法是測(cè)試片段的組合,并最終擴(kuò)展進(jìn)程,將您的模塊與其他組的模塊一起測(cè)試。最后,將構(gòu)成進(jìn)程的所有模塊一起測(cè)試。此外,如果程序由多個(gè)進(jìn)程組成,應(yīng)該成對(duì)測(cè)試它們,而不是同時(shí)測(cè)試所有進(jìn)程。 集成測(cè)試識(shí)別組合單元時(shí)出現(xiàn)的問(wèn)題。通過(guò)使用要求在組合單元前測(cè)試每個(gè)單元并確保每個(gè)單元的生存能力的測(cè)試計(jì)劃,可以知道在組合單元時(shí)所發(fā)現(xiàn)的任何錯(cuò)誤很可能與單元之間的接口有關(guān)。這種方法將可能發(fā)生的情況數(shù)量減少到更簡(jiǎn)單的分析級(jí)別。 集成測(cè)試是在單元測(cè)試的基礎(chǔ)上,測(cè)試在將所有的軟件單元按照概要設(shè)計(jì)規(guī)格說(shuō)明的要求組裝成模塊、子系統(tǒng)或系統(tǒng)的過(guò)程中各部分工作是否達(dá)到或?qū)崿F(xiàn)相應(yīng)技術(shù)指標(biāo)及要求的活動(dòng)。也就是說(shuō),在集成測(cè)試之前,單元測(cè)試應(yīng)該已經(jīng)完成,集成測(cè)試中所使用的對(duì)象應(yīng)該是已經(jīng)經(jīng)過(guò)單元測(cè)試的軟件單元。這一點(diǎn)很重要,因?yàn)槿绻唤?jīng)過(guò)單元測(cè)試,那么集成測(cè)試的效果將會(huì)受到很大影響,并且會(huì)大幅增加軟件單元代碼糾錯(cuò)的代價(jià)。 集成測(cè)試是單元測(cè)試的邏輯擴(kuò)展。在現(xiàn)實(shí)方案中,集成是指多個(gè)單元的聚合,許多單元組合成模塊,而這些模塊又聚合成程序的更大部分,如分系統(tǒng)或系統(tǒng)。集成測(cè)試采用的方法是測(cè)試軟件單元的組合能否正常工作,以及與其他組的模塊能否集成起來(lái)工作。最后,還要測(cè)試構(gòu)成系統(tǒng)的所有模塊組合能否正常工作。集成測(cè)試所持的主要標(biāo)準(zhǔn)是《軟件概要設(shè)計(jì)規(guī)格說(shuō)明》,任何不符合該說(shuō)明的程序模塊行為都應(yīng)該加以記載并上報(bào)。 所有的軟件項(xiàng)目都不能擺脫系統(tǒng)集成這個(gè)階段。不管采用什么開(kāi)發(fā)模式,具體的開(kāi)發(fā)工作總得從一個(gè)一個(gè)的軟件單元做起,軟件單元只有經(jīng)過(guò)集成才能形成一個(gè)有機(jī)的整體。具體的集成過(guò)程可能是顯性的也可能是隱性的。只要有集成,總是會(huì)出現(xiàn)一些常見(jiàn)問(wèn)題,工程實(shí)踐中,幾乎不存在軟件單元組裝過(guò)程中不出任何問(wèn)題的情況。從圖1可以看出,集成測(cè)試需要花費(fèi)的時(shí)間遠(yuǎn)遠(yuǎn)超過(guò)單元測(cè)試,直接從單元測(cè)試過(guò)渡到系統(tǒng)測(cè)試是極不妥當(dāng)?shù)淖龇ā? 集成測(cè)試的必要性還在于一些模塊雖然能夠單獨(dú)地工作,但并不能保證連接起來(lái)也能正常工作。程序在某些局部反映不出來(lái)的問(wèn)題,有可能在全局上會(huì)暴露出來(lái),影響功能的實(shí)現(xiàn)。此外,在某些開(kāi)發(fā)模式中,如迭代式開(kāi)發(fā),設(shè)計(jì)和實(shí)現(xiàn)是迭代進(jìn)行的。在這種情況下,集成測(cè)試的意義還在于它能間接地驗(yàn)證概要設(shè)計(jì)是否具有可行性。 集成測(cè)試的目的是確保各單元組合在一起后能夠按既定意圖協(xié)作運(yùn)行,并確保增量的行為正確。它所測(cè)試的內(nèi)容包括單元間的接口以及集成后的功能。使用黑盒測(cè)試方法測(cè)試集成的功能。并且對(duì)以前的集成進(jìn)行回歸測(cè)試。 一、集成測(cè)試過(guò)程 二、單元測(cè)試工作內(nèi)容及其流程 三、集成測(cè)試需求獲取 集成測(cè)試需求所確定的是對(duì)某一集成工作版本的測(cè)試的內(nèi)容,即測(cè)試的具體對(duì)象。集成測(cè)試需求主要來(lái)源于設(shè)計(jì)模型(Design Model)和集成構(gòu)件計(jì)劃(Integration Build Plan)。集成測(cè)試著重于集成版本的外部接口的行為。因此,測(cè)試需求須具有可觀測(cè)、可測(cè)評(píng)性。 1. 集成工作版本應(yīng)分析其類協(xié)作與消息序列,從而找出該工作版本的外部接口。 2. 由集成工作版本的外部接口確定集成測(cè)試用例。 3. 測(cè)試用例應(yīng)覆蓋工作版本每一外部接口的所有消息流序列。 注意:一個(gè)外部接口和測(cè)試用例的關(guān)系是多對(duì)多,部分集成工作版本的測(cè)試需求可映射到系統(tǒng)測(cè)試需求,因此對(duì)這些集成測(cè)試用例可采用重用系統(tǒng)測(cè)試用例技術(shù)。 四、集成測(cè)試工作機(jī)制 軟件集成測(cè)試工作由產(chǎn)品評(píng)測(cè)部擔(dān)任。需要項(xiàng)目組相關(guān)角色配合完成。如圖示: 軟件評(píng)測(cè)部: 軟件項(xiàng)目組: 集成測(cè)試工作內(nèi)容及其流程工作流程: 五、集成測(cè)試產(chǎn)生的工件清單 1、 軟件集成測(cè)試計(jì)劃 六、集成測(cè)試常用方案選型 集成測(cè)試的實(shí)施方案有很多種,如自底向上集成測(cè)試、自頂向下集成測(cè)試、Big-Bang集成測(cè)試、三明治集成測(cè)試、核心集成測(cè)試、分層集成測(cè)試、基于使用的集成測(cè)試等。在此,筆者將重點(diǎn)討論其中一些經(jīng)實(shí)踐檢驗(yàn)和一些證實(shí)有效的集成測(cè)試方案。 ·自底向上集成測(cè)試 自底向上的集成(Bottom-Up Integration)方式是最常使用的方法。其他集成方法都或多或少地繼承、吸收了這種集成方式的思想。自底向上集成方式從程序模塊結(jié)構(gòu)中最底層的模塊開(kāi)始組裝和測(cè)試。因?yàn)槟K是自底向上進(jìn)行組裝的,對(duì)于一個(gè)給定層次的模塊,它的子模塊(包括子模塊的所有下屬模塊)事前已經(jīng)完成組裝并經(jīng)過(guò)測(cè)試,所以不再需要編制樁模塊(一種能模擬真實(shí)模塊,給待測(cè)模塊提供調(diào)用接口或數(shù)據(jù)的測(cè)試用軟件模塊)。自底向上集成測(cè)試的步驟大致如下: 步驟一: 按照概要設(shè)計(jì)規(guī)格說(shuō)明,明確有哪些被測(cè)模塊。在熟悉被測(cè)模塊性質(zhì)的基礎(chǔ)上對(duì)被測(cè)模塊進(jìn)行分層,在同一層次上的測(cè)試可以并行進(jìn)行,然后排出測(cè)試活動(dòng)的先后關(guān)系,制定測(cè)試進(jìn)度計(jì)劃。圖2給出了自底向上的集成測(cè)試過(guò)程中各測(cè)試活動(dòng)的拓?fù)潢P(guān)系。利用圖論的相關(guān)知識(shí),可以排出各活動(dòng)之間的時(shí)間序列關(guān)系,處于同一層次的測(cè)試活動(dòng)可以同時(shí)進(jìn)行,而不會(huì)相互影響。 步驟二: 在步驟一的基礎(chǔ)上,按時(shí)間線序關(guān)系,將軟件單元集成為模塊,并測(cè)試在集成過(guò)程中出現(xiàn)的問(wèn)題。這里,可能需要測(cè)試人員開(kāi)發(fā)一些驅(qū)動(dòng)模塊來(lái)驅(qū)動(dòng)集成活動(dòng)中形成的被測(cè)模塊。對(duì)于比較大的模塊,可以先將其中的某幾個(gè)軟件單元集成為子模塊,然后再集成為一個(gè)較大的模塊。 步驟三: 將各軟件模塊集成為子系統(tǒng)(或分系統(tǒng))。檢測(cè)各自子系統(tǒng)是否能正常工作。同樣,可能需要測(cè)試人員開(kāi)發(fā)少量的驅(qū)動(dòng)模塊來(lái)驅(qū)動(dòng)被測(cè)子系統(tǒng)。 步驟四: 將各子系統(tǒng)集成為最終用戶系統(tǒng),測(cè)試是否存在各分系統(tǒng)能否在最終用戶系統(tǒng)中正常工作。 方案點(diǎn)評(píng): 自底向上的集成測(cè)試方案是工程實(shí)踐中最常用的測(cè)試方法。相關(guān)技術(shù)也較為成熟。它的優(yōu)點(diǎn)很明顯: 管理方便、測(cè)試人員能較好地鎖定軟件故障所在位置。但它對(duì)于某些開(kāi)發(fā)模式不適用,如使用XP開(kāi)發(fā)方法,它會(huì)要求測(cè)試人員在全部軟件單元實(shí)現(xiàn)之前完成核心軟件部件的集成測(cè)試。盡管如此,自底向上的集成測(cè)試方法仍不失為一個(gè)可供參考的集成測(cè)試方案。 ·核心系統(tǒng)先行集成測(cè)試 核心系統(tǒng)先行集成測(cè)試法的思想是先對(duì)核心軟件部件進(jìn)行集成測(cè)試,在測(cè)試通過(guò)的基礎(chǔ)上再按各外圍軟件部件的重要程度逐個(gè)集成到核心系統(tǒng)中。每次加入一個(gè)外圍軟件部件都產(chǎn)生一個(gè)產(chǎn)品基線,直至最后形成穩(wěn)定的軟件產(chǎn)品。核心系統(tǒng)先行集成測(cè)試法對(duì)應(yīng)的集成過(guò)程是一個(gè)逐漸趨于閉合的螺旋形曲線,代表產(chǎn)品逐步定型的過(guò)程。其步驟如下: 步驟一: 對(duì)核心系統(tǒng)中的每個(gè)模塊進(jìn)行單獨(dú)的、充分的測(cè)試,必要時(shí)使用驅(qū)動(dòng)模塊和樁模塊; 步驟二: 對(duì)于核心系統(tǒng)中的所有模塊一次性集合到被測(cè)系統(tǒng)中,解決集成中出現(xiàn)的各類問(wèn)題。在核心系統(tǒng)規(guī)模相對(duì)較大的情況下,也可以按照自底向上的步驟,集成核心系統(tǒng)的各組成模塊。 步驟三: 按照各外圍軟件部件的重要程度以及模塊間的相互制約關(guān)系,擬定外圍軟件部件集成到核心系統(tǒng)中的順序方案。方案經(jīng)評(píng)審以后,即可進(jìn)行外圍軟件部件的集成。 步驟四: 在外圍軟件部件添加到核心系統(tǒng)以前,外圍軟件部件應(yīng)先完成內(nèi)部的模塊級(jí)集成測(cè)試。 步驟五: 按順序不斷加入外圍軟件部件,排除外圍軟件部件集成中出現(xiàn)的問(wèn)題,形成最終的用戶系統(tǒng)。 方案點(diǎn)評(píng): 該集成測(cè)試方法對(duì)于快速軟件開(kāi)發(fā)很有效果,適合較復(fù)雜系統(tǒng)的集成測(cè)試,能保證一些重要的功能和服務(wù)的實(shí)現(xiàn)。缺點(diǎn)是采用此法的系統(tǒng)一般應(yīng)能明確區(qū)分核心軟件部件和外圍軟件部件,核心軟件部件應(yīng)具有較高的耦合度,外圍軟件部件內(nèi)部也應(yīng)具有較高的耦合度,但各外圍軟件部件之間應(yīng)具有較低的耦合度。 ·高頻集成測(cè)試 高頻集成測(cè)試是指同步于軟件開(kāi)發(fā)過(guò)程,每隔一段時(shí)間對(duì)開(kāi)發(fā)團(tuán)隊(duì)的現(xiàn)有代碼進(jìn)行一次集成測(cè)試。如某些自動(dòng)化集成測(cè)試工具能實(shí)現(xiàn)每日深夜對(duì)開(kāi)發(fā)團(tuán)隊(duì)的現(xiàn)有代碼進(jìn)行一次集成測(cè)試,然后將測(cè)試結(jié)果發(fā)到各開(kāi)發(fā)人員的電子郵箱中。該集成測(cè)試方法頻繁地將新代碼加入到一個(gè)已經(jīng)穩(wěn)定的基線中,以免集成故障難以發(fā)現(xiàn),同時(shí)控制可能出現(xiàn)的基線偏差。使用高頻集成測(cè)試需要具備一定的條件: 可以持續(xù)獲得一個(gè)穩(wěn)定的增量,并且該增量?jī)?nèi)部已被驗(yàn)證沒(méi)有問(wèn)題; 大部分有意義的功能增加可以在一個(gè)相對(duì)穩(wěn)定的時(shí)間間隔(如每個(gè)工作日)內(nèi)獲得; 測(cè)試包和代碼的開(kāi)發(fā)工作必須是并行進(jìn)行的,并且需要版本控制工具來(lái)保證始終維護(hù)的是測(cè)試腳本和代碼的最新版本; 必須借助于使用自動(dòng)化工具來(lái)完成。高頻集成一個(gè)顯著的特點(diǎn)就是集成次數(shù)頻繁,顯然,人工的方法是不勝任的。 高頻集成測(cè)試一般采用如下步驟來(lái)完成: 步驟一: 選擇集成測(cè)試自動(dòng)化工具。如很多Java項(xiàng)目采用Junit+Ant方案來(lái)實(shí)現(xiàn)集成測(cè)試的自動(dòng)化,也有一些商業(yè)集成測(cè)試工具可供選擇。 步驟二: 設(shè)置版本控制工具,以確保集成測(cè)試自動(dòng)化工具所獲得的版本是最新版本。如使用CVS進(jìn)行版本控制。 步驟三: 測(cè)試人員和開(kāi)發(fā)人員負(fù)責(zé)編寫對(duì)應(yīng)程序代碼的測(cè)試腳本。 步驟四: 設(shè)置自動(dòng)化集成測(cè)試工具,每隔一段時(shí)間對(duì)配置管理庫(kù)的新添加的代碼進(jìn)行自動(dòng)化的集成測(cè)試,并將測(cè)試報(bào)告匯報(bào)給開(kāi)發(fā)人員和測(cè)試人員。 步驟五: 測(cè)試人員監(jiān)督代碼開(kāi)發(fā)人員及時(shí)關(guān)閉不合格項(xiàng)。 按照步驟三至步驟五不斷循環(huán),直至形成最終軟件產(chǎn)品。 方案點(diǎn)評(píng): 該測(cè)試方案能在開(kāi)發(fā)過(guò)程中及時(shí)發(fā)現(xiàn)代碼錯(cuò)誤,能直觀地看到開(kāi)發(fā)團(tuán)隊(duì)的有效工程進(jìn)度。在此方案中,開(kāi)發(fā)維護(hù)源代碼與開(kāi)發(fā)維護(hù)軟件測(cè)試包被賦予了同等的重要性,這對(duì)有效防止錯(cuò)誤、及時(shí)糾正錯(cuò)誤都很有幫助。該方案的缺點(diǎn)在于測(cè)試包有時(shí)候可能不能暴露深層次的編碼錯(cuò)誤和圖形界面錯(cuò)誤。 以上我們介紹了幾種常見(jiàn)的集成測(cè)試方案,一般來(lái)講,在現(xiàn)代復(fù)雜軟件項(xiàng)目集成測(cè)試過(guò)程中,通常采用核心系統(tǒng)先行集成測(cè)試和高頻集成測(cè)試相結(jié)合的方式進(jìn)行,自底向上的集成測(cè)試方案在采用傳統(tǒng)瀑布式開(kāi)發(fā)模式的軟件項(xiàng)目集成過(guò)程中較為常見(jiàn)。讀者應(yīng)該結(jié)合項(xiàng)目的實(shí)際工程環(huán)境及各測(cè)試方案適用的范圍進(jìn)行合理的選型。
原創(chuàng)作者:jerry 1引言 14風(fēng)險(xiǎn)及應(yīng)急計(jì)劃 |
|
來(lái)自: yiherainbow > 《我的圖書(shū)館》