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