等效性測試

等效性測試

當今的汽車或航空用的電子控制單元(ECU)中,越來越多的控制器使用基於模型的開發方法,其特點為可通過仿真快速測試和自動代碼生成以及自動測試。其開發步驟大致如下: 1》書寫需求,通過BTC EmbeddedSpecifier進行需求的形式化(讓計算機理解需求) 2》基於需求,構建Simulink模型 3》使用TargetLink和EmbeddedValidator通過窮舉法進行靜態驗證模型是否滿足需求 4》使用TargetLink生成代碼,使用EmbeddedTester做全自動等效性測試 5》把驗證後的代碼下載到ECU中,做硬體在環測試(HIL),使用RTT-Observer進行自動驗證,看系統是否滿足需求。 6》ECU的真車測試及參數標定 7》ECU軟體和硬體結合量產 本文主要集中介紹等效性測試的環節。

概要:

在遵循ISO26262的流程進行基於模型的開發(ModelBasedDevelopment)時,ISO26262的9.4.3章和10.4.3章推薦執行等效性測試(Back-to-backtesting)來比較模型(Simulink/TargetLink模型)和由模型自動生成的實現(C代碼)。等效性測試的目標是在給予同樣的輸入的情況下,判斷實現(C代碼)和模型是否有同樣的輸出。

正文:

為什麼要做等效性測試:

1》模型和C代碼為滿足需求的不同的軟體表現形式,是否一致需要做等效性測試。
2》代碼生成器(例:TargetLink)為了生成高效的C代碼,對C代碼進行最佳化,需要對最佳化結果進行確認。
3》定點小數點代碼時,需要比較定點小數點C代碼和模型(浮動小數點計算)的輸出誤差。
4》對於C語言一些特有的缺陷進行測試,比如除數為零。
5》滿足ISO26262的要求。

等效性測試的基本要求:

1》模型本身必須是已經通過基於需求的測試,即模型本身是正確的,其輸出可作為參考值用於對實現(C代碼)的比較。
2》對於所有的輸入測試用例,實現(C代碼)和模型的輸出差值應該在允許誤差範圍內。
3》測試用例需要滿足實現(C代碼)高水平的覆蓋率(ISO26262推薦覆蓋率量化種類:MC/DC)。

等效性測試的難點:

1》如何高水平的驗證模型是滿足需求的,因為只有模型滿足需求,模型才是可用於代碼生成和隨後的等效性測試。
2》如何製作測試用例,來達到ISO26262所要求的MC/DC級別100%的覆蓋率。
3》測試環境該如何搭建,對各個測試用例輸出結果的比較用人工來做將非常耗時,並容易出錯。

目前的解決方案:

歐美和日本主要汽車和飛機控制器開發現場所使用的解決方案是使用專業測試工具來輔助測試完成測試目標。
基於需求的測試方法簡述:
一般使用BTCEmbeddedPlatform的EmbeddedSpecifier和EmbeddedValidator功能來自動測試並證明模型(例:TargetLink)是否滿足需求。該工具使用簡潔易懂的形式語言技術(ModelChecking),可對模型通過窮舉法進行全自動驗證。如果滿足需求,接下來就是代碼自動生成和等效性測試。

以下為基於需求測試示意圖:
方法一:使用窮舉法對模型進行靜態解析看是否滿足需求,不滿足需求時自動生成調試模型。

缺點是對複雜模型解析能力受限,這時需要用方法二即使用仿真進行自動測試

使用Model Checking技術對模型進行靜態驗證,看是否在任何時間內,任何條件下都滿足需求。使用Model Checking技術對模型進行靜態驗證,看是否在任何時間內,任何條件下都滿足需求。不滿足需求的情況下自動生成調試模型,用於調試。

方法二:使用仿真進行自動測試|
把需求形式化後,能自動生成基於需求的測試用例和需求觀察器,需求觀察器可自動並聯到測試對象中,完成自動測試並輸出報告。

對複雜模型,使用仿真的手法驗證。把需求進行形式化後,能自動生成滿足需求的測試用例和需求觀察器,通過自動測試可得到測試報告。對複雜模型,使用仿真的手法驗證。把需求進行形式化後,能自動生成滿足需求的測試用例和需求觀察器,通過自動測試可得到測試報告。

等效性測試簡述:
使用EmbeddedTester自動生成滿足C代碼MC/DC級別100%覆蓋率的測試用例,然後自動進行等效性比較(Back-to-back)並生成測試報告。由於EmbeddedTester可以設定比較誤差值,因此測試擔當者的工作可以僅看測試報告就可以判定該實現(C代碼)是否和模型等效。
以下為Back-to-back的示意圖:
第一步:逆向解析C代碼,自動生成滿足MC/DC級別100%覆蓋率的測試用例
對自動生成的C代碼進行逆向解析,自動生成滿足MC/DC100%覆蓋率的測試用例對自動生成的C代碼進行逆向解析,自動生成滿足MC/DC100%覆蓋率的測試用例

第二步:使用自動測試用例,自動進行Back-to-back測試
使用自動測試用例,自動進行Back-to-back測試,並比較結果,輸出測試報告使用自動測試用例,自動進行Back-to-back測試,並比較結果,輸出測試報告

總結:

我國的控制器開發雖然起步較晚,但有後發優勢,有很多成熟的既有技術可以快速套用,可以避免已開發國家走過的一些技術彎路。更快更好的對標國際OEM的控制器開發水平,一個方法就是參考ISO26262並嚴格定義開發流程,做好開發過程的各個階段的評價,假以時日,中國的自主開發的品質和性能必將上一個台階,實現質的轉變。

熱門詞條

聯絡我們