集成測試,也叫組裝測試或聯(lián)合測試。在單元測試的基礎上,將所有模塊按照設計要求(如概要設計文檔)集成為子系統或系統,是單元測試的邏輯擴展。最簡(jiǎn)單的形式是:兩個(gè)已經(jīng)測試過(guò)的單元組合成一個(gè)組件,并測試它們之間的接口。
集成測試中,我們主要關(guān)注的是以下內容:
在把各個(gè)模塊連接起來(lái)時(shí),穿越模塊接口的數據是否會(huì )丟失;
各個(gè)子模塊組合起來(lái),能否達到預期要求的功能;
一個(gè)模塊的功能是否會(huì )對另一個(gè)模塊的功能產(chǎn)生不利的影響;
全局數據結構是否有問(wèn)題;
單個(gè)模塊的誤差積累起來(lái)是否會(huì )被放大,從而達到不可接受的程度。
在集成測試時(shí),我們需要關(guān)注被測模塊的實(shí)際調用情況,并結合模塊之間的接口來(lái)進(jìn)行測試。而無(wú)需過(guò)于關(guān)注其內部實(shí)現(內部實(shí)現已在單元測試驗證了)
常見(jiàn)接口類(lèi)型
我們已經(jīng)知道,集成測試關(guān)注的是模塊之間的接口??梢詫?ldquo;接口”作為切入點(diǎn)??v觀(guān)模塊之間的接口,我們可以歸納為以下幾種類(lèi)型:
通信協(xié)議:兩個(gè)模塊之間通信采用的是標準的或者自定義的協(xié)議;協(xié)議中即包含數據部分,又包含控制部分;而大部分實(shí)現將數據與控制通過(guò)一條鏈路來(lái)傳遞,往往通過(guò)不同的消息包進(jìn)行分離;
調用關(guān)系:模塊A調用模塊B,實(shí)際上是由模塊A向模塊B發(fā)出了一條控制指令,這里數據傳遞體現的不是很明顯,往往體現為參數與返回值;
文件、數據庫、隊列、第三方中間件等:表現的主要是數據的傳遞;
共享資源:比如共享一段“存儲區域”,其中涉及的關(guān)鍵資源主要是“鎖”了;這樣的兩個(gè)模塊在運行時(shí)往往分布到不同的進(jìn)程或者線(xiàn)程中,表現為對資源的競爭,以及數據的共享。
同步:一個(gè)模塊的運行需要另外一個(gè)模塊的觸發(fā),雙方往往存在“信號”等通知機制,也可以理解為一種特殊的控制方式。
集成測試思路
明確了測試對象以后,就可以按照一般的測試方法設計和實(shí)施測試了??砂慈缦滤悸愤M(jìn)行測試:
找出系統中的各種接口,如需要傳遞哪些數據?存在哪些控制指令?如數據(協(xié)議包)中字段取值,指令參數變化等;
將不同的控制指令等劃分等價(jià)類(lèi),找出每類(lèi)的代表,就得到了測試數據,讓每類(lèi)數據流與控制流均通過(guò)接口一次,從而實(shí)現接口測試的完全性;
另外,也要考慮模塊的集成能否準確體現業(yè)務(wù)上的關(guān)聯(lián)?各個(gè)模塊是否具備其角色的全部屬性和接口?
當然,集成測試不會(huì )太關(guān)心業(yè)務(wù)或者需求,那是系統測試的事了。但此時(shí)想想,往往能夠得到意外的收獲。
測試方案是一個(gè)重要的活動(dòng),其包含了對測試對象的分析,采用的集成策略,以及設計的各種測試用例等。測試方案文檔應該按照公司規定的模板進(jìn)行編寫(xiě),并采用測試方案和測試報告結合的方式,最后將測試結果的分析追加到測試方案中。測試方案應包括以下的主要內容:
被測特性的分析,即對整個(gè)測試的對象做個(gè)簡(jiǎn)要而精準的分析說(shuō)明;如測試的是一個(gè)程序,則應說(shuō)明該程序的主要功能和特征;
采用的集成策略,如自頂向下或自底向上的集成策略,并說(shuō)明采用此種策略的原因和理由;
測試對象的詳細描述和設計測試用例,說(shuō)明設計的思路。這里的對象就是具體的測試內容,如兩模塊之間的的接口;
測試結果的分析,測試完成后,根據測試中發(fā)現的問(wèn)題,應對每個(gè)測試對象的結果進(jìn)行分析和說(shuō)明。并在最后說(shuō)明整個(gè)測試情況,發(fā)現的缺陷數量,各種等級缺陷的分布情況,以及缺陷清單。
測試的實(shí)施包括兩個(gè)部分的內容;
編寫(xiě)測試驅動(dòng)和樁程序;
根據設計的測試用例進(jìn)行測試。
在測試過(guò)程中,根據集成策略的不同,需要編寫(xiě)測試驅動(dòng)程序或樁程序。將未經(jīng)測試的但需要調用的模塊用樁程序代替;將未經(jīng)測試但需要使用的上級模塊用驅動(dòng)程代替。對已經(jīng)通過(guò)了測試的模塊,則可以直接使用原程序。
測試中應該注意對測試驅動(dòng)和樁的保存,以便后期進(jìn)行回歸測試。因此在編寫(xiě)的時(shí)候就考慮該需求;并且要有一定的可維護性,以便規格變更時(shí),進(jìn)行簡(jiǎn)單修改即可應用到測試。
測試驅動(dòng)和樁程序編寫(xiě)好后,就可以根據測試用例設置測試數據,對測試的模塊接口等進(jìn)行測試和確認。并將發(fā)現的所有軟件缺陷錄入到CQ缺陷庫,并通知相應的開(kāi)發(fā)人員進(jìn)行修改。
原文轉自:http://www.uml.org.cn/Test/201202024.asp