符合ISO26262標準的軟體測試解決方案

2021-08-10 15:49:59 字數 4683 閱讀 2895

隨著汽車行業的迅速發展,汽車電子電器e/e系統在汽車中的作用不斷提高,ecu開發所占用的時間和成本也越來越高。與此同時,越來越多的電子控制系統(例如車身穩定控制系統esp,防抱死制動系統abs,自適應前照明系統afs等)具有與安全相關的功能,因此對ecu的安全要求也越來越高。為了減少產品的開發時間和成本,降低由於安全問題而導致的維護甚至召回的風險,越來越多的整車廠和**商開始重視汽車領域的功能安全問題,ecu軟體功能安全的問題也成為汽車行業迫切需要解決的問題,車輛功能安全標準iso 26262就在這樣的環境和需求下應運而生,並於2023年11月正式發布第一版本,該標準是當前汽車業中最流行、最複雜、也是最重要的乙份標準。

iso 26262的目標是通過避免汽車e/e 系統故障行為可能導致的危害來提高e/e系統的功能安全。iso 26262採用車輛安全完整性等級(asil)來判斷系統的功能安全程度,asil由asil a(最低)、asil b、asil c及asil d(最高)四個等級組成,asil等級越高表示系統的功能安全評估越嚴格,相應的表示系統正確執行安全功能,或者說的避免該功能出錯的概率越高,即系統的安全可靠性越高。

iso 26262標準的組成架構由十個規範和資訊指導檔案組成,其中iso 26262—4/5/6闡述的是系統級/硬體級/軟體級的產品開發,使用巢狀的v模型定義了每個開發階段的過程以及相應的工作產品。本解決方案主要闡明了在軟體級產品開發階段如何去理解iso 26262的要求,並且指出了在實際的軟體開發過程中如何結合iso 26262的軟體測試生命週期,通過包括軟體測試工作的執行以及過程控制等方面來確保ecu軟體質量滿足iso 26262軟體級功能安全相應等級的要求。

基於v模式的iso26262軟體測試生命週期

如圖所示,基於v模式的iso 26262-6軟體測試生命週期可以劃分為五個階段:

靜態分析需求和功能需求:,這部分內容是以後設計和測試的基礎;

架構驗證:在軟體架構設計階段,我們可以使用人工分析的方式來驗證和測試軟體架構層的內容,但是有條件的話最好使用合適的架構設計工具,在設計的過程中同時進行架構驗證;

靜態測試:在軟體單元設計和實現階段同時進行靜態測試,可以使用開發輔助工具來進行靜態測試,這樣不必因為靜態測試的活動而改變開發流程。

動態測試:在軟體單元測試階段以及軟體整合和測試階段,使用合適的動態測試工具進行動態單元和整合測試,

功能驗證:在軟體安全需求驗證階段,要根據iso 26262-6的要求進行功能驗證,包括進行ecu網路環境測試和實車測試,必要的時候進行hil測試。

因為在靜態分析需求中所需要滿足的方法基本上都是屬於靜態測試的範疇的,因此我們以asil a為例,將軟體測試內容分為靜態測試、動態測試和功能驗證三部分(注:架構驗證暫時未包含在內),見下表。

表中所列舉的靜態測試內容裡面要求採取多種的測試方法,例如『低複雜度的強制要求』一般需要通過滿足一定的度量指標來實現,度量指標包括圈複雜度、巢狀深度等等,而『使用語言的子集』在汽車行業一般選擇misra-c,通過強制使用編碼規範來排除未定義行為或者實現定義行為等危險用法,除此之外靜態測試還要求一些其他的測試方法,例如如果要滿足更高的安全完整性等級的話,靜態測試內容還需要包括執行時錯誤檢測等,一般需要使用可靠性測試性的測試。

asil a所要求的動態測試要求能夠基於需求分析和設計測試用例,因此需要在開發過程中提供對需求管理的支援,同時要求能夠針對函式或模組提供覆蓋度分析等。如果是更高等級的asil的話可能還需要進行不同環境的測試,例如模型在環測試(mil)和軟體在環測試(sil),並在必要的情況下進行mil和sil的對比測試。

