| # | 特性 | 說明 |
|---|---|---|
| 1 | 即時類/函式測試 | 右鍵選單一鍵對單一單元進行白箱/黑箱測試 |
| 2 | 極限編程 (XP) 支援 | TDD 循環整合:先寫測試案例 → 產生骨架 → 實作 → 跑測試 |
| 3 | 自動建立驅動與樁 | 掃描 AST,自動生成測試主程式、Setup/Teardown、依賴樁函數 |
| 4 | 樁函數客製化 | 編輯器設定回傳值、副作用、呼叫驗證、甚至導向真實實作 |
| 5 | 白箱測試全自動 | 邊界值、等價類、條件覆蓋案例自動生成並執行 |
| 6 | 黑箱測試基礎集 | 依介面契約自動生成正向/負向/邊界案例,支援手工擴充 |
| 7 | 測試案例自動建立/執行 | Record/Play 雙模式,支援參數化資料驅動測試 |
| 8 | 回歸測試自動化 | CI 整合:每提交自動跑全量/增量測試,比對基準線 |
| 9 | 覆蓋率追蹤 | 語句/分支/MC/DC 覆蓋率,合併多次執行結果,趨勢圖表 |
| 10 | IDE 深度整合 | VS/Eclipse/VS Code/CLion 原生 UI,雙向導航程式碼與測試 |
| 效益 | 量化指標範例 |
|---|---|
| 即時驗證 | 編碼階段發現 60%+ 缺陷 (Shift Left) |
| 自動化釋放人力 | 驅動/樁/案例生成節省 70% 手工測試準備時間 |
| XP/TDD 落地 | 測試先行比例提升至 80%+,重構頻率增加 3x |
| 100% 覆蓋率可行 | 自動生成邊界案例 + 人工補強業務路徑,達成 DO-178C Level A |
| 緊急專案支援 | Legacy Code 無測試時,Record 白箱快速建立安全網 |
| 降低調試/維護成本 | 上線缺陷率降低 40%+,平均修復時間 (MTTR) 縮短 50% |
| 可靠度提升 | 關鍵模組零嚴重缺陷交付連續 10+ 版本 |
| 防止錯誤擴散 | 回歸測試攔截 90%+ 非預期行為變更 |
| 彈性合作模式 | 支援離線/線上、專案制/訂閱制、原始碼/二進制授權 |
| 管理量化儀表板 | 覆蓋率趨勢、缺陷密度、技術債指標、合規報告自動生成 |
TestDriver.cpp、Stubs.cpp、TestCases.tc。IDatabase::Query 生成 Stub_Query。Input: "SELECT * FROM users" → Output: prepared_result_setInput: "UPDATE ..." → Throw: ConnectionException// 針對 int Calculate(int a, int b) 的樁行為定義
// 格式:函式簽名 | 參數條件 | 動作 | 回傳/副作用
Calculate | a==0 && b==0 | RETURN | 0
Calculate | a>100 | THROW | std::overflow_error
Calculate | * | CALL_REAL | (呼叫真實實作)
支援條件運算式、序列回傳 (第 1 次回傳 1,第 2 次拋出例外)、副作用 (修改指標參數、設定全域旗標)。
C++test 的核心價值在於「自動化程度最高、合規支援最完整」。對於必須通過功能安全認證 (ISO 26262, DO-178C, IEC 61508) 的嵌入式團隊,它往往是「買時間、降風險」的最佳投資。對於一般應用層團隊,開源工具鏈已足夠強大;關鍵不在工具本身,而在於建立「測試優先、覆蓋率閘門、持續重構」的工程紀律。