一、集成測試概念
集成(Integration):把多個單元組合起來形成更大的單元;
集成測試(Integration Testing):在假定各個軟件單元已經通過了單元測試的前提下,檢查各個軟件單元接口之間的協同工作是否正確;
二、模塊分析
1.集成測試的第一步,,也是最重要的工作之一;
2.2/8原則,測試中80%的錯誤可能源於20%的模塊;
3.一般將模塊分爲3個等級:高危模塊、一般模塊和地位模塊;
4.高危模塊應該優先測試;
三、模塊劃分的原則
1.本次測試希望測試哪個模塊;
2.把與該模塊最緊密的模塊聚集在一起;
3.再考慮劃分後的外圍模塊,並分析外圍模塊和被集成模塊之間的信息流是否容易模擬和控制;
四、集成測試和系統測試的區別
1.測試對象:集成:單元; 系統:系統;
2.測試時間:集成:開發過程; 系統:開發完成;
3.測試方法:集成:黑白結合(灰盒);系統:黑盒;
4.測試內容:集成:接口; 系統:需求;
5.測試目的:集成:接口錯誤; 系統:需求不一致;
6.測試角度:集成:開發者; 系統:用戶;
五、集成測試與開發的關係
集成測試與軟件測試開發過程中的概要設計階段相對應,軟件概要設計中關於整個系統的體系結構是集成測試用例輸入的基礎。
六、集成測試的層次與原則
1.層次:模塊內、模塊間、子系統內、子系統間、類內、類間;
2.原則
七、集成測試策略
1.非漸增式集成:先單獨再集合;(先單元測試再集成測試)
2.漸增式集成:在已測試的基礎上,不斷的+1+1+1;(單元測試和集成測試共同進行)
八、輔助模塊
1.驅動模塊(Driver):用以模擬待測模塊的上級模塊;
2.樁模塊(Stub):也稱存根程序。用以模擬待測模塊工作過程中所調用的模塊。樁模塊一般只進行很少的數據處理,例如打印入口和返回,以便於檢測模塊與其下級模塊的接口。
九、漸增方式
1.非漸增式集成只適用於規模較小的應用系統;
2.目前普遍採用漸增式集成方法;
3.漸增方式:自頂向下、自底向上和三明治集成。
十、自頂向下
使用深度優先的策略,或者使用寬度優先的策略。
步驟:
1.對主模塊進行測試,測試時用樁模塊代替所有直接附屬於主控模塊的模塊;
2.根據深度優先或寬度優先,每次用一個實際模塊代換一個樁模塊;
3.爲了保證加入模塊沒有引進新的錯誤,可能需要進行迴歸測試,即全部或部分地重複以前做過的測試;
優點:
1.可以及早發現主控模塊的問題解決;
2.如果選擇深度優先,可以在早期實現並驗證一個完整的功能,增強開發人員和用戶雙方的信心;
缺點:
樁模塊代替了低層次的實際模塊,沒有重要的數據自下往上流,可能遇到邏輯的問題。
十一、自底向上
從原子模塊開始組裝和測試;不需要樁模塊;
步驟:
1.把低層模塊組合成實現某個特定的軟件子功能的族;
2.需要寫一個驅動程序,用於測試的控制程序,協調測試數據的輸入和輸出;
3.對由模塊組成的子功能族進行測試;
4.去掉驅動測試,沿軟件結構自下向上移動,把子功能族組合起來形成更大的子功能族;
十二、三明治集成
特點:
1.混合增量式測試策略,綜合了自頂向下和自底向上兩種集成方法的優點;
2.樁模塊和驅動模塊的開發工作都比較小;
3.代價:一定程度上增加了定位缺陷的難度;
過程:
1.確定屆層;
2.對界層下的各層使用自底向上集成策略;
3.對界層上的各層使用自頂向下集成策略;
4.對界層所在層各模塊同相應的下層集成;
5.對系統進行整體測試;
十三、集成測試用例設計
1.爲系統運行設計用例;
2.爲正向集成測試設計用例;
3.爲逆向集成測試設計用例;
4.爲滿足特殊需求設計用例;
5.爲覆蓋設計用例;
十四、集成測試過程
計劃階段(集成測試計劃)、設計階段(集成測試方案)、實施階段、執行階段、評價階段。