集成測試
什么是集成測試
就是將部分代碼集成一塊進行測試
集成測試關注的重點
-
單元間的接口:1.代碼的相互調用
2.消息接口
-
集成后的功能:不同模塊不同功能是否相互影響 ,觀察部分代碼集成后功能實現是否正確,內部調用是否正確
接口:(例如,函數接口:將一個數據輸入函數,返回一個結果,如果結果於預期結果一直就通過(單元測試的測試內容))
集成測試的層次
具體怎么集成還是要根據具體情況來看;
集成測試策略的主要模式
- 大爆炸集成 **
- 自頂向下集成 **
- 自底向上集成 **
- 三明治集成 **
- 基干集成
- 分層集成
- 基於功能的集成
- 基於消息的集成
- 基於進度的集成
- 基於風險的集成
大爆炸集成方式
在這種集成方式中,首先對每個模塊分別進行單元測試,然后再把所有單元組裝在一起進行測試, 最終得到要求的軟件系統
大爆炸集成方式的優點:
- 大爆炸集成可以迅速完成集成測試,井且只要極少數的驅動和樁模塊設計。它需要的測試用例也是最少的;
- 該方法比較簡單;
- 多個測試人員可以並行工作,對人力,物力資源利用率較高
大爆炸集成方式的缺點:
- 這種一次性組裝 方式試圖在輔助模塊的協助下, 在模塊單元測試的基礎上,將所測模塊連接起來進行測試。但是由於程序中不可避免地存在模塊間接口、全局數據結構等方面的問題,所以一次試運行成功的可能性並不很大;
- 在發現錯誤的時候,其問題定位和修改都比較困難;
大爆炸集成方式的適用范圍
- 一個維護型項目(或功能增強型項目),其以前的產品已經很穩定,並且新增的項目只有少數幾個組件被增加或修改;
- 被測系統比較小,並且它的每個函數都經過了充分的單元測試。
自頂向下集成策略
深度優先集成策略
給A加一個驅動調用A,先給A加一個B,其他的虛擬數據,然后才給B加入E(替換S4),以此類推。。觀察個個單元的功能是否正常
深度優先先保證一條流程先走下來
廣度優先集成測試
先保證同一級的單元先集成
優化后的廣度優先:去掉1,2,4,測完3,然后測5
自頂向下集成策略的優點
- 自頂向下的集成方式在測試過程中較早地驗證了主要的控制和判斷點;如果選用按深度方向組裝的方式,可以首先實現和驗證個完整的軟件功能;
- 功能可行性較早得到證實,還能夠給開發者和用戶帶來成功的信心;
- 最多只需一個驅動,減少了驅動器開發的費用;
- 支持故障隔離。
自頂向下集成策略的缺點
- 樁的開發和維護是本策略的最大成本;
- 底層組件行為的驗證被推遲了;
- 隨着底層組件的不斷增加,整個系統越來越復雜,導致底層組件的測試不充分,尤其是那些被重用的組件。
驅動比樁好寫,所以一般很少用自頂向下集成
自頂向下集成策略的的范圍
- 產品控制結構比較清晰和穩定;
- 產品的高層接口變化比較小;
- 產品的底層接口未定義或經常可能被修改;
- 產品的控制組件具有較大的技術風險,需要盡早被驗證;
自底向上集成測試策略
- 自底向上的集成方式是從程序結構的最底層的組件開始組裝和測試;
- 組件是自底向上進行組裝,對於一個給定層次的組件,它的子組件(包括子組件的所有下屬組件)已經組裝並測試完成,所以不再需要樁。
自底向上集成策略的優點
- 允許對底層組件行為的早期驗證。可以在任何一一個葉子節點已經就緒的情況下進行集成測試;
- 在工作的最初可能會並行進行集成,在這一點上比使用自頂向下的策略效率高;
- 減少了樁的工作量,畢竟在集成測試中,樁的工作量遠比驅動的工作量要大得多。但是為了模擬-些中斷或異常,可能還是需要設計定的樁;
- 該方法也支持故障隔離。
自底向上集成策略的缺點
- 驅動的開發工作量也是很龐大的;
- 對高層的驗證被推遲到了最后,設計上的錯誤不能被及時發現,尤其對於那些控制結構在整個體系中非常關鍵的產品。
自底向上集成策略的使用范圍
- 底層接口比較穩定、變動較少的產品;
- 高層接口變化比較頻繁的產品;
- 底層組件較早被完成的產品。
三明治集成策略
相當於將自底向上和自頂向下結合起來
- 三明治集成就是這樣一種方法, 它把系統划分成三層,中間一層為目標層。
- 測試的時候,對目標層上面的一層使用由頂向下的集成策略,對目標層下面的一層使用自底向上的集成策略,最后測試在目標層會合。
優點
- 集合了自頂向下和自底向上兩種策略的優點
缺點
- 中間層在被集成前測試不充分
適用范圍
- 大部分軟件開發項目都可以使用這種集成策略
分成上中下三成:上層是前端,下層是后端,中間接口。上層一般用自頂向下,針對下層用自底向上,上中下用大爆炸集成。