這是本人根據多年經驗提出的衡量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. 測試結果直觀地描述程序行為:輸入是什麼,該輸入下執行了哪些代碼,產生了什麼輸出。