單元測試工具

fzm5298發表於2021-08-20

CoverageMaster winAMS : 適用於嵌入式目標機程式碼的單元測試 / 整合測試 工具

全面支援嵌入式微機!驗證嵌入式C/C++軟體 實施以模組為單位的自動化單元測試工具
不需要HookCode 直接使用目標機程式碼進行單元測試
聯合靜態解析工具[CasePlayer2],提供C0(語句),C1(判定),MC/DC覆蓋率報告,最佳化測試用例製作
已取得第三方認證機構TUVSUD對適用於汽車機能安全ISO26262軟體工具的認證

產品概要

[Coverage master winAMS] 是以嵌入式軟體的函式為單位,實施模組單元測試以及C0/C1/MCDC覆蓋率測試(coverage test)的嵌入式軟體自動化單元測試工具。目標機原始碼透過交叉編譯器生成目標機執行程式碼,透過跟實際處理器同樣的模擬處理器環境進行單元測試,不需要對執行程式碼做任何變動,使高信賴性的模組測試成為可能。在汽車控制軟體這樣的對安全性要求極高的領域,單元測試已經成為不可缺少的一部分。使用目標機程式碼進行單元測試也是為了符合汽車行業中ISO26262功能安全認證標準。

產品特長

全面支援嵌入式微機!驗證嵌入式C/C++軟體 實施以模組為單位的自動化單元測試工具

作為能夠檢驗出僅憑系統測試以及整體測試無法發現的[潛在錯誤]的檢測方法,[單元測試]在嵌入式開發領域受到廣泛重視。同時,單元測試也是汽車用軟體功能安全(ISO26262)領域中要求實施的認證專案之一。

[Coverage master winAMS]直接使用透過交叉編譯生成的目標機程式碼,在模擬處理器環境下進行單元測試。既能實現C語言程式的邏輯上的單元驗證,又能夠對嵌入式微機組裝為產品後可能發生的問題等進行具有高信賴度的白盒(white box)測試。

不需要HookCode 使直接使用目標機程式碼進行單元測試成為可能的業界唯一的工具

有些公司的單元測試工具往往採用在被測試物件的原始碼中追加測試用程式碼或者測試用驅動器的方法,導致測試時所用的程式碼與組裝為產品後的目標機用程式碼不同。雖然[理論上執行功能應該是相同的],但是從嵌入式開發的角度考慮,這樣就如同對交叉編譯所生成的經過最佳化處理的程式碼進行了加工,無法確保最終產品的質量。Coverage master winAMS是業界唯一的,具有[不需要對被測試物件做任何加工]實施單元測試功能的工具,特別是在安全性要求高的領域中得到很高的評價。

不需建立單元測試專用的環境,可以在開發用交叉編譯環境進行單元測試

Coverage master winAMS 不需要追加任何測試用驅動器或測試用程式碼,可以直接使用將組裝成產品的目的碼進行單元測試。單元測試能夠與軟體開發使用共同的交叉編譯環境,不再需要對測試資源進行專門管理,也不再需要建立其他專用環境。因此,既方便程式資源管理,又能夠縮短準備測試環境所需的時間。

符合汽車功能安全標準(ISO26262)[不做加工直接使用目標機程式碼實施單元測試]這一要求的最佳工具

ISO26262 是從IEC61508衍生出來的適用於汽車製造領域的功能安全標準。其中的Part.6-9[軟體程式單元測試]包括了關於軟體程式的構造覆蓋率測試以及有關的規定專案。根據汽車安全標準(ASIL),提出了測試語句覆蓋率(statement coverage),分支覆蓋率(branch coverage),MC/DC覆蓋率的推薦性事項。

其中的另一個推薦性事項是

[ 儘可能使單元測試的環境與目標環境相同]

的規定。如果在與目標環境不同的環境下進行單元測試,必須表明原始碼與目的碼的差別,以及目標環境和測試環境的差別。因此,對於那些使用與目標微機不同的電腦進行編譯和單元測試的其他公司的工具而言,這個要求很難滿足。 還有些公司的單元測試工具雖然包括交叉編譯環境及編譯功能,而且也能夠在與目標環境相同的環境下進行測試,但是所有的測試都需要插入測試用程式碼,進行再次編譯,因此測試也只能在與目標環境不同的環境下實施。

GAIO 提供的單元測試工具 Coverage master winAMS 具有

●採用全面支援嵌入式微機的微機化功能測試平臺環境
●不需要插入測試用程式碼直接使用目標機程式碼進行測試

的特徵,提供符合 ISO26262 標準要求的必須功能。 GAIO 提供的 Coverage master winAMS 是符合 ISO26262 標準 [ 直接使用整裝用程式碼實施單元測試 ] 這一要求的業界唯一的工具。

