單元 12 · SWE.5 軟體整合與整合測試

整合策略、相依性測試、介面測試

12.1 SWE.5 在做什麼

SWE.5 軟體整合與整合測試:把已驗證的單元依架構整合成子系統/完整軟體,並用整合測試證明元件間互動正確

與 SWE.4 的界線:SWE.4 測「單元自己對不對」,SWE.5 測「單元合起來對不對」——介面、呼叫順序、資料流、資源競爭。

12.2 整合策略

策略做法優點風險
Big-bang一次全部接錯難定位(不建議)
Bottom-up底層→上層介面早驗證上層邏輯晚驗
Top-down上層→底層(stub)流程早通底層風險晚見
Critical-path先合高風險/高 ASIL風險先驗需計畫細
車用常用:bottom-up + critical-path 混合——先整合高 ASIL 路徑(AEB 決策→致動),再接周邊。

12.3 整合測試用例設計

範例 IT
IT-021|來源 SWR-AEB-011/014|AEB 決策 + 安全狀態
  情境:正常運行中,雷達心跳停止(模擬)
  步驟:輸入停止的心跳 → 等 200ms
  期望:AEB 決策模組收到逾時事件 → 進入安全狀態
       (BRAKE_REQUEST 保持 OFF + 警示 ON)
  通過準則:狀態轉換 < 200ms;無殘留記憶體增長

12.4 與架構的對應

每輪整合要對應架構層(見單元 9):先驗驅動層→服務層→應用層,每層整合都以該層介面為測試面。

驅動層整合服務層整合應用層整合完整軟體

12.5 Worked Example:一週整合計畫

範例
Day1  驅動層:CAN + Watchdog 整合(frame 收發、心跳)
Day2  服務層:通訊 + 排程整合(資料不丟、優先權正確)
Day3  Critical path:TTC → AEB 決策 → 煞車命令(模擬致動)
Day4  加入警示與安全狀態模組
Day5  全模組整合 + 資源檢查(記憶體/CPU)
Day6  回歸:重跑 Day1-5 + 記錄整合測試報告

動手:為你的系統選一種整合策略,並寫出 3 個跨單元的整合測試用例。

12.6 深入原理:整合順序應由風險與介面決定

SWE.5 的失敗通常不是單元演算法錯,而是資料格式、初始化順序、週期、共享資源或錯誤狀態在連接後產生差異。因此整合計畫要先辨識高風險介面,再使用 stub、driver 或真實硬體控制變因。每一輪應保留可工作的基線,這樣失敗能定位到最近一次變更,而不是等全部模組接完才面對不可分解的問題。

整合面要驗證典型刺激
資料單位、格式、有效旗標零值、最大值、亂碼
時序週期、逾時、優先權延遲與 CPU 負載
狀態初始化、失效、復原斷線、重啟、重入

12.7 Worked Example:分層定位介面錯誤

範例
現象:AEB 整合測試中 TTC 顯示 1.1 s,但決策模組未煞車。
第一輪:以 stub 固定輸入,確認決策與致動器介面正常。
第二輪:接入雷達解析器,發現距離單位由 mm 被當成 m。
修正:在介面契約標示單位與範圍,加入轉換測試與診斷;
以同一基線重跑單元、整合與資格回歸,避免只修一層。

12.8 練習

  1. 為三個相鄰模組畫出資料流與錯誤流。
  2. 選一個介面,寫出正常、邊界、錯誤三個整合案例。
  3. 說明為什麼每輪整合都要建立可回復的基線。

12.9 交付物檢查清單

整合測試報告最好同時附上介面版本與模擬器設定。沒有這些資訊,下一次回歸可能只是「同名測試」而不是同一個測試。

12.10 實務判讀:整合失敗先查介面,不要先改演算法

當單元測試通過、整合測試失敗時,優先比較輸入輸出格式、初始化順序、資料有效旗標、週期與執行緒優先權。直接修改演算法可能掩蓋真正的介面契約錯誤,讓單元與系統行為逐漸分叉。每次修正都要指出它屬於介面、排程、資源或功能缺陷,並選擇對應的回歸範圍。

