本案例涉及人工智慧(Artificial Intelligence, AI)與生成式人工智慧(Generative Artificial Intelligence, GenAI)。比較程式碼表面比對、功能測試與不確定性衡量。
本案例依原書第 6 章的框架、範例或情境重組,並非原書正式案例研究。
傳統方式以完全比對或程式碼 BLEU 衡量文字重疊;CodeBLEU 再加入抽象語法樹(Abstract Syntax Tree, AST)的語法與語意特徵。功能型方法 pass@k 產生多個候選並檢查前 k 個是否至少一個通過單元測試。RepoExec 衡量儲存庫層級功能與相依使用,並以相依呼叫率(Dependency Invocation Rate, DIR)檢查是否使用既有函式庫。關鍵差異檢查(Critical Diff Check, CDC@1)評估版本特定補全、應用程式介面相容與參數一致;UnCert-CoT 則量化信心。
| 方法 | 評估重點 |
|---|---|
| 完全比對 | 是否與參考程式碼完全相同 |
| 程式碼 BLEU | n 元語法表面重疊 |
| CodeBLEU | 加入語法樹、語意與資料流訊號 |
| pass@k | 前 k 個候選至少一個通過單元測試 |
| RepoExec/DIR | 儲存庫功能與既有相依使用 |
| CDC@1 | 版本相容、語法與參數 |
| UnCert-CoT | 熵與機率差異所反映的不確定性 |
在 Excel 保存候選程式、編譯、單元測試、相依呼叫、版本、應用程式介面及安全檢查結果;AI 可彙整失敗原因。
原書沒有提供可直接計算的數據,因此不補造結果。
程式文字不同仍可能功能等價,因此執行測試比完全比對更接近實用性;但通過單元測試仍不代表安全、維護性或版本相容全部合格。
請依程式候選的編譯、單元測試、相依呼叫與版本相容證據評估功能;不得只因文字不同判定失敗。