軟體安全需求的測試環境需要根據asil等級來進行選取,並且至少要在乙個以上不同環境內執行測試。asil a所要求的ecu網路測試包括了網路中各ecu之間的相互作用,目的是確保ecu之間沒有引起功能故障的相互干擾,而實車測試則是在真正的ecu軟體執行環境中進行測試的方式,根據功能安全需求規範來進行,可以最直觀地反映出ecu軟體是否能夠滿足定義的功能安全需求。當然在必要的時候還需要進行硬體在環測試(hil),通過**控制系統中感測器和執行器的硬體(hardware)電氣特性,為嵌入式控制器構建起乙個控制迴路 (loop),從而可以方便的在其中模擬被控物件的工作環境,對ecu的演算法進行功能驗證和測試。

針對前面劃分的iso 26262所關注的靜態測試、動態測試和功能驗證的要求,下面我們就來看一下解決方案中如何來滿足這些需求。

符合iso26262標準的靜態測試

在靜態測試中,靜態分析主要包括規則檢測和質量度量;可靠性測試主要進行執行時錯誤的檢測。

上面提到asil ,因此都屬於靜態分析的範疇,雖然這些需求也可以通過人工檢查的方式實現,但乙個好的靜態分析工具幾乎可以自動化地執行表1中所有的要求,通過靜態分析工具來幫助我們檢查和滿足這些規定可以明顯地幫助組織更有效率地實現iso 26262靜態分析的相關需求。

針對靜態分析的需求,我們提供dac這樣乙個工具,它的主要功能包括:可以自動化地地執行c**及彙編**的靜態分析,支援包括misra-c1998和2004的規則檢測;提供專案、檔案和函式質量度量;

提供方便快捷的**結構生成,高亮顯示**結構並生成報告文件等。

在靜態測試中,除了規則檢測和質量度量以外,還有一類錯誤我們稱之為執行時錯誤,例如陣列越界、標量溢位等。執行時錯誤顧名思義是程式執行的時候才會出現的錯誤,針對這樣的錯誤,使用傳統的測試方式只有在動態地執行測試用例的時候才有可能發現,但是現在的測試工具可以使用先進的**分析技術,不需要真正去執行源**,而是使用數學方法分析源**,發現**中在執行的時候可能會出現錯誤的地方,從而實現通過靜態測試的方式來達到一定的動態測試的效果。因為執行時錯誤會直接影響的程式執行的可靠性,所以針對這類錯誤的測試我們也可以稱之為可靠性測試。

針對可靠性測試的需求,我們提供澳大利亞的乙個執行時錯誤監測工具goanna。其模型檢測技術可以對所有函式提供高效的路徑覆蓋,檢查超過90種執行時錯誤,包括空指標引用、危險的指標運算、未初始化/未使用變數、冗餘/不需要的**、除零、記憶體洩露、緩衝區溢位、釋放後使用、不一致的釋放、濫用的虛擬成員呼叫、算術錯誤、32/64位相容性等。

符合iso26262標準的軟體**sil測試

在準備和設計階段,大部分都是屬於靜態測試的工作,它在確認設計或實現的不足時非常高效,但它不能證明功能正確。而依iso 26262-6標準開發的軟體根據需達到的車輛安全完整性等級(asil)不同,還需要經過各種動態測試,動態測試可以驗證軟體功能,因此是對靜態測試的有效補充。

以前的動態測試大部分是通過人工的方式實現,但是由於動態測試巨大的工作量,以及測試用例難以重用,測試覆蓋率無法計算的困難,因此在測試解決方案中還是需要選擇合適的動態測試工具來執行軟體單元測試。又因為iso 26262對需求和測試有可追溯性的要求,所以最好測試工具可以和相關需求管理工具整合,例如能夠從需求管理工具中將需求匯入,再將測試用例和需求鏈結起來,並且實現資料的雙向同步。

針對軟體**sil測試,我們提供德國的**級動態測試工具tessy。它的基本功能包括:全自動地測試執行和評估;多種方式確定測試用例;基於需求的測試跟蹤;不需要使用者介入的回歸測試;**覆蓋率;自動生成測試報告等。

在tessy中,測試用例的設計不僅可以基於需求覆蓋來進行,包括進行需求管理、需求跟蹤、需求覆蓋度統計等,也可以基於**覆蓋進行測試用例設計,並且非常方便地達到mc/dc覆蓋的等級。

