News
發(fā)布時間:2025-03-03 作者:上海工業(yè)控制安全創(chuàng)新科技有限公司 點擊次數(shù):次
在嵌入式系統(tǒng)與安全關鍵領域,如航空航天、軌道交通、自動駕駛、醫(yī)療設備,代碼缺陷可能引發(fā)災難性后果。傳統(tǒng)靜態(tài)分析僅能通過源代碼語法、結構和編碼規(guī)范發(fā)現(xiàn)問題,而復雜的系統(tǒng)級交互、多線程并發(fā)及邊界條件問題往往潛伏至后期階段,導致高昂的修正成本。
針對這一痛點,上??匕矆F隊在嵌入式軟件自動化測試平臺SmartRocket TestGrid中新增動態(tài)缺陷檢測(DDC)功能模塊,旨在通過形式化驗證技術實現(xiàn)代碼缺陷的早期根除,高效賦能代碼審查。
產(chǎn)品簡介
SmartRocket TestGrid 嵌入式軟件自動化測試平臺
SmartRocket TestGrid嵌入式軟件自動化測試平臺是專為C/C++設計的靜動態(tài)代碼分析工具,本次新增動態(tài)缺陷檢測功能模塊采用形式化驗證技術提前識別除零、移位、空指針解引用、數(shù)組越界、數(shù)據(jù)溢出、未賦值使用、共享變量沖突、不可達代碼等運行時錯誤缺陷,支持MISRA等國際編碼規(guī)范進行代碼合規(guī)質量度量,提供精準錯誤定位和修復建議,顯著縮短修復周期,降低風險成本。SmartRocket TestGrid嵌入式軟件自動化測試平臺推出的動態(tài)缺陷檢測功能模塊標志著國內代碼質量保障從“被動檢測”轉向“主動預防”,為高可靠性軟件開發(fā)提供形式化驗證領域有效的工業(yè)級解決方案。
核心技術
SmartRocket TestGrid動態(tài)缺陷檢測功能模塊基于形式化驗證方法,通過數(shù)學推理嚴格證明代碼在任意輸入和運行條件下的行為正確性,確保不存在特定類型的運行時缺陷檢測。其核心依托三大技術支柱:抽象解釋(Abstract Interpretation)、符號執(zhí)行(Symbolic Execution)和定理證明(Theorem Proving),形成一套覆蓋代碼全狀態(tài)空間的驗證體系。
· 抽象解釋是基礎框架
通過將程序變量映射到數(shù)學抽象域(如區(qū)間、集合或關系),對代碼進行超集近似分析。例如將整型變量抽象為可能取值區(qū)間,指針抽象為內存區(qū)域的合法范圍。工具通過迭代計算各代碼節(jié)點的抽象狀態(tài),推導出所有可能的執(zhí)行路徑,從而驗證是否存在導致數(shù)組越界訪問、整數(shù)溢出、除零錯誤的操作。這一過程無需實際執(zhí)行代碼,但需平衡精度與計算復雜度。通過合理的抽象層級設計,既能避免狀態(tài)爆炸,又能捕捉關鍵錯誤模式。
· 符號執(zhí)行進一步擴展分析能力
將輸入變量視為符號而非具體值,探索代碼中所有邏輯分支的約束條件。通過結合約束求解器,工具可判斷各路徑是否可能觸發(fā)錯誤,或是否存在不可達代碼。這一技術尤其擅長處理復雜邏輯條件,如嵌套循環(huán)、非線性運算等,確保對多路徑場景的窮舉覆蓋。
· 定理證明為高階驗證提供支持
將代碼行為轉化為數(shù)學命題,通過邏輯推理驗證其與需求規(guī)范的一致性。工具通過將代碼控制流、數(shù)據(jù)流與形式化需求模型(如時序邏輯公式)進行映射,利用自動推理引擎生成證明,確保功能實現(xiàn)嚴格符合設計意圖。
此外,SmartRocket TestGrid動態(tài)缺陷檢測功能模塊還整合并發(fā)分析技術,通過建模線程調度、鎖機制和內存可見性,檢測數(shù)據(jù)競爭等并發(fā)缺陷。
工具基于形式化驗證理論,將代碼抽象為數(shù)學模型進行符號執(zhí)行分析,用符號模擬變量狀態(tài)變化,遍歷所有分支路徑生成決策樹,篩選違規(guī)節(jié)點定位缺陷。相較傳統(tǒng)測試,覆蓋全場景且提供明確反例,避免遺漏關鍵問題。其獨特優(yōu)勢在于:
· 全面性
結合抽象解釋的全局狀態(tài)推導與符號執(zhí)行的路徑敏感分析,消除傳統(tǒng)測試的覆蓋盲區(qū)。
· 數(shù)學嚴謹性
以形式化方法替代經(jīng)驗性測試,提供“無漏報”的確定性結論(如證明某錯誤絕不可能發(fā)生)。
· 可擴展性
通過分層抽象和并行計算優(yōu)化,支持大規(guī)模嵌入式代碼(如百萬行級)的驗證。
SmartRocket TestGrid動態(tài)缺陷檢測功能模塊通過上述技術的深度融合,為安全關鍵系統(tǒng)(如航空航天控制器、汽車ECU)提供數(shù)學可證明的代碼可靠性保障,成為實現(xiàn)功能安全標準(如ISO 26262、DO-178C)的核心工具。其技術路徑不僅彌補了動態(tài)測試的局限性,更在工業(yè)領域推動了形式化方法從學術理論到工程實踐的跨越。
主要功能
01 數(shù)值計算錯誤預防
預防整數(shù)溢出、除零異常等計算錯誤,提出數(shù)據(jù)類型優(yōu)化建議。
02 內存管理錯誤檢查
精準檢測數(shù)組越界、空指針解引用等典型錯誤,內置多線程競態(tài)條件檢測機制。
03 編碼規(guī)范合規(guī)檢查
支持MISRA等標準及行業(yè)規(guī)范,確保代碼合規(guī)性,支持精準定位代碼問題位置,有助于提高代碼的可讀性和可維護性。
04 數(shù)據(jù)流控制流分析
通過靜態(tài)追蹤函數(shù)調用與變量生命周期,檢測控制流死循環(huán)及數(shù)據(jù)流未初始化等問題,并生成數(shù)據(jù)流控制流分析報告。
產(chǎn)品優(yōu)勢
優(yōu)勢一 早期風險攔截
? 在單元測試前發(fā)現(xiàn)90%以上缺陷,節(jié)省50%后期調試成本,實現(xiàn)真正意義上代碼質量“主動預防”。
優(yōu)勢二 零誤報技術
? 通過形式化方法驗證,確保每項報錯均有對應真實缺陷,并對缺陷進行精準定位追蹤,避免無效工作量。
優(yōu)勢三 一體化測試平臺
? 支持對規(guī)則掃描、運行時錯誤分析、單元測試、集成測試、目標機測試全流程代碼測試驗證。
優(yōu)勢四 客戶定制
? 支持基于客戶實際需求,定制化生成Word、PDF、Html、Excel等多格式、多維度報告與報表。
應用場景