VectorCAST™ 是主要用於對C/C++/Ada程序進行軟件自動化測試,並能夠在Windows和Linux等多種開發環境下運行。其主要功能包含自動化的單元測試、集 成測試、覆蓋率分析、回歸測試、代碼靜態分析和測試需求跟蹤,它最大特點或相比於其它相關同類工具最大的優勢,就在於能夠實現最大程度的自動化而且更適用 於嵌入式環境。以下分別予以闡述:
單元測試
VectorCAST 會根據被測代碼和開發環境自動構建測試套件(Test Harness),在此基礎上用戶可以根據需要自動地生成或添加測試用例,並靈活地配置以實現不同的測試需求。自動生成的架構中包括:被測對象、測試驅動、樁函數和依賴條件。如下圖所示。
- 自動生成測試用例
VectorCAST 支持用戶以多種形式的輸入輸出參數自動地生成測試用例,不需要用戶編寫測試代碼,完全通過鼠標和輸入窗口即可自動完成:
- 最大值、最小值和中間值
- 二進制、十進制、八進制和十六進制數值
- 輸入參數范圍
- 多個參數自動排列組合及配對
- 等價類划分
- 輸入值列表
- 期望輸出值列表
- 期望值容錯誤差范圍
- 從外部數據源,如xlc, csv 等,中導入測試用例參數
VectorCAST 可以根據不同的覆蓋率的算法分析測程序邏輯,自動地生成滿足不同覆蓋率要求的測試用例,以盡可能地達到覆蓋率要求。對於未能覆蓋的部分,用戶可以根據工具 提供的邏輯分析報告,如基本路基邏輯和MC/DC 等價類矩陣,用戶按照分析結果提示的參數條件額外添加少量測試用例即可達到100%的覆蓋率(參見下圖)。
- 基本路徑覆蓋 — 自動生成用例通常可以自動達到90%~100%的覆蓋率
- MC/DC覆蓋 — 自動生成用例覆蓋率視測代碼實際情況而定
2. 樁函數
被測函數所調用的其它函數可以通過形式被執行,被調函數本身或樁函數。從全部調用實際函數到全部由樁函數替代,用戶可以根據自己需要靈活設定需要打樁的對象。VectorCAST 可以支持添加不同輸入輸出的樁函數,簡單的如int, float, double, char 等基本類型變量,也可以支持非常復雜的結構或對象變量。重要的是,這些樁函數基本都只需GUI 操作即可完成,一般不需要人工編寫測試代碼。
3. 測試用例的執行
VectorCAST 對測試用例的執行方式采用真正的數據驅動方式(Data-Driven),所謂數據驅動,就是指測試用例數據只有在測試用例執行的時候才會被讀取,而不會隨測試代碼、樁函數和測試驅動等等一起構建到最終的執行程序中。這樣的好處是
1)構建和執行速度快;
2)當被測對象未變動的情況下,對測試用例的輸入輸出參數進行修改,測試用例不需要重新編譯構建。
4. 測試結果驗證
測試用例執行完之后,VectorCAST 除了能對被測單元的實際return 值進行斷言以外,包括簡單類型和覆蓋結構體,還可以對它依賴關系中的變量結果值或其成員變量進行驗證,報告True或False 斷言結果。
5. 復雜度分析
測試用例執行結束之后,VectorCAST 會統計相關程序的圈復雜度,並自動生成報告。如下圖所示。
6. 測試報告
測試結束后,VectorCAST 自動生成詳細的測試報告,包括所有測試用例、測試用例輸入輸出數據、斷言結果、程序度量分析結果、不同覆蓋率報告和MC/DC 等價類分析矩陣。
集成測試
創提信息科技提供的VectorCAST 工具,除了測試單個函數或單元以外,還可以用於模塊集成測試,不同模塊直接的接口調用是否正確。主要體現在:
- 通過集成不同單元的測試用例,任意組合其執行順序和執行次數,以達到集成測試多個單元的目的
- 通過測試用例讓多個單元實際調用其它單元,以驗證相互調用接口的執行結果
- 直接根據頭文件生成測試用例,測試源碼未可見的庫函數的接口及功能
待續。。。