快速問法:能否用 stub 重現失敗?若可以,問題多半在單元契約;若不行,繼續檢查整合環境與時序。
看完這單元你應該能說出:
  • 選擇軟體整合策略(bottom-up/top-down)。
  • 設計整合測試用例(介面/相依性)。
  • 解釋 SWE.4 與 SWE.5 的界線。

延伸閱讀

12.A 進階真實情境 Worked Example

進階範例:從 CL1 到 CL2 的組織級變革管理
組織:Tier-1 供應商,200 人研發團隊,首次導入 ASPICE。
目標:2 年內從 CL1 升級到 CL2。

┌─ 組織現況診斷 ────────────────────────────────────────────┐
│ 優勢:                                                       │
│   • 技術能力強,產品品質穩定                                │
│   • 已有基礎的文件管理系統                                  │
│   • 管理層支持                                              │
│ 劣勢:                                                       │
│   • 文件化程度不足(口頭溝通為主)                          │
│   • 需求追溯性差(使用 Excel 管理)                        │
│   • 缺乏正式的評審(Review)機制                           │
│   • 變更管理隨意,無正式流程                               │
├─ 變革策略 ────────────────────────────────────────────────┤
│ Phase 1:意識提升(3 個月)                                │
│   • 全員 ASPICE 基礎培訓                                  │
│   • 管理層承諾書簽署                                      │
│   • 建立 ASPICE 專責團隊(3 人)                          │
│                                                           │
│ Phase 2:流程導入(6 個月)                                │
│   • 選擇 SWE.1 ~ SWE.5 為先導 Process Area               │
│   • 建立流程文件(Procedure + Template)                  │
│   • 導入需求管理工具(Jama / DOORS)                     │
│   • 建立正式的評審機制(Peer Review + Safety Review)     │
│                                                           │
│ Phase 3:試運行(3 個月)                                  │
│   • 選擇 1 個專案試行                                    │
│   • 收集回饋並調整流程                                   │
│   • 內部模擬評鑑                                         │
│                                                           │
│ Phase 4:正式評鑑(1 個月)                                │
│   • 聘請認證評鑑師                                       │
│   • 執行正式 CL2 評鑑                                    │
│   • 修正殘留問題                                         │
└────────────────────────────────────────────────────────────┘

關鍵成功因素:
  1. 管理層持續支持(不是一次性承諾)
  2. 流程與專案實務結合(不是額外文件工作)
  3. 工具導入降低人工作業負擔
  4. 內部 champion(推動者)的影響力

12.B 深入原理擴充

ISO 33020 定義了「過程能力等級」的遞進關係: CL0(Incomplete)→ CL1(Performed)→ CL2(Managed)→ CL3(Established)→ CL4(Predictable)→ CL5(Optimizing)。

關鍵概念:「Managed」(CL2)的核心特徵。 CL2 不僅要求過程「執行」(CL1),更要求過程「有管理地執行」——包含: ① 計畫與追蹤(Planning & Tracking)、② 評鑑(Evaluation)、③ 認同(Agreement)、 ④ 可追溯性(Traceability)。這是多數團隊從 CL1 升級到 CL2 的最大挑戰。

12.C 診斷式疑難排解表

症狀可能原因解決方案
團隊抵觸流程變更流程被視為「額外工作」而非「幫助」展示流程如何減少重工(Rework)和缺陷,量化收益
需求管理工具導入失敗工具太複雜,團隊不願學習選擇易用工具(如 Jama Connect),並提供充分培訓
內部模擬評鑑發現大量缺失流程文件與實際執行不一致調整流程文件以反映實際做法,而非紙上作業

12.D 進階挑戰題

  1. 為 200 人研發團隊設計 ASPICE CL2 導入計畫,涵蓋組織、流程、工具三個面向。
  2. 若團隊在試運行階段出現「為文件而文件」的現象,應如何處理?
  3. 比較「流程導入」與「敏捷開發」的衝突點,提出至少 3 個整合方案。