您好,登錄后才能下訂單哦!
本篇內容介紹了“如何理解嵌入式軟件單元測試/集成測試工具winAMS”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
[Coverage master winAMS]是以嵌入式軟件的函數為單位,實施模塊單元測試以及C0/C1/MCDC覆蓋率測試(coverage test)的嵌入式軟件自動化單元測試工具。目標機源代碼通過交叉編譯器生成目標機執行代碼,通過跟實際處理器同樣的模擬處理器環境進行單元測試,不需要對執行代碼做任何變動,使高信賴性的模塊測試成為可能。在汽車控制軟件這樣的對安全性要求極高的領域,單元測試已經成為不可缺少的一部分。使用目標機代碼進行單元測試也是為了符合汽車行業中ISO26262功能安全認證標準。
作為能夠檢驗出僅憑系統測試以及整體測試無法發現的[潛在錯誤]的檢測方法,[單元測試]在嵌入式開發領域受到廣泛重視。同時,單元測試也是汽車用軟件功能安全(ISO26262)領域中要求實施的認證項目之一。
[Coverage master winAMS]直接使用通過交叉編譯生成的目標機代碼,在模擬處理器環境下進行單元測試。既能實現C語言程序的邏輯上的單元驗證,又能夠對嵌入式微機組裝為產品后可能發生的問題等進行具有高信賴度的白盒(white box)測試。
有些公司的單元測試工具往往采用在被測試對象的源代碼中追加測試用代碼或者測試用驅動器的方法,導致測試時所用的代碼與組裝為產品后的目標機用代碼不同。雖然[理論上運行功能應該是相同的],但是從嵌入式開發的角度考慮,這樣就如同對交叉編譯所生成的經過優化處理的代碼進行了加工,無法確保最終產品的質量。Coverage master winAMS是業界唯一的,具有[不需要對被測試對象做任何加工]實施單元測試功能的工具,特別是在安全性要求高的領域中得到很高的評價。
Coverage master winAMS不需要追加任何測試用驅動器或測試用代碼,可以直接使用將組裝成產品的目標代碼進行單元測試。單元測試能夠與軟件開發使用共同的交叉編譯環境,不再需要對測試資源進行專門管理,也不再需要建立其他專用環境。因此,既方便程序資源管理,又能夠縮短準備測試環境所需的時間。
ISO26262是從IEC61508衍生出來的適用于汽車制造領域的功能安全標準。其中的Part.6-9[軟件程序單元測試]包括了關于軟件程序的構造覆蓋率測試以及有關的規定項目。根據汽車安全標準(ASIL),提出了測試語句覆蓋率(statement coverage),分支覆蓋率(branch coverage),MC/DC覆蓋率的推薦性事項。
其中的另一個推薦性事項是
[盡可能使單元測試的環境與目標環境相同]
的規定。如果在與目標環境不同的環境下進行單元測試,必須表明源代碼與目標代碼的差別,以及目標環境和測試環境的差別。因此,對于那些使用與目標微機不同的電腦進行編譯和單元測試的其他公司的工具而言,這個要求很難滿足。 還有些公司的單元測試工具雖然包括交叉編譯環境及編譯功能,而且也能夠在與目標環境相同的環境下進行測試,但是所有的測試都需要插入測試用代碼,進行再次編譯,因此測試也只能在與目標環境不同的環境下實施。
GAIO提供的單元測試工具Coverage master winAMS具有
●采用全面支持嵌入式微機的微機化功能測試平臺環境
●不需要插入測試用代碼直接使用目標機代碼進行測試
的特征,提供符合ISO26262標準要求的必須功能。GAIO提供的Coverage master winAMS是符合ISO26262標準[直接使用整裝用代碼實施單元測試]這一要求的業界唯一的工具。
2012年6月28日,「Coverage master winAMS / General」測試工具獲得由德國TUVSUD第三方認證機構,在汽車機能安全規格的ISO26262軟件工具方面的認證,包括日本在內亞洲地區首次獲得該項認證。
通過此項認證,說明本公司的單元測試工具「Coverage master winAMS / General」,以及程序分析工具「CasePlayer2」,在靜態分析和單元測試領域,是符合所有安全度水準的工具,并由TUVSUD認證機構得到了保障。
ISO 26262對于不同的開發用軟件工具在工具置信水平(TCL),都需要開發者提供開發軟件工具的認證書。此項認證適用于在工具認證當中,最為復雜的TCL3工具認證標準。因此,導入本公司的單元測試工具之后,不需要對TCL的部分進行認證,進而可以縮減手續跟時間。
SSTManager是Coverage master winAMS的應用功能,用于管理單元測試project,制作測試數據(test data)。從設定測試環境開始,到報告測試結果為止,均由微機化功能測試平臺(ISS)實施綜合管理。
Coverage master winAMS不需要插入測試用代碼,直接使用目標機代碼進行單元測試。采用通用便利的CSV文件管理函數測試時使用的輸入輸出數據。測試結束后,輸出的測試結果和輸出的期待值也將以相同的格式顯示在CSV文件之中。
根據測試的輸入輸出數據自動報告相應源代碼的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,自動檢索被測試函數所使用的外部變量。縮短了以往必須對源代碼進行搜索找出輸入條件的變量所需的工作。而且,能夠防止人工操作導致的類似變量指定遺漏的的錯誤。
聯合程序解析工具CasePlayer2,自動化制作符合覆蓋率測試要求的條件分支if,switch,for,while等的測試數據。可以將被測試函數中含有的條件式(if以及switch等)在數據制成圖形(Viewer)上列表顯示。點擊其中的條件,工具將自動開始檢索與之相關的變量,進而從所設置的條件的境界值中自動生成覆蓋率測試所需要的數據。
為了達到C1/MCDC覆蓋率,測試時需要對各函數的數據進行組合。利用CasePlayer2提供的解析結果,分析條件式的net構造,在重復性限制在最小限度下生成C1/MCDC覆蓋率測試用數據。
CoverageMaster winAMS Supported Processor List(English)
?操作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 未支持)
“如何理解嵌入式軟件單元測試/集成測試工具winAMS”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。