這是本人根據多年經驗提出的衡量C/C++單元測試工具能否勝任實際項目的技術指標,供需要評估單元測試工具的朋友們參考。
1、 自動隔離測試目標
a. 可根據測試工作,設定指定的檔案為測試目標;
b. 對於不測試,但可能大量依賴的檔案,可以設為調用實際代碼;
c. 對於不屬於a和b的檔案,自動產生樁代碼。
2、 自動產生測試代碼
a. 自動產生測試檔案,以及執行測試所需的代碼架構;
b. 自動為每個類、每個函數產生測試類別、測試函數;
c. 可以根據指定的資料,產生對應的輸入輸出代碼。
3、 自動表格化
a. 可以通過雙擊或類似的簡便操作,將資料移到表格中;
b. 可以在表格中建立、刪除、編輯用例。
4、 解決可測性問題
a. 可以在用例中直接設定底層函數的傳回值、輸出參數的值,以及底層函數所修改的全域變數的值;
b. 可以在用例中設定局部變數的值;
c. 對於a和b所設定的資料,可以移到表格中,與其他資料一起編輯和管理;
d. 可以判斷局部變數的計算結果是否符合預期。
5、 白盒覆蓋
a. 自動統計以下覆蓋率:語句覆蓋、條件覆蓋、分支覆蓋、C/DC、MC/DC、路徑覆蓋。
b. 未覆蓋的邏輯單位標示清晰:在代碼中標出未覆蓋的語句、條件值、判斷值、MC/DC;自動畫出程式的邏輯結構圖,標示未覆蓋的分支與路徑。
c. 提供協助找出遺漏用例的功能,例如,針對某個指定的未覆蓋單位,自動從現有用例中計算出最近似的用例,並提供修改提示,或類似的功能,以解決難於實現高標準覆蓋的問題。
6、 自動用例
a. 自動產生邊界測試案例,檢測崩潰、逾時等極端錯誤。
7、 測試報告
a. 自動產生測試報告;
b. 測試報告需包括以下內容:所有函數的覆蓋率資料;用例的代碼、每個用例的輸入與預期輸出、每個用例的實際輸出,並標示報錯的用例。
8、 支援邊開發邊測試,促進開發效率的提升
a. 當產品代碼修改時,同步更新測試代碼,自動執行測試;
b. 測試結果直觀地描述程式行為:輸入是什麼,該輸入下執行了哪些代碼,產生了什麼輸出。