背景介紹
隨着汽車行業的迅速發展,汽車的復雜程度不斷增加,越來越多的汽車電子控制系統具有與安全相關的功能,因此對ECU的安全要求也越來越高。復雜的軟件功能,將會帶來大量的軟件風險問題,如何保證軟件的安全,保證軟件做正確的事情,已經成為汽車行業迫切需要解決的問題。
ISO 26262(道路車輛功能安全標准)是以IEC 61508(電氣/電子/可編程電子安全系統功能安全標准)為基礎,為滿足道路車輛上電子電氣系統的特定需求而編寫,發布於2011年。ISO 26262能夠在管理、開發(軟、硬件)、生產、運行、服務、報廢等階段,保證整個生命周期內的安全性。與此同時,ISO 26262也在不斷地完善和發展。2018年12月,第二版的ISO 26262也已經對外發布,覆蓋范圍也已經從3.5噸以下的乘用車擴展到所有的車型,包括商用車和摩托車。
GB/T 34590(道路車輛功能安全國家標准)修改采用ISO 26262,適用於道路車輛上由電子、電氣和軟件組件組成的安全相關系統在安全生命周期內的所有活動,發布於2017年。目前,功能安全在中國已經得到普遍認可,並逐步進入大規模使用階段。
本文旨在說明,如何使用TPT完成符合ISO 26262要求的基於模型設計(MBD,Model based Design)的測試。TPT可以支持主流的MBD開發工具Simulink、Targetlink、ASCET。
基於需求的測試
按照ISO 26262推薦的測試方法,基於需求的測試是ASIL-A到ASIL-D高度推薦的測試方法。並且在軟件測試階段,需要實現測試和需求的雙向追溯。
TPT-Requirement能夠通過簡單的操作完成需求、測試用例、測試評估之間的追溯,並能夠在報告中體現。
目前TPT-Requirement支持IBM DOORS、Polarion、EXCEL等需求工具。
圖1 需求-測試用例鏈接關系
MiL測試
針對ISO 26262和MBD開發的流程,首先需要完成模型測試。TPT-MATLAB Platform、TPT-ASCET Platform可以通過加載被測模型,自動讀取模型的接口和參數,自動生成模型測試環境。
測試用例生成
測試環境搭建完成之后,需要設計測試用例來對模型功能進行測試。ISO 26262推薦了下圖2所示的測試用例生成方法。用戶需要根據不同的ASIL等級,來明確需要采用的測試用例生成方法。
針對1b基於等價類測試用例生成和1c基於邊界值測試用例生成,TPT提供自動化工具箱,可以根據用戶設定,自動生成測試用例。
針對1d基於猜錯的測試用例,需要結合企業的測試積累和工程師的測試經驗,具體情況具體分析,編寫測試用例。
圖2 ISO26262測試用例生成方法
針對1a基於需求的測試用例生成方法是目前最常用也是最重要的測試用例生成方法。TPT提供了基於圖形化的測試用例搭建方法,用以幫助用戶實現復雜的測試場景,同時,也方便測試工程師之間互相評審測試用例。
圖3 圖形化測試用例
便捷的測試評估
在測試用例搭建完成之后,需要添加評估條件來對測試結果進行評估,TPT提供了GUI、python-script、m-script等手段來降低測試評估的難度,實現復雜測試要求下的評估,實現測試過程的自動化。
圖4 測試評估界面
可自定義測試報告
TPT生成的報告中,包括了整個測試過程的所有信息,例如測試結果、覆蓋度報告、需求報告等。同時,TPT提供可自定義的測試報告,用戶可以將測試數據、圖片、測試用例說明、測試數據曲線顯示在測試報告之中,滿足項目的實際需求。
圖5 測試報告概覽
覆蓋度
需求覆蓋度
在功能測試中,往往需要根據功能需求來設計測試用例。TPT提供了Requirement Coverage Report,涵蓋需求的覆蓋情況以及每條需求的測試結果。在測試過程中,需要保證需求覆蓋度為100%。
圖6 測試需求報告
結構覆蓋度
在ISO 26262中,提到了結構覆蓋度的概念,並通過覆蓋度來評定測試完成度和未測試的功能。針對模型測試,在ISO 26262中列舉了如下三種結構覆蓋度標准,不同的ASIL等級對覆蓋度有不同的要求,ASIL-C、ASIL-D高度推薦MC/DC覆蓋度標准。
- Statement coverage
- Branch coverage
- MC/DC coverage
在TPT-MATLAB Platform可以統計測試用例所能達到的覆蓋度,借助生成的報告,可以直觀地發現未覆蓋的路徑,從而可以補充測試用例,來提升覆蓋度指標。
針對模型的結構覆蓋度,TPT提供TASMO工具箱,能夠分析模型結構,自動生成結構化的測試用例,來測試模型是否存在不可達分支,幫助開發人員在早期發現問題。
Back-to-Back Testing
因為軟件在不同的運行環境當中,會存在因為運行環境或者數據類型定義而引起的軟件運行錯誤。因此,ISO 26262羅列了如下的幾種不同測試階段:
MiL ➔ SiL ➔ PiL ➔ HiL
ISO 26262高度推薦在ASIL-C、ASIL-D,采用Back-to-Back測試。
- 針對SiL測試,TPT可以調用Simulink來根據客戶配置生成代碼,然后將其封裝成dll文件,進行測試。運行時,首先運行MiL階段的測試用例,記錄測試結果,再運行SiL階段的測試用例,將SiL的執行結果與MiL階段進行對比。
圖7 背靠背測試評估對比
- 針對PiL測試,TPT目前支持Lauterbach和PLS UDE兩款調試器,可以對軟件的執行時間和資源占用情況進行測試。
- 針對HiL測試,TPT支持目前主流的HiL平台,比如dSPACE、ETAS、Speedgoat、NI Veristand、Concurrent等平台。
Tool Qualification
ISO 26262-8指定了支持過程的需求,包括配置管理、版本管理、報告等,TPT可以通過對於SVN的支持和自身的管理功能,來幫助實現如上要求。
這一部分也規定了需要對項目使用工具進行置信度等級評定。這里需要強調的是,用戶需要結合自己的具體項目來對工具的置信度等級進行評定,而非軟件提供商。
TPT提供了Qualification Kit,里面包括TPT典型使用,驗證方法,置信度等級的確認方法等。目前,TPT通過了TÜV 的認證,可以滿足ASIL A到ASIL-D等級對軟件的測試要求。
正如上文所述,TPT的使用者需要在具體的項目中來確定工具的置信度等級,鑒於TPT強大的功能,典型的使用方法僅僅是TPT部分功能。如果用戶的使用超出了常規使用,PikeTec也會提供額外的支持來幫助用戶確定實際項目的置信度等級,協助出具Qualification報告。
圖8 項目認證流程
目前,已經有全球領先的汽車整車廠和零部件供應商,利用TPT Qualification Kit完成了項目的ISO 26262認證工作。
圖9 TPT Qualification Kit客戶
關於PikeTec
PikeTec公司是全球知名的基於模型的嵌入式系統測試工具TPT的軟件供應商,總部位於德國柏林,其創始人均在戴姆勒公司擁有十多年的軟件測試經驗。TPT產品曾被評為2005年戴姆勒最佳創新軟件,並在戴姆勒、大眾、奧迪、保時捷、通用等汽車整車廠及多家零部件企業(博世、大陸、海拉等)中得到廣泛應用,如戴姆勒的多個車型的混合動力汽車的動力總成、電池管理控制器的測試,博世的汽油機和柴油機控制系統測試等。
北匯信息作為PikeTec的中國合作伙伴,將幫助中國客戶提升嵌入式控制系統的開發效率。
參考文獻
[1] [ISO 26262] ISO 26262:2011-11: Road vehicles - Functional safety. International Standard, Part 1-9, 15.11.2011
[2] [TPT Qualification] TPT - Qualification in accordance with ISO 26262, Analysis and Qualification measures. Version 1.6, PikeTec, March 2017