這幾款嵌入式軟件測試工具,好用到起飛~
來源:軟件質(zhì)量報道
也許你陌生,但在智能物聯(lián)網(wǎng)時代,人們會越來越關注嵌入式軟件測試。
說起嵌入式軟件測試,我們先快速了解一下嵌入式軟件自身的特點。嵌入式軟件具有實時性、內(nèi)存空間有限、I/O通道少,而且要求功耗低、高可靠性,對成本也比較敏感,和硬件關聯(lián)性強等特點。因此,嵌入式軟件的測試與一般商用軟件的測試有較大的區(qū)別。
嵌入式軟件開發(fā)和運行的環(huán)境完全不一樣,是分開的,開發(fā)在Windows/Mac OS桌面客戶端(宿主機環(huán)境)上進行,而運行的環(huán)境是在目標機環(huán)境上,即一般是基于Linux/Android內(nèi)核開發(fā)的嵌入式操作系統(tǒng)或像RT-thread那樣的實時操作系統(tǒng),支持ARM CPU、 MCU 和 藍牙芯片等低功耗的關鍵硬件。
嵌入式軟件的單元測試一般在宿主機環(huán)境下進行,只是在個別情況下(如目標機編譯器可能有缺陷)會要求在目標機環(huán)境下進行,所以在單元測試上,嵌入式軟件和一般商用軟件的之間差別比較小。不過,嵌入式軟件的單元測試對代碼的質(zhì)量要求比較高,一般要求達到MC/DC覆蓋率。
嵌入式軟件的集成測試,一般指與目標機的硬件環(huán)境集成,也可以和仿真環(huán)境集成,這時需要做相應的硬件兼容性測試。但到了系統(tǒng)測試、配置項測試或確認測試,一般就會在目標機環(huán)境下執(zhí)行,這時和一般商用軟件的測試有較大的差別。
由于嵌入式系統(tǒng)的實時性,其測試應充分考慮系統(tǒng)實時響應的問題,其響應時間一般要求在毫秒級別,其對應的負載測試少不了。在對目標機進行測試時,一般需要對在宿主機上編譯通過的代碼進行插樁處理。
這樣可以在目標機執(zhí)行程序的時候,將插樁時預測好的數(shù)據(jù)返回到宿主機上進行分析,因此,宿主機和目標機之間的數(shù)據(jù)傳輸也要認真對待。
除此之外,我們需要制定符合系統(tǒng)需求的可靠性級別和安全級別,進行相應的可靠性測試和安全性測試。嵌入式軟件測試工具,開源工具比較少,多數(shù)是商業(yè)工具,而且往往成套,覆蓋系統(tǒng)功能、性能分析和安全性測試。
今天,我們就介紹比較常用的或好用的嵌入式軟件測試工具,主要有:
ETest?Studio
Klocwork
Hitex TESSY
Rapita Verification Suite
Squish
Trinity DT10
VectorCAST
ETest Studio

提供各類控制總線和儀器接口API,可由開發(fā)人員集成各類通用接口板卡和用戶自定義的接口板卡。支持的I/O類型包括:RS232/422/485、1553B、CAN、TCP、UDP、AD、DA、DI、DO、ARINC429等,并可靈活擴展; 支持對待測系統(tǒng)及其外圍環(huán)境、接口情況等進行可視化仿真建模設計,如提供Matlab/Simulink集成接口,可實現(xiàn)現(xiàn)有仿真模型的開發(fā)和利用,支持仿真模型實時代碼的生成和運行; 提供接口協(xié)議描述語言(DPD語言)及其編輯編譯環(huán)境; 可通過表格、儀表、曲線圖、狀態(tài)燈等虛擬儀表實時監(jiān)測接口數(shù)據(jù); 可按二進制、十進制、十六進制監(jiān)測輸入與輸出的原始報文并查詢過濾; 測試腳本支持時序測試和多任務實時測試,具有可自動生成滿足不同組合覆蓋要求測試數(shù)據(jù)的功能; 提供實時內(nèi)核模塊,可實現(xiàn)高可靠性強實時測試,響應時間<=1ms,同步傳送和抖動時間小于10us。上位機和下位機分別采用Windows和實時操作系統(tǒng)。
?Klocwork
Klocwork是一款支持百萬行甚至千萬行以上的C/C++/Java/JS/C#代碼質(zhì)量靜態(tài)檢測工具。

利用領先的深度數(shù)據(jù)流分析技術,靜態(tài)地跨類、跨文件地查找軟件運行時缺陷、錯誤和安全漏洞,并準確定位錯誤發(fā)生的代碼堆棧路徑。
Klocwork支持自動化掃描1000多種代碼缺陷,包括空指針、資源及內(nèi)存泄漏、未捕獲的異常、除零等,全面檢測代碼質(zhì)量問題
Klocwork提供全面的安全規(guī)則掃描能力,支持CWE, OWASP, CERT, PCI DSS, DISA STIG, 和ISO/IEC TS 17961等標準,深度數(shù)據(jù)流分析能力強、準確率高、漏報率低
支持常用的IDE,如Eclipse, Visual Studio, IntelilJ Idea等,并與CI/CD工具和集成、B/S+C/S部署方式
Klocwork支持靜態(tài)檢測軟件應用的安全漏洞,包括SQL注入、被污染的數(shù)據(jù)、緩存溢出、弱代碼實現(xiàn)及其它多種常見應用安全漏洞
官網(wǎng)地址:
https://www.perforce.com/products/klocwork
Hitex TESSY

自動生成測試環(huán)境、一鍵執(zhí)行及評估結果 便捷的測試用例設計方式,如集成了分類樹編輯器CTE,支持導入導出多種格式的測試用例 通過分析源文件自動識別函數(shù)及相關接口,在接口發(fā)生變更時,支持通過簡便的操作進行測試數(shù)據(jù)復用,實現(xiàn)高度自動化的回歸測試 提供分支覆蓋、MC/DC、多條件覆蓋MCC等多種覆蓋度分析。
Static code anlaysis Test case specification Working with standards Analyzer Hardware-in-the-loop test

Rapita Verification Suite (RVS)

單元、集成和系統(tǒng)測試的生成和執(zhí)行 - RapiTest 結構性代碼覆蓋率分析 - RapiCover 執(zhí)行時間分析 - RapiTime 調(diào)度分析 - RapiTask
Squish

Squish:自動化GUI測試 Squish CoCo:代碼覆蓋率分析
DT10

支持跟蹤和檢測軟件執(zhí)行過程中的路徑、變量和各種中間狀態(tài) 支持監(jiān)測和分析系統(tǒng)運行過程中的硬件狀態(tài)并和軟件狀態(tài)同步分析 支持長達一個月的長時間不間斷測試,實時動態(tài)更新的覆蓋率分析 性能測試功能可以細化任意代碼模塊,并精確到ns 不依賴于被測系統(tǒng)的CPU和OS類型 支持串口、以太網(wǎng)口、異步總線、GPIO, SPI, SD卡和CAN總線等豐富的接口類型
VectorCAST

版權歸原作者所有,如有侵權,請聯(lián)系刪除。
???????????????? ?END ?????????????????
關注我的微信公眾號,回復“加群”按規(guī)則加入技術交流群。
關注公眾號,回復“pdf”獲取程序員必讀經(jīng)典書單,一起編程一起進階。
點擊“閱讀原文”查看更多分享,歡迎點分享、收藏、點贊、在看。