關於汽車機能安全 ISO26262 的對應以及認證的獲得

已取得第三方認證機構TUVSUD對適用於汽車機能安全ISO26262軟體工具的認證

2012 6 28 日,「 Coverage master winAMS / General 」測試工具獲得由德國 TUVSUD 第三方認證機構,在汽車機能安全規格的 ISO26262 軟體工具方面的認證,包括日本在內亞洲地區首次獲得該項認證。

透過此項認證,說明本公司的單元測試工具「 Coverage master winAMS / General 」,以及程式分析工具「 CasePlayer2 」,在靜態分析和單元測試領域,是符合所有安全度水準的工具,並由 TUVSUD 認證機構得到了保障。

ISO 26262 對於不同的開發用軟體工具在工具置信水平(TCL),都需要開發者提供開發軟體工具的認證書。此項認證適用於在工具認證當中,最為複雜的TCL3工具認證標準。因此,匯入本公司的單元測試工具之後,不需要對TCL的部分進行認證,進而可以縮減手續跟時間。

主要的單元測試功能

採用 SSTManager 管理單元測試 project

SSTManager Coverage master winAMS 的應用功能,用於管理單元測試 project ,製作測試資料( test data )。 從設定測試環境開始,到報告測試結果為止,均由微機化功能測試平臺(ISS)實施綜合管理。

採用通用便利的CSV檔案管理測試資料的輸入輸出

Coverage master winAMS 不需要插入測試用程式碼,直接使用目標機程式碼進行單元測試。採用通用便利的CSV檔案管理函式測試時使用的輸入輸出資料。測試結束後,輸出的測試結果和輸出的期待值也將以相同的格式顯示在CSV檔案之中。

C0/C1 覆蓋率報告的自動化製作功能(標準功能)

根據測試的輸入輸出資料自動報告相應原始碼的C0/C1測試覆蓋率結果。包括透過圖形(viewer)顯示測試資料,以及與其相應的被測試的原始碼路徑的功能,用於分析測試結果。

MC/DC 覆蓋率的自動化測試功能(選項功能)

作為選項功能提供MC/DC覆蓋率測試功能。C0/C1覆蓋率測試不需要加工即可直接使用目標機程式碼。然而,MC/DC覆蓋率測試對於複合式的條件式,需要自動插入HookCode將複合式的條件式分解,才能對各條件式進行測試。這樣就有可能導致測試用程式碼與目標機用程式碼的不同。為了驗證HookCode的妥當性,在MC/DC覆蓋率測試的同時,執行目標機程式碼,確認執行結果與期待值的一致性。

注:右圖舉例顯示,第2個if句的複合條件式中,[gbc>30]為false時的分支沒有被測試到。以C1覆蓋率測試來說,它的測試結果是OK;而對於MC/DC覆蓋率測試來說,它的結果是NG。

注: MC/DC覆蓋率測試功能不支援C++程式。

單元測試的效率化功能

聯合程式解析工具CasePlayer2,實現程式碼參照解析作業的效率化

利用 生成的流程圖表以及模組構造圖(呼叫函式的構造圖)與原始碼的連線(link)功能,使單元測試用原始碼的解析工作效率化。

能夠自動檢索被測試函式的外部變數,使測試條件設定效率化

聯合程式解析工具CasePlayer2,自動檢索被測試函式所使用的外部變數。縮短了以往必須對原始碼進行搜尋找出輸入條件的變數所需的工作。而且,能夠防止人工操作導致的類似變數指定遺漏的的錯誤。

 

根據程式碼解析自動化製作C0,C1,MC/DC 覆蓋率測試計劃

聯合程式解析工具 CasePlayer2 ,自動化製作符合覆蓋率測試要求的條件分支 if,switch,for,while 等的測試資料。可以將被測試函式中含有的條件式( if 以及 switch 等)在資料製成圖形 (Viewer) 上列表顯示。 點選其中的條件,工具將自動開始檢索與之相關的變數,進而從所設定的條件的境界值中自動生成覆蓋率測試所需要的資料。

為了達到C1/MCDC覆蓋率,測試時需要對各函式的資料進行組合。 利用 CasePlayer2 提供的解析結果,分析條件式的 net 構造,在重複性限制在最小限度下生成 C1/MCDC 覆蓋率測試用資料。

支援 MPU

 

動作環境

操作 PC/OS
IBM PC/AT 相容機
Pentium( 相當 ) 2GHz 以上的 CPU
儲存器 512MB 以上(推薦值)
顯示器解析度 XGA(1024*768) 以上(推薦值)
Windows XP, Windows Vista, Windows 7 32bit/64bit )(※ Windows 95/98/Me/NT/2000 未支援)

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913086/viewspace-2787950/,如需轉載,請註明出處,否則將追究法律責任。

相關文章