VectorCAST-如何實現高度自動化的代碼動態測試?


背景介紹

 


隨着汽車行業的迅速發展,車載代碼量以及復雜度不斷飆升,如何保證軟件的安全成為車輛功能安全迫切需要解決的問題。所以,在軟件代碼的開發過程中,為降低軟件風險,提高代碼質量,我們需要對代碼實施靜態測試和動態測試。


靜態測試可以不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性以及對編碼規范的遵循程度,Helix QAC就是這樣一款權威的靜態測試工具,可以實現代碼的自動化檢測。


而我們今天要介紹的VectorCAST是一款權威的動態測試工具,通過實際的運行被測試程序,輸入相應的測試數據,檢查實際輸出結果和預期結果是否相符合。下面我們就來具體認識一下這款動態測試工具。

 


VectorCAST簡介

 


VectorCAST是Vector公司旗下的一款代碼測試工具,主要為嵌入式系統提供高度自動化的代碼動態測試解決方案,尤其適用於對自身有高安全性和高可靠性要求的行業,比如汽車電子、航天航空、軌交醫療、工業控制以及物聯網等領域。


在認證方面,VectorCAST通過了南德TÜV認證,遵循相關的行業認證標准,比如ASPICE,Do178B, ISO26262, IEC61508,En50128和IEC62304等,並提供了對應認證標准的驗證包。


 

 圖1 南德TÜV認證


VectorCAST是主要用於C/C++程序的自動化測試軟件,能夠運行在Windows和Linux等多種開發環境。


VectorCAST基於V模型開發,實現了與RAD模型的豐富集成,在功能上覆蓋了需求分析、單元測試、集成測試、覆蓋率分析以及回歸測試等軟件項目測試所涉及的各個環節,同時也涉及了部分系統測試的功能,它最大的特點同時也是相比於其它同類工具最大的優勢,就在於最大程序的自動化和更適合用於嵌入式環境。


針對客戶不同的代碼測試需求,VectorCAST為客戶提供了對應的解決方案,主要包括VectorCAST/C++和VectorCAST/QA。其中,VectorCAST/C++主要用於代碼的動態單元測試和集成測試,而VectorCAST/QA主要用於代碼的系統測試,下面為大家詳細介紹一下以上兩個測試工具。

 


VectorCAST/C++

 


VectorCAST/C++是VectorCAST工具集中的動態單元測試和集成測試工具,適用於C和/或C++語言,嵌入式開發人員使用它來驗證安全和業務關鍵型嵌入式系統,可以顯著降低測試過程中所必需的時間、工作量及成本。VectorCAST中的單元測試,實踐中是以一個源文件作為被測對象,實際測試是基於源文件中的函數進行測試;而集成測試,測試的是一個模塊,測試函數之間的接口,以驗證功能為目的。

 


那VectorCAST/C++是如何工作的呢?

 


VectorCAST/C++首先分析被測代碼,然后調用代碼生成器根據測試要求去自動構建一套完整並可執行的測試組件(Test Harness),這個測試組件中包括被測對象、測試驅動、樁函數和依賴條件,如圖2所示。一旦測試組件被成功構建,用戶可以使用VectorCAST/C++構建和執行測試用例,顯示代碼覆蓋信息並生成測試報告。

 

圖2 Test Harness

 


VectorCAST/C++可以實現哪些功能呢?

 


基於需求分析的測試


VectorCAST可以與多種在線需求管理服務器比如Polarion/DOORS/PTC/IBM或者本地需求文檔實現聯調,導入測試需求,並鏈接VectorCAST測試用例,確保每條測試需求都能被測試用例覆蓋,並管理每個需求對應的測試用例正確執行,實現測試用例和測試需求的雙向追溯。

 

圖3 VectorCAST需求管理服務工具


代碼覆蓋度分析


在測試過程中,如果沒有代碼覆蓋工具,源代碼的哪些部分被執行是很難確定的。VectorCAST/C++提供集成的代碼覆蓋分析工具,在單個或者多個測試執行中,提供關於源代碼語句的報告,為用戶指明代碼覆蓋信息。


在源代碼中,通過顏色標注代碼的覆蓋狀態:

  • 紅色代表代碼未被覆蓋
  • 黃色代表代碼被部分覆蓋
  • 綠色代表代碼被覆蓋

在報告中,根據覆蓋度需求,可通過顏色和百分比的方式統計多種測試覆蓋率,包括Statement(語句覆蓋)、Branch(分支覆蓋)和MC/DC覆蓋,如下圖4所示。

 

圖4 VectorCAST覆蓋率統計

 

 

自動創建測試用例


自動創建測試用例不僅體現在VectorCAST支持用戶以多種形式的輸入輸出參數自動生成測試用例,不需要用戶編寫測試代碼,完全通過GUI窗口自動完成參數設定,還體現在可以基於不同的覆蓋度需求自動創建測試用例,盡可能地達到覆蓋度要求,包括基本路徑、等價類、邊界值和MC/DC測試用例。