符合iso26262標準的mil測試

在汽車領域的嵌入式控制系統開發中,基於模型的開發(model-based development)的設計方法以其直觀、快速、高效等優勢已經得到廣泛的應用。但是由於系統的複雜性,建立起來的**模型也越來越複雜,根據自動生成**的測試結果再來改進模型的測試方式也變得越來越困難,並且根據iso 26262標準asil c和d的要求,必須對模型和對應的**分別進行單元測試並且比較結果,因此,如果是使用模型自動生成**的設計方式的話,我們需要在建立了**模型之後就對模型進行測試,在確保模型功能正確的基礎之上來自動生成**再進行**測試。

針對mil測試,我們提供德國的分時段測試工具tpt,實現對控制系統以及閉環控制系統模型的mil測試。tpt軟體由於首創地使用分時段測試(time partition testing),使得控制系統的軟體測試技術得以極大提公升;同時由於tpt軟體支援眾多業內主流的工具平台和測試環境,能夠更好地利用客戶已有的投資,實現各種異構環境下的自動化測試;針對matlab/simulink/stateflow以及targetlink,tpt專門設計了完美的介面構建功能模型,然後在tpt中建立測試用例模型,通過tpt的matlab介面保證測試的高效率執行。提供了全方位的支援進行模型測試。

同時,在tpt中可以滿足iso 26262基於功能設計測試用例的需求,包括分析建立場景、定義測試用例元件、確定場景組合、生成測試用例等。

符合iso26262標準的網路測試和hil測試

不論是autosar還是osek,都把網路作為整個軟體結構的基礎,因此對網路的驗證放在功能驗證之前進行,iso 26262也在最低功能安全等級asil a裡面就提出了網路環境測試的需求。

網路測試是功能測試的基礎,在上面有應用層的時候,在做應用層驗證之前,先進行網路驗證。

現在網路已經越來越複雜,can、lin,一般都有三四十個節點,汽車裡面有很多匯流排的環境,最底下是物理層(can-驅動),在can的物理層之上有很多應用層的協議棧,利用vector的hil測試系統——vt,再基於vector另乙個工具canoe的優勢可以很好的進行協議棧的**,實現網路測試的需求。

hil測試一般可以分為兩種情況,一是基於真實負載的測試,另一種是在極端情況下或者說在自動化環境下更常用的是實用方針負載進行測試。不論是真實負載還是**負載,最重要的一點就是構建自動化的**環境出來,vector的vt系統能夠提供模組化的測試介面裝置,為供電環境、匯流排介面、感測器激勵和**負載等提供相應的模組來搭建測試環境。canoe基於它先天的網路**的測試功能,再加上vt系統可以幫助我們簡化測試平台的搭建以及測試執行的過程,並將測試能力擴充套件到hil和功能測試。

你的簡歷是否符合這些標準

1 要仔細檢查已成文的個人簡歷,絕對不能出現錯別字 語法和標點符號方面的低階錯誤。最好讓文筆好的朋友幫你審查一遍,因為別人比你自己更容易檢查出錯誤。2 個人簡歷最好用a4標準影印紙列印,字型最好採用常用的宋體或楷體,盡量不要用花裡呼哨的藝術字型和彩色字,排版要簡潔明快,切忌標新立異,排的象廣告一樣。...

ISO9000標準的實施步驟

準備職能分工表 制定職能分工草案 與管理者代表初步討論 各部門負責人開會討論 最高管理者審定批准正式職能分工表。5 列出檔案清單 列出質量手冊框架 列出程式檔案清單 列出工作檔案類別 與各部門討 件清單 記錄歸納整理。培訓輔導階段 1 全員培訓 準備iso9000培訓教材。培訓內容 a.什麼是iso...

如何保證設計的玩具符合歐美標準

馮軍國 隨著我國加入wto,玩具出口量逐年遞增,出口歐 美市場的比重越來越大,但是,從cpsc玩具抽檢的資料顯示,抽檢不合格的玩具中,來自內地的佔大多數。另外,我檢測實驗室的資料也顯示,雖然近年來我國玩具行業的產品合格率在不斷提高,但一次就順利通過所有測試的情況還不算太多。特別是申請en50088的...