VectorCAST自動化測試軟件方案

、功能和性能指標

VectorCAST是主要用於C/C++/Ada程序的自動化測試軟件,能夠運行在Windows和Linux等多種開發環境。其主要功能包含自動化的單元測試、集成測試、覆蓋率分析、迴歸測試、代碼靜態分析和測試需求跟蹤,其最大特點或相比於其它相關同類工具最大的優勢,就在於最大程度的自動化更適用於嵌入式環境。以下予以分別闡述:

·單元測試

VectorCAST 會根據被測代碼和開發環境自動構建測試架構(Test Harness),在此基礎上用戶可以根據需要自動地生成或添加測試用例,並靈活地配置以實現不同的測試需求。自動生成的架構中包括:被測對象、測試驅動、樁函數和依賴條件。如下圖1所示。


152912784.png

圖1. VectorCAST自動構建的測試架構



自動生成測試用例

VectorCAST 支持用戶以多種形式的輸入輸出參數自動地生成測試用例,不需要用戶編寫測試代碼,完全通過鼠標和輸入窗口自動完成:

  • 最大值、最小值和中間值

  • 二進制、十進制、八進制和十六進制數值

  • 輸入參數範圍

  • 多個參數自動排列組合及配對

  • 等價類劃分

  • 輸入值列表

  • 期望輸出值列表

  • 期望值容錯誤差範圍

  • 從外部數據源,如xlc, csv 等,中導入測試用例參數


152932455.png

圖2:測試用例輸入輸出值編輯窗口


VectorCAST 可以根據不同的覆蓋率的算法分析測程序邏輯,自動地生成滿足不同要求覆蓋率要求的測試用例,以儘可能地達到覆蓋率要求。對於未能覆蓋的部分,用戶可以根據工具提供的邏輯分析報告,如基本路基邏輯和MC/DC 等價類矩陣,用戶按照分析結果提示的參數條件額外添加少量測試用例即可達到100%的覆蓋率(參見下圖3)。

  • 基本路徑覆蓋自動生成用例通常可以自動達到90%100%的覆蓋率

  • MC/DC覆蓋自動生成用例覆蓋率視測代碼實際情況而定


152950342.png

圖3:MC/DC等價類分析矩陣

樁函數

被測函數所調用的其它函數可以通過形式被執行,被調函數本身或樁函數。從全部調用實際函數到全部由樁函數替代,用戶可以根據自己需要靈活設定需要打樁的對象。VectorCAST 可以支持添加不同輸入輸出的樁函數,簡單的如int, float, double, char 等基本類型變量,也可以支持非常複雜的結構或對象變量。重要的是,這些樁函數基本都只需GUI 操作即可完成,一般不需要人工編寫測試代碼。


測試用例的執行

VectorCAST 對測試用例的執行方式採用真正的數據驅動方式(Data-Driven),所謂數據驅動,就是指測試用例數據只有在測試用例執行的時候纔會被讀取,而不會隨測試代碼、樁函數和測試驅動等等一起構建到最終的執行程序中。這樣的好處是1)構建和執行速度快;2)當被測對象未變動的情況下,對測試用例的輸入輸出參數進行修改,測試用例不需要重新編譯構建。


測試結果驗證

測試用例執行完之後,VectorCAST 除了能對被測單元的實際return值進行斷言以外,包括簡單類型和覆蓋結構體,還可以對它依賴關係中的變量結果值或其成員變量進行驗證,報告TrueFalse 斷言結果。


複雜度分析

測試用例執行結束之後,VectorCAST 會統計相關程序的圈複雜度,並自動生成報告。如下圖4所示。

153010810.png

圖4:VectorCAST 圈複雜度分析報告

測試報告

測試結束後,VectorCAST 自動生成詳細的測試報告,包括所有測試用例、測試用例輸入輸出數據、斷言結果、程序度量分析結果、不同覆蓋率報告和MC/DC 等價類分析矩陣。


·集成測試

