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

變頻器的自動檢測功能有哪些?

主動安全和被動安全,誰在事故中發(fā)揮作用更關(guān)鍵?
ATA-2022B高壓放大器在螺栓松動檢測中的應(yīng)用

高光譜相機(jī)在工業(yè)檢測中的應(yīng)用:LED屏檢、PCB板缺陷檢測
手動檢測的終結(jié)者:機(jī)器人氣密性測試設(shè)備來襲

樹莓派制成的 — 帶運(yùn)動檢測和攝像頭的安防系統(tǒng)

無人機(jī)智能巡檢系統(tǒng)讓水利管理從被動應(yīng)對到主動防御
X-Ray檢測設(shè)備能檢測PCBA的哪些缺陷
被動紅外探測器和主動紅外探測器的區(qū)別
使用MSPM0進(jìn)行PIR運(yùn)動檢測

SSD架構(gòu)與功能模塊詳解

使用被動式紅外傳感器的運(yùn)動檢測方案

評論