對於未能覆蓋的部分,用戶可以根據工具提供的邏輯分析報告,自行添加少量測試用例即可達到100%的覆蓋度。

 

  • 說基本路徑覆蓋,VectorCAST自動生成的測試用例可以達到90%~100%的覆蓋
  • 率對於MC/DC覆蓋度, VectorCAST會基於MC/DC覆蓋度去分析代碼結構,自動生成等價的MC/DC真值表,如下圖5,用戶可根據MC/DC真值表去分析代碼結構並創建測試用例

圖5 MC/DC真值表


VectorCAST/RSP—實時嵌入式測試


VectorCAST/RSP是VectorCAST的工具套件中的實時支持包,支持在嵌入式目標板或是仿真器上直接進行實時應用測試,交叉編譯生成可在目標板或仿真器上執行的測試組件,自動下載測試組件和測試用例到目標板執行,並將測試結果反饋到主機平台上,如圖6所示。


圖6 VectorCAST/RSP測試機制


VectorCAST軟件本身安裝了MinGW編譯鏈,同時支持業內最多種類(300+)編譯器和目標芯片(比如ARM,CodeWarrior,Green Hills等),利用產品實際編譯鏈進行編譯測試,實現虛擬的PIL測試。


回歸測試


所謂回歸測試,就是舊代碼修改之后,重新進行測試以確保修改沒有引入新的錯誤或者是導致其他代碼產生錯誤。


VectorCAST具有強大的回歸測試的功能,可通過GUI—Incremental或命令行的方式定期的執行測試用例,以增量的方式重構測試環境,檢查代碼變更,只執行被影響到的測試用例,節約項目測試時間,降低項目版本維護的成本。


圖7 回歸測試報告


除了上述功能外,VectorCAST/C++還:

  • 支持工具界面操作的故障注入、局部變量打印、斷點調試
  • 支持單步回放測試用例執行,分析代碼覆蓋和代碼調試
  • 支持CSV數據導入,批量生成測試用例
  • 支持頭文件、目標/庫文件測試
  • 支持對於無法通過測試用例覆蓋的代碼實行手動覆蓋的方式(CBA功能)
  • 可以與Jenkins聯調,通過Jenkins構建測試工程,實現持續集成開發/測試

 

 

VectorCAST/QA

 


VectorCAST/QA主要用於嵌入式開發的自動化系統測試,為白盒系統測試提供了一個集成的工作流程。


VectorCAST/QA 通過集成用戶軟件編譯/構建環境和已有的測試基礎架構,進而獲取軟件在系統測試中的關鍵指標,如代碼復雜度、代碼變更頻率、測試用例狀態和代碼覆蓋度等。


VectorCAST/QA的主要特點

 

  • 在系統測試期間自動捕獲和維護代碼覆蓋率數據,從而幫助用戶快速識別未被測試的部分,並確定提高測試完整性所需的資源
  • 基於變更的測試,自動計算提供完整測試更改所需的最小測試集,或者是甄別出因代碼變更而受影響的測試用例並重新執行
  • VectorCAST/QA本身不能生成測試用例,但是它可以沿用客戶已有的系統測試框架和測試用例
  • 自動對客戶的源碼進行插樁,添加代碼覆蓋率接口;一旦添加覆蓋率接口,源代碼就會有所膨脹,插樁越細致,代碼膨脹率越大,所以說系統測試對目標板的RAM和Flash有一定要求
  • 在Jenkins持續不斷地執行測試,實現持續集成

 

圖8 VectorCAST/QA

 

 

Vector簡介

 


Vector Informatik公司成立於1988年,總部位於德國汽車工業中心斯圖加特,是全球領先的分布式系統設計開發工具、網絡節點測試驗證工具和嵌入式軟件組件提供商,為ECU的開發、測試、標定和診斷等過程提供一系列強有力的軟硬件工具和組件,在全球范圍內,來自汽車、商用車、工程機械和控制工程領域的客戶都在應用Vector提供的解決方案和產品。


北匯信息作為Vector中國的合作伙伴,不僅提供相應的工具和技術支持服務及培訓,還針對不同的應用提供相應的解決方案,助力中國客戶的研發效率提升。

Source: Vector

參考文獻
[1]VectorCAST/C++ TM--- Unit and Integration Test for C/C++. Version 2.1, Vector, May. 2019.https://assets.vector.com/cms/content/products/VectorCAST/Docs/Datasheets/English/VectorCAST_C___A4_01.pdf
[2] VectorCAST RSP TM---Real-Time Software Testing. Version 2.0, Vector, June. 2017. https://assets.vector.com/cms/content/products/VectorCAST/Docs/Datasheets/English/VectorCAST_RSP_A4.pdf
[3] VectorCAST/QA TM---Complete Test Automation. Version 2.0, Vector, Nov.2019. https://assets.vector.com/cms/content/products/VectorCAST/Docs/Datasheets/English/VectorCAST_QA_A4_v2.pdf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM