醫療器材軟體測試解決方案 (IEC 62304)
在醫療器材的世界,IEC 62304 與 FDA 只認一件事:你能不能「證明」這些程式碼已經測夠了。每一行有沒有測到?靜態分析乾不乾淨?覆蓋率是否湊得齊?手動測試不僅跟不上開發速度,散落各處的證據更會讓稽核卡關。歐特莫夫以 Vector 合作夥伴的身分,協助客戶導入一整套醫療軟體測試工具鏈——從靜態分析、單元測試、系統測試,到品質儀表板,讓 IEC 62304 所要求的驗證證據能夠一條龍、可追溯地產生。
一條龍產生證據的 IEC 62304 醫療軟體測試工具鏈
這條鏈要解決的核心問題,是「IEC 62304 與 FDA 只認一件事——你能不能證明這些程式碼已經測夠了」。手動測試跟不上開發速度,散落各處的證據還會讓稽核卡關。做法是把靜態分析、單元測試、系統測試到品質儀表板串成一條龍,讓要求的驗證證據可追溯地自動產生。
C/C++ 靜態分析,在執行前就揪出緩衝溢位、空指標、未初始化等致命缺陷,強化 MISRA、CWE、CERT C 合規,且可全程本機離線運行。
嵌入式軟體單元測試,自動建立測試框架、環境與樁函式,量測 Statement、Branch 到最嚴格的 MC/DC 覆蓋率,並以控制流圖呈現每一條邏輯路徑。
VectorCAST/QA
把覆蓋率量測延伸到系統層級,單元覆蓋率由 VectorCAST/C++ 負責、系統覆蓋率由 QA 補齊,兩層一起達成完整證據。
Squore
軟體品質儀表板,彙整所有品質與覆蓋率指標,自動證明程式碼符合 IEC 62304,讓品質狀態一眼看懂。
- 每一關的驗證證據可追溯地自動產生,稽核時證明得出「測夠了」
- 靜態分析在執行前就揪出緩衝溢位、空指標等致命缺陷
- 單元到系統兩層覆蓋率一起補齊,MC/DC 證據不再靠手工湊
- 工具全程可在本機離線運行,滿足醫療軟體對資料安全的要求
為什麼這樣架:技術判斷與往前一步
IEC 62304 的軟體安全分級
IEC 62304 依「軟體失效可能造成的傷害」把醫療器材軟體分為 Class A、B、C 三級。等級愈高,標準要求完成的流程活動愈完整——Class B 起需要軟體單元驗證,Class C 還要求單元層級的詳細設計與更嚴格的追溯。分級決定了整個專案要投入多少驗證工作,因此必須在開發計畫階段就先確定。
🔍 點圖可放大看清楚
值得注意的是,IEC 62304 規定的是「必須完成哪些流程活動」,並未直接指定結構覆蓋率的數字門檻。實務上,Class B 常以語句與分支覆蓋率作為單元驗證證據,Class C 再加上 MC/DC;具體門檻由製造商在軟體開發計畫中定義,並在稽核時說明採用該門檻的理由。歐特莫夫會協助客戶把這段判斷寫成可辯護的文件。
一條龍的 IEC 62304 驗證證據鏈
第一關:靜態分析 (PC-lint Plus)
在執行前先揪出缺陷與不合規寫法,建立乾淨的程式碼基礎。
第二關:單元測試 (VectorCAST/C++)
自動化單元測試與 MC/DC 覆蓋率量測,補齊每一條邏輯路徑的證據。
第三關:系統測試 (VectorCAST/QA)
把覆蓋率量測延伸到系統層級,單元與系統兩層一起補齊。
第四關:品質儀表板 (Squore)
收攏所有指標,自動彙整成可供稽核的 IEC 62304 合規證據。
歐特莫夫的技術服務流程
前面談的是驗證證據鏈長什麼樣,這裡談專案怎麼推進。四個階段各有明確產出,讓證據隨開發累積而不是最後補。
安全分級與範圍界定
依 IEC 62304 的軟體安全分級確認等級,據此決定流程活動要做到什麼深度,並界定既有軟體(SOUP)的識別與處理方式。分級決定工作量,這一步不能跳。
流程與工具落地
建立符合分級要求的開發與驗證流程,把靜態分析與單元測試接進實際的開發節奏。工具要能在日常提交時就跑起來,不然證據永遠是事後補的。
驗證執行與缺陷收斂
依各道關卡執行驗證,並追蹤缺陷到關閉。覆蓋率不足的部分補測試案例;風險控制措施要能對應到具體的驗證項目,而不只是寫在文件裡。
證據彙整與查驗準備
產出可追溯的驗證證據與品質指標,整理成查驗時能直接提交的文件包。每一項要求都能指到對應的執行紀錄,是這一步的驗收條件。
常見問題
IEC 62304 有規定覆蓋率要做到幾 % 嗎?
沒有。IEC 62304 規定的是「必須完成哪些流程活動」,並未直接指定結構覆蓋率的數字門檻。實務上 Class B 常以語句與分支覆蓋率為單元驗證證據,Class C 再加上 MC/DC;具體門檻由製造商在軟體開發計畫中定義,並在稽核時說明理由。歐特莫夫協助把這段判斷寫成可辯護的文件。
軟體安全分級(Class A/B/C)怎麼決定工作量?
IEC 62304 依「軟體失效可能造成的傷害」分三級,等級愈高要完成的流程活動愈完整——Class B 起需要軟體單元驗證,Class C 還要求單元層級的詳細設計與更嚴格追溯。分級決定整個專案的驗證投入,必須在開發計畫階段就先確定。
為什麼工具要能離線運行?
醫療軟體對資料安全敏感,原始碼往往不能上傳外部。PC-lint Plus 與 VectorCAST 可全程在本機離線運行,讓靜態分析與單元測試在不外流程式碼的前提下完成,符合資料安全要求。
稽核時證據散落各處怎麼辦?
用 Squore 品質儀表板收攏所有品質與覆蓋率指標,把靜態分析、單元與系統測試的結果自動彙整成可供稽核的 IEC 62304 合規證據,每一項要求都能指到對應的執行紀錄。