VectorCAST 除了測試單個函數或單元以外,還可以用於模塊集成測試,不同模塊直接的接口調用是否正確。主要體現在:

  • 通過集成不同單元的測試用例,任意組合其執行順序和執行次數,以達到集成測試多個單元的目的

  • 通過測試用例讓多個單元實際調用其它單元,以驗證相互調用接口的執行結果

  • 直接根據頭文件生成測試用例,測試源碼未可見的庫函數的接口及功能


·對嵌入式環境的支持

測試用例可以在主機(Host),模擬器(Simulator)或目標板(Target)上執行,並收集測試結果在主機平臺統一查看。對於嵌入式環境,可以通過目標板特有的通訊條件,如串口、以太網口、JTAG 或調試器等實現測試結果到主機的傳輸。


VectorCAST支持近100C/C++嵌入式交叉編譯器和60多種Ada嵌入式編譯器。廣泛適用於航空航天,國防軍事相關的研發環境。


·覆蓋率分析

統計多種覆蓋率。VectorCAST的覆蓋率分析功能可以統計多種測試覆蓋率,包括語句覆蓋(Statement)、分支覆蓋(Branch)和MC/DC 覆蓋。並通過在原代碼中以顏色和數字標註、百分比率和綜合詳細的報告等不同方式顯示。如下圖5所示。

153031383.png

圖5:VectorCAST覆蓋率統計報告


綜合多種覆蓋率數據。VectorCAST 可以集中顯示多次測試、不同測試的測試覆蓋率結果,包括單元測試、集成測試、系統測試、C/C++程序覆蓋率和Ada覆蓋率的覆蓋率都可以綜合地顯示在一個報告中。這樣即使分別執行測試用例,也可以獲的統計疊加的覆蓋率結果。在覆蓋率要求嚴格的項目中尤爲有用。


自動錄製動畫回放程序覆蓋的路徑。VectorCAST 可以記錄測試用例執行過程中被測代碼的執行路徑,並支持用戶播放、暫停和設定斷點等方式進行查看。這樣用戶可以直觀地瞭解被覆蓋的代碼是如何覆蓋的,沒有覆蓋的代碼爲什麼沒有覆蓋到,從而準確地添加測試用例,提高覆蓋率。


·迴歸測試

強大的迴歸測試功能,VectorCAST 能集中管理全部的C/C++Ada 程序的測試環境和測試驅動,通過GUI 或命令行的方式定期地運行,從而根據測試用例的執行情況及時地發現代碼中“意外引入的錯誤”,保證測試過的代碼和新增代碼質量的持續穩定。


153055724.png

圖6:VectorCAST迴歸測試結果


具體地,VectorCAST 的迴歸測試功能有如下特點:

o集中管理測試用例

o提供整個工程每日的質量報告

o支持敏捷開發

o可以方便運行在不同版本的源碼庫上

o支持命令行和GUI

o支持多臺機器分部運行

o統計測試用例執行時間

o提供可視化圖表和趨勢圖

o便於掌控整個項目的質量和進度


·支持敏捷開發(TDD

VectorCAST 可以完美地支持敏捷開發流程(TDD)。TDD 要求先根據需求開發測試用例,然後再開發,讓測試用例逐步通過,最終完成整個開發。VectorCAST 只需要項目頭文件就可以生成測試環境,用戶能根據需要增加測試用例,不需要額外編寫測試代碼。生成好當有代碼被開發出來後,可以直接將被測程序更新進測試環境,構建並運行測試用例,支持編碼完成所有測試用例全部通過。在整個開發過程中,還可以使用迴歸測試功能對所有測試用例持續地執行,確保每日的進度和質量。


·靜態代碼分析

VectorCAST 集成了靜態代碼分析功能,可以在不執行代碼的情況下,通過內建的編碼規範對程序進行分析,如MISRA C, MISRA C 2004MISRA C++ 2008. 對每一個報告出來的錯誤,VectorCAST 都會顯示詳細的說明、嚴重度等級和詳細的文檔。以幫助用戶方便地分析和修改測試結果。


·測試需求跟蹤

VectorCAST 的需求跟蹤功能可以跟常用的需求管理系統集成,如DOORS, RequisiteProCSV數據庫等。從需求管理系統中導入需求,然後將VectorCAST測試用例和測試結果與之關聯,連同備註再導出到需求管理系統。從而確保每個需求都能被測試用例所覆蓋,並管理每個需求所對應的測試用例的正確執行。這對產品的系統測試和最終驗證是至關重要並且實用的,用戶不用再手工地做這些驗證和文檔工作了。參見圖7.

153116982.png

圖7: 在VectorCAST中集成需求管理系統

·工具認證包(Certification Kits

Vector Software 公司提供用於航空航天DO-178B/DO-278,鐵路系統EN50128,汽車電子ISO26262,工業控制IEC 61508和醫療器械IEC 62304等不同行業認證標準的驗證包。其中對VectorCAST 的各個功能進行了詳細的驗證和說明,證明VectorCAST 滿足標準對開發過程中使用的工具的要求,是能夠用在有相關認證要求的項目的研發和測試工作中的。幫助產品或項目順利地通過相關認證,獲得行業認證證書。


、技術方案

VectorCAST 作爲自動化的測試軟件和解決方案,可以有機地集成到已有的開發流程中,也可以作爲一個獨立的質量解決方案。如下圖8所示,將VectorCAST 作爲嵌入式測試的質量中心,其不同產品模塊可以用於各個方面的測試,包括:

  • 單元測試

  • 集成測試

  • 覆蓋分析

  • 靜態分析

  • 迴歸測試


同時又可以集成和整合其它系統和測試,包括:

  • 源碼控制系統

  • 需求管理系統

  • 系統測試(部分)


從而形成一個整合而又靈活的測試和質量控制體系。從需求分析、到編碼、單元測試、集成測試、迴歸測試及覆蓋率,到需求跟蹤和驗證,VectorCAST 提供了貫穿軟件研發的全生命週期管理的解決方案,真正從根本上保證研發的質量和效率,特別是對高安全和高可靠性要求及其嚴格的航空航天系統,VectorCAST 提供的這樣的自動化測試更顯得尤爲重要且必不可少。


153135902.png

圖8:VectorCAST 整合的測試方案


VectorCAST 的實施和部署可以採取分步進行的方式,先對各個模塊根據其需求緊迫程度和難易程度逐步予以熟悉和應用,如可以採取從靜態分析-> 單元測試 -> 代碼覆蓋率分析 -> 迴歸測試 -> 需求管理和跟蹤,到最後將其全部整合起來的方式。其中每個環節都需要嚴格的部署計劃和實施質量考覈標準,以確保整個部署過程有條不紊地完成。


系統應用起來後,VectorCAST 原廠技術人員還會配合用戶對軟件的使用情況予以定期的回訪,協助解決出現的技術問題,並優化使用流程,保證軟件在用戶的研發中發揮長期有效的作用。


、系統組成

VectorCAST解決方案主要由以下幾個模塊組成:


VectorCAST/C++ & Ada, C/C++/Ada 程序的單元測試和集成測試環境的生成、編輯、構建、執行、覆蓋率分析、複雜度分析和測試結果統計等等。


VectorCAST/Cover,統計無論是單元測試、集成測試還是系統測試的覆蓋率,並可以將不同次測試的結果綜合到統一的報告中。


VectorCAST/MCDC, 統計MC/DC 覆蓋率。


VectorCAST/Manage,自動化的迴歸測試功能及項目的整體質量集中管理中心。


VectorCAST/Lint,自動化代碼靜態分析模塊。


VectorCAST/RSP,用戶宿主機和目標機的通訊,收集測試用例在目標機執行之後的測試結果和數據。嵌入式的測試必備模塊。


VectorCAST/RGW,用於集成需求管理系統,使用測試用例跟蹤測試需求並導出數據。


VectorCAST Qualification Kits,提供用於支持DO-178B, IEC61508, ISO26262EN50128等行業所需的驗證材料套件。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章