什么叫集成測試:集成測試的相關認識

發表于:2012-02-06來源:未知作者:zhaolixin007點擊數: 標簽:
什么叫集成測試:集成測試的相關認識,集成測試,也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求(如概要設計文檔)集成為子系統或系統,是單元測試的邏輯擴展。最簡單的形式是:兩個已經測試過的單元組合成一個組件,并測試它們之間的接口

 集成測試,也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求(如概要設計文檔)集成為子系統或系統,是單元測試的邏輯擴展。最簡單的形式是:兩個已經測試過的單元組合成一個組件,并測試它們之間的接口。

  集成測試中,我們主要關注的是以下內容:

  在把各個模塊連接起來時,穿越模塊接口的數據是否會丟失;

  各個子模塊組合起來,能否達到預期要求的功能;

  一個模塊的功能是否會對另一個模塊的功能產生不利的影響;

  全局數據結構是否有問題;

  單個模塊的誤差積累起來是否會被放大,從而達到不可接受的程度。

  在集成測試時,我們需要關注被測模塊的實際調用情況,并結合模塊之間的接口來進行測試。而無需過于關注其內部實現(內部實現已在單元測試驗證了)

  常見接口類型

  我們已經知道,集成測試關注的是模塊之間的接口??梢詫?ldquo;接口”作為切入點??v觀模塊之間的接口,我們可以歸納為以下幾種類型:

  通信協議:兩個模塊之間通信采用的是標準的或者自定義的協議;協議中即包含數據部分,又包含控制部分;而大部分實現將數據與控制通過一條鏈路來傳遞,往往通過不同的消息包進行分離;

  調用關系:模塊A調用模塊B,實際上是由模塊A向模塊B發出了一條控制指令,這里數據傳遞體現的不是很明顯,往往體現為參數與返回值;

  文件、數據庫、隊列、第三方中間件等:表現的主要是數據的傳遞;

  共享資源:比如共享一段“存儲區域”,其中涉及的關鍵資源主要是“鎖”了;這樣的兩個模塊在運行時往往分布到不同的進程或者線程中,表現為對資源的競爭,以及數據的共享。

  同步:一個模塊的運行需要另外一個模塊的觸發,雙方往往存在“信號”等通知機制,也可以理解為一種特殊的控制方式。

  集成測試思路

  明確了測試對象以后,就可以按照一般的測試方法設計和實施測試了??砂慈缦滤悸愤M行測試:

  找出系統中的各種接口,如需要傳遞哪些數據?存在哪些控制指令?如數據(協議包)中字段取值,指令參數變化等;

  將不同的控制指令等劃分等價類,找出每類的代表,就得到了測試數據,讓每類數據流與控制流均通過接口一次,從而實現接口測試的完全性;

  另外,也要考慮模塊的集成能否準確體現業務上的關聯?各個模塊是否具備其角色的全部屬性和接口?

  當然,集成測試不會太關心業務或者需求,那是系統測試的事了。但此時想想,往往能夠得到意外的收獲。

  測試方案是一個重要的活動,其包含了對測試對象的分析,采用的集成策略,以及設計的各種測試用例等。測試方案文檔應該按照公司規定的模板進行編寫,并采用測試方案和測試報告結合的方式,最后將測試結果的分析追加到測試方案中。測試方案應包括以下的主要內容:

  被測特性的分析,即對整個測試的對象做個簡要而精準的分析說明;如測試的是一個程序,則應說明該程序的主要功能和特征;

  采用的集成策略,如自頂向下或自底向上的集成策略,并說明采用此種策略的原因和理由;

  測試對象的詳細描述和設計測試用例,說明設計的思路。這里的對象就是具體的測試內容,如兩模塊之間的的接口;

  測試結果的分析,測試完成后,根據測試中發現的問題,應對每個測試對象的結果進行分析和說明。并在最后說明整個測試情況,發現的缺陷數量,各種等級缺陷的分布情況,以及缺陷清單。

  測試的實施包括兩個部分的內容;

  編寫測試驅動和樁程序;

  根據設計的測試用例進行測試。

  在測試過程中,根據集成策略的不同,需要編寫測試驅動程序或樁程序。將未經測試的但需要調用的模塊用樁程序代替;將未經測試但需要使用的上級模塊用驅動程代替。對已經通過了測試的模塊,則可以直接使用原程序。

  測試中應該注意對測試驅動和樁的保存,以便后期進行回歸測試。因此在編寫的時候就考慮該需求;并且要有一定的可維護性,以便規格變更時,進行簡單修改即可應用到測試。

  測試驅動和樁程序編寫好后,就可以根據測試用例設置測試數據,對測試的模塊接口等進行測試和確認。并將發現的所有軟件缺陷錄入到CQ缺陷庫,并通知相應的開發人員進行修改。

  如此重復直到完成所有模塊的測試。

  一般來說,都是考慮基于系統測試功能分解的集成測試,通過樹結構或文字的形式表示分解出的模塊功能圖。

  樹形圖表示一個擁有6個模塊的功能分解樹,集成的順序有多種選擇:從樹頂開始向下(自頂向下集成)、從樹底開始向上(自底向上集成)、自頂向下和自底向上兩種方式組合起來(三明治集成,或叫混合集成)。這些集成順序都是假設模塊已經通過單獨測試。

  自頂向下集成從主程序(樹根)開始。所有被主程序調用的下層模塊都作為“樁模塊”出現,樁模塊就是模擬被調用模塊的一次性代碼。一般來說,測試人員開發樁模塊,開發了主程序所需的所有樁模塊之后,就可以測試主程序,就像它是一個獨立模塊一樣,使用適當的黑盒測試白盒測試技術進行測試。

  上圖所示為一個系統的集成過程。方框都是用來代替對應模塊的樁程序,首先對主程序A進行測試,用三個樁程序代替其調用的三個模塊,然后逐步采用實際的模塊取代這些樁模塊。如果新加入的實際模塊調用其他的模塊,則也需要為其開發相應的樁模塊。如此反復,直到所有模塊都被集成。

  為了能夠準確地實施測試,應當讓樁程序正確而有效地模擬子模塊的功能和合理的接口,不能是只包含返回語句或只顯示該模塊已調用的信息,而不執行任何功能的啞樁程序。如果不能使樁程序正確地向上傳遞有用的信息,可以采用以下解決辦法:

  將很多測試推遲到樁程序用實際模塊替代了之后進行;

  進一步開發能模擬實際模塊功能的樁程序;

  自底向上集成和測試軟件

  自頂向下集成方式的缺點是需要建立樁程序。要使樁程序能夠模擬實際子模塊的功能十分困難,同時涉及復雜算法,真正輸入/輸出的模塊一般在底層,他們是最容易出問題的模塊,到測試和集成的后期才遇到這些模塊,一旦發現問題導致過多的回歸測試。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97