陜西工業(yè)職業(yè)技術(shù)學院 楊 鵬
首先,持續(xù)集成和集成測試還是有很大區(qū)別,持續(xù)集成強調(diào)的是自動化的編譯構(gòu)建,部署,自動化的冒煙測試,保證開發(fā)過程的產(chǎn)出隨時都可以構(gòu)建一個冒煙測試通過的可用版本。而集成測試則涉及到嚴格的測試策略,測試方案,集成測試順序,各個集成功能點的覆蓋,詳細的功能性測試等。集成測試不僅僅是接口測試,更重要的是以接口質(zhì)量為前提的跨組件功能性測試。
集成測試,也叫組裝測試或聯(lián)合測試。在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計要求組裝成為子系統(tǒng)或系統(tǒng),進行集成測試。實踐表明,一些模塊雖然能夠單獨地工作,但并不能保證連接起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實現(xiàn)。
理論上凡是兩個單元(如函數(shù)單元)的組合測試都可以叫做集成測試。實際操作中,通常集成測試的對象為模塊級的集成和子系統(tǒng)間的集成,其中子系統(tǒng)集成測試稱為組件測試。
在單元測試和系統(tǒng)測試間起到承上啟下的作用,既能發(fā)現(xiàn)大量單元測試階段不易發(fā)現(xiàn)的接口類錯誤,又可以保證在進入系統(tǒng)測試前及早發(fā)現(xiàn)錯誤,減少損失。
對系統(tǒng)而言,接口錯誤是最常見的錯誤,單元測試通常是單人執(zhí)行,而集成測試通常是多人執(zhí)行或第三方執(zhí)行。集成測試通過模塊間的交互作用和不同人的理解和交流,更容易發(fā)現(xiàn)實現(xiàn)上、理解上的不一致和差錯。
●在開始體系結(jié)構(gòu)設(shè)計的時候開始;
●在進入詳細設(shè)計之前完成集成測試方案;
●在進入系統(tǒng)測試之前結(jié)束集成測試。
●集成測試是產(chǎn)品研發(fā)中的重要工作,需要為其分配足夠的資源和時間。
●集成測試需要經(jīng)過嚴密的計劃,并嚴格按計劃執(zhí)行。
●應(yīng)采取增量式的分步集成方式,逐步進行軟件部件的集成和測試。
●應(yīng)重視測試自動化技術(shù)的引入與應(yīng)用,不斷提高集成測試效率。
●應(yīng)該注意測試用例的積累和管理,方便進行回歸并進行測試用例補充。
在整個軟件開發(fā)都可迭代的模式下,要意識到集成測試過程本身也是可以迭代的。大型產(chǎn)品集成不應(yīng)該等待到真正各個子系統(tǒng)或業(yè)務(wù)模塊都開發(fā)好才開始集成測試。功能開發(fā)的迭代直接驅(qū)動集成測試過程也是迭代,同時在每個集成測試周期中最好又分為幾個關(guān)鍵點,首先是服務(wù)模擬器,其次是替換掉模擬器聯(lián)調(diào)通組件接口,再次測試接口服務(wù)中詳細實現(xiàn)。
我一直認為這是集成測試中非常關(guān)鍵的一個內(nèi)容,集成順序的確定涉及到前期大量的組件間依賴關(guān)系分析,業(yè)務(wù)功能點和接口對應(yīng)關(guān)系分析等。特別是發(fā)展到現(xiàn)在,我們發(fā)現(xiàn)很多時候組件間不再是以前單純的單向依賴關(guān)系,由于接口服務(wù)注冊在總線上,導致多個組件間可以相互依賴,所以前面簡單的組件依賴分析已經(jīng)不適用,替代的方法是基于跨組件的流程協(xié)同分析,以核心流程驅(qū)動組件間的組裝順序。
同時,對于傳統(tǒng)的自頂向下集成和自底向上集成方法往往都不能完全覆蓋。很多時候采用的都會是混合集成的策略。一個是為了及早的看到集成的效果我們期望從頂向下,但是卻需要大量的模擬器和stub樁模塊。另外一個是為了減少模擬器,我們從最底層向上集成,但是往往卻將風險延遲到最后發(fā)現(xiàn)。
在每個組件或模塊的單元測試階段更加容易實現(xiàn)每日構(gòu)建和持續(xù)集成,持續(xù)集成完后應(yīng)該對每個獨立模塊進行詳細測試,但是測試需要依賴一定的模擬器。在集成測試環(huán)境則進入到集成流水線,集成流水線的準入應(yīng)該是每個組件在單元測試環(huán)境都完全測試通過,集成流水線根據(jù)組件的集成需求來規(guī)劃具體的測試計劃和測試方案。集成測試過程仍然應(yīng)該首先是冒煙測試進行準入驗證,然后是接口測試,然后是詳細功能測試,最終交付到驗收。
●所有軟件模塊完后單元測試后一次集成。
●優(yōu)點:測試過程中基本不需要設(shè)計開發(fā)測試工具。
●不足:對于復雜系統(tǒng),當出現(xiàn)問題時故障定位困難,和系統(tǒng)測試接近,難以體現(xiàn)和發(fā)揮集成測試的優(yōu)勢。
●逐漸集成,由小到大,邊集成邊測試,測完一部分,再連接一部分。
●在復雜系統(tǒng)中,劃分的軟件單元較多,通常是不會一次集成的。
●軟件集成的精細度取決于集成策略。通常的做法是先模塊間的集成,再部件間的集成。
●優(yōu)點:測試層次清晰,出現(xiàn)問題能夠快速定位。
●缺點:需要開發(fā)測試驅(qū)動和樁。
●集成測試在實現(xiàn)方式上和單元測試是一樣的,需要根據(jù)測試需求設(shè)計實現(xiàn)相應(yīng)的測試驅(qū)動和測試樁,同時也可以借助一些工具進行輔助測試。
●對我們的系統(tǒng)而言,相對于單元測試,適用的商用集成測試選擇面更窄。
●實際工作中,各項目開發(fā)的模擬工具即屬于集成測試工具,但在系統(tǒng)化、靈活性、通用性上尚欠缺,缺乏系統(tǒng)全面的設(shè)計。
●現(xiàn)有的模擬工具在測試自動化上也需改進,如實現(xiàn)測試數(shù)據(jù)的自動生成、測試用例的自動運行、測試結(jié)果的自動保存和比較等。
所有的軟件項目都不能擺脫系統(tǒng)集成這個階段。不管采用什么開發(fā)模式,具體的開發(fā)工作總得從一個一個的軟件單元做起,軟件單元只有經(jīng)過集成才能形成一個有機的整體。具體的集成過程可能是顯性的也可能是隱性的。只要有集成,總是會出現(xiàn)一些常見問題,工程實踐中集成測試,幾乎不存在軟件單元組裝過程中不出任何問題的情況。
[1]李天日,林寧,高林.基于國產(chǎn)基礎(chǔ)軟件應(yīng)用系統(tǒng)的性能測試與優(yōu)化研究[J].微型機與應(yīng)用,2010(11).
[2]謝謙,高林,楊建軍.國產(chǎn)基礎(chǔ)軟件標準化與研發(fā)、測試、應(yīng)用[J].信息技術(shù)與標準化,2008(06).
[3][美]Paul C Jorgensen.軟件測試[M].韓柯,杜旭濤,譯.機械工業(yè)出版社(2版),2002.
[4]張艷梅,姜淑娟,張紅昌.一種基于動態(tài)依賴關(guān)系的類集成測試方法[J].計算機學報,2011(6).