遵守 ISO 26262、EN 50128 和 IEC 61508 等復雜功能安全標準的要求非常復雜。只需考慮這需要的代碼覆蓋量,從應用軟件到所有 C 編譯器中使用的 C90 和 C99 等庫中存在的各種條件。這意味著為您甚至沒有編寫的代碼提供代碼覆蓋!
這就是為什么 Solid Sands 開發(fā)了 SuperGuard,這是一個用于安全關鍵和安全相關系統(tǒng)的 C 庫安全認證套件。基于 Solid Sands 的 SuperTest 庫測試和驗證套件,SuperGuard 被設計為 C90 和 C99 庫的以需求為中心的測試解決方案,該解決方案與 ISO C 規(guī)范緊密結合,沒有為每個 C 庫函數(shù)定義測試要求。SuperGuard 工具將此規(guī)范轉換為測試要求,這些要求說明了標準 C 庫中條件函數(shù)的不同實現(xiàn),并調用了合規(guī)性所需的那些。
這些要求被記錄并鏈接到 SuperGuard 套件中的測試規(guī)范,然后進一步鏈接到 SuperTest 工具中的 C 庫測試。SuperGuard 驗證和文檔鏈為必須向國際認證機構證明應用軟件、工具鏈、方法和流程符合安全標準的開發(fā)人員提供完整的可追溯性。
該套件與 Windows 和 Linux 系統(tǒng)兼容,可與任何 C 或 C++ 編譯器(包括裸機目標)一起使用,支持配置插件,并且可以利用多處理功能來傳播驗證運行,以便更快地執(zhí)行測試。
SuperGuard C 庫安全認證套件在行動
如前所述,SuperGuard 基于 SuperTest 套件,其中包含針對 ISO 標準 C 庫規(guī)范的每個部分的庫測試。SuperGuard 測試需求源自這些測試,以生成可從原本含糊的定義中測試的案例。
例如,函數(shù)“strlen()”的參數(shù)必須指向一個有效的字符串。這是在 C 語言規(guī)范中定義的。它是 strlen() 函數(shù)的先決條件。如果應用程序開發(fā)人員未能滿足此前提條件,則程序具有未定義的行為。這不好,但它是 C 的一個很好理解的屬性。strlen() 函數(shù)的實現(xiàn)不需要驗證前提條件是否為真——這在 C 中根本不可能。所以,這個 pre-條件是對程序員的要求。它不會導致測試 strlen() 的實現(xiàn)。
此過程會生成詳細的結構化需求列表,然后將其轉換為可測試需求的測試規(guī)范。該套件還可以為單個需求生成多個測試規(guī)范。對于那些實現(xiàn)定義的元素,SuperGuard 為工程師提供了完全控制來添加他們自己的測試或調整生成的測試集。
然后可以將結構代碼覆蓋工具應用于庫實現(xiàn)。Solid Sands 使用這種方法為 MUSL-C 庫實現(xiàn)和高修改條件/決策覆蓋率實現(xiàn)了高達 100% 的代碼覆蓋率。
測試運行后,SuperGuard 報告工具可以將結果鏈接回套件中先前生成的需求,并提供滿足需求和失敗的實現(xiàn)的概述。
從 ISO 標準 C 庫規(guī)范到生成測試需求、創(chuàng)建測試規(guī)范和執(zhí)行測試一直到報告的鏈接和文檔是符合當今安全關鍵標準所需的驗證鏈。
SuperGuard C 庫安全認證套件入門
總體而言,SuperGuard 測試套件允許開發(fā)人員將其軟件映射到安全關鍵系統(tǒng)的要求,從而簡化了安全認證過程。完整的 SuperGuard C 庫安全認證套件將于今年夏天作為獨立解決方案和 SuperTest 的附加組件提供。C++ 標準庫版本目前也在開發(fā)中。
審核編輯:郭婷
-
C++
+關注
關注
22文章
2117瀏覽量
74770 -
代碼
+關注
關注
30文章
4886瀏覽量
70240 -
編譯器
+關注
關注
1文章
1654瀏覽量
49881
發(fā)布評論請先 登錄
DS28C36 DeepCover安全認證器技術手冊
DS28C40 DeepCover汽車應用I2C安全認證器技術手冊

汽車芯片廠商芯弦半導體NSSineTM系列實時控制MCU通過IEC 60730 Class B功能安全認證

國芯科技MCU芯片榮獲ISO 26262 ASIL-D功能安全產品認證
芯海科技BMS系列:數(shù)字安全認證,守護電池安全
恩智浦推出EdgeLock A30安全認證器
博世商用車電機控制器通過ISO 26262 ASIL-C功能安全產品認證
HighTec C/C++編譯器套件全面支持芯來RISC-V IP

兆易創(chuàng)新再次獲得TüV萊茵STL功能安全認證
再獲突破!匯頂科技新一代安全芯片榮獲CC EAL6+安全認證

評論