AI 生成 Code 怎麼測 — Copilot / Cursor 寫的 Code 給 QA 的新挑戰
GitHub Copilot / Cursor / Claude Code 等 AI 工具產出的 code 風險與測試策略。Hallucination 模式、Security 漏洞、Edge case 漏洞、隱藏的相依性、QA 的新角色。
💡 本文原刊於 qa.9niche.com,2026-08 併入 9niche.com 懶人包,內容照原文完整搬遷。
目錄
1. 前言
「Dev 用 Copilot 寫 code 變 3 倍快、QA 接到的 bug 也變 5 倍多」 — 這是 2026 年大多公司的真實狀況。AI 寫 code 有它特有的 bug pattern、傳統 QA 方法抓不到。這篇給你新時代 framework。
2. AI 寫 code 風險地圖
3. 研究數據(2024-2025)
結論:AI 不是讓 code 變好、是讓寫 code 變快、bug 變多。QA 工作量爆增、不是減少。
4. 7 種 AI Code 特有 bug
1. 幻覺 API
// AI 寫的
import { useDebouncedCallback } from 'react-use';
const debouncedFn = useDebouncedCallback(handler, 500);
// 真實情況:'react-use' 沒有這 hook、是 use-debounce package 的
// → Build 過、runtime 爆
QA 對策:
- ESLint +
eslint-plugin-import抓不存在的 import - 跑 build 在 CI 上強制
2. 過時 library 用法
// AI 寫的 — 用 React 17 寫法
class MyComponent extends React.Component {
componentWillMount() { /* deprecated */ }
}
// React 18+ 已 deprecate
// 跑得起來但會 warning + 之後爆
QA 對策:
- 升級 deprecated API checker
- 看 console warnings
3. Security 漏洞
# AI 寫的
def search_users(query):
sql = f"SELECT * FROM users WHERE name LIKE '%{query}%'"
return db.execute(sql)
完美的 SQL Injection。AI 不會自動用 parameterized query。
QA 對策:
- SAST 工具(Semgrep / CodeQL)
- 跑 OWASP Top 10 測試(見 Security Testing)
4. Race condition
// AI 寫的
async function transferMoney(from, to, amount) {
const balance = await getBalance(from);
if (balance < amount) throw new Error('Insufficient');
await updateBalance(from, balance - amount);
await updateBalance(to, await getBalance(to) + amount);
}
沒 transaction、沒 lock、雙寫 race。
QA 對策:
- Concurrent test case
- 壓力測試(同時 100 個 request)
5. Edge case 漏
AI 寫 happy path 完美、邊界錯:
- 空陣列 / null / undefined
- 負數 / 零 / 極大值
- 字串含特殊字元
- 日期跨時區
QA 對策:
- 等價分割 + 邊界值 test
- Property-based testing(hypothesis / fast-check)
6. Error handling 不一致
// 同 codebase 同 dev 同 session 寫的兩個函式
async function fn1() {
try { return await api1(); }
catch (e) { throw new Error('API1 failed'); }
}
async function fn2() {
return await api2().catch(e => { console.log(e); return null; });
}
錯誤處理風格不一致、QA 測試行為差。
QA 對策:
- 強制 error handling 規範
- Test「失敗路徑」跟「成功路徑」一樣多
7. 隱藏依賴
AI 自動 npm install some-package、可能:
- 是 typosquatted package(typo 攻擊)
- 過期 / abandoned
- License 衝突(GPL → 商用問題)
QA 對策:
- Snyk / Socket.dev 掃 dependency
- Dependabot alerts
5. QA 在 AI-Driven Dev 的新角色
6. Vibe Coding 時代 — QA 是唯一懂 system 的人
QA 的新技能:用 AI 反過來「審查」AI 寫的 code。
7. CI 整合:AI Code 守門
name: AI Code Guard
on: [pull_request]
jobs:
ai-quality:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# 1. Lint - 抓幻覺 API、過時用法
- run: npx eslint --ext .ts,.tsx .
# 2. SAST - 抓 security 漏洞
- uses: github/codeql-action/init@v3
- uses: github/codeql-action/analyze@v3
- uses: returntocorp/semgrep-action@v1
# 3. Dependency scan
- uses: snyk/actions/node@master
# 4. Build - 確認 import 對
- run: npm run build
# 5. Test - 確認業務邏輯
- run: npm test
# 6. Coverage - 強制覆蓋
- run: npm run coverage
- run: |
COV=$(jq '.total.lines.pct' coverage/coverage-summary.json)
if (( $(echo "$COV < 80" | bc -l) )); then exit 1; fi
# 7. AI code review
- uses: anc95/ChatGPT-CodeReview@main
8. QA 該設的 PR 守門條件
✓ Build pass
✓ Lint 0 errors
✓ All tests pass
✓ Coverage > 80%
✓ Snyk 0 high/critical
✓ Semgrep 0 security finding
✓ CodeRabbit / AI review 沒 P0/P1
✓ Reviewer 至少 1 個 senior approve
這 8 個全綠才能 merge。
9. AI Code Review 工具
| 工具 | 用途 |
|---|---|
| CodeRabbit | PR 自動 AI review |
| Greptile | 跨 repo 理解的 AI review |
| Codium PR-Agent | Open source |
| Sourcery | Refactor 建議 |
| Sweep | 自動寫 fix code |
10. 反模式
11. 給 QA 的 5 句
- AI 寫 code 越普及、QA 越重要
- 每篇 AI code 都假設「有幻覺 + 有 security 漏洞」
- Coverage 不代表品質、要看 edge case 覆蓋
- 建 CI 8 個守門關卡
- 學會用 AI 審 AI 寫的 code
12. 最後
AI 寫 code 不會殺掉 QA、是讓 QA 變得更稀缺、薪資更高。從建 CI 8 個守門 + 學會用 AI 抓 AI 的 bug 開始、半年後你會變 dev team 不可缺的「品質最後防線」。
延伸:
相關連結
QA 該懂的應用安全測試。OWASP Top 10 一一解釋、每個漏洞怎麼測(手動 + 自動化)、Burp Suite / OWASP ZAP 入門、何時找 pentester。
QA 工程師的完整 AI 工具地圖。Coding Copilot、LLM Chat、AI 視覺迴歸、AI debugger、自動 PR review 各自適合什麼。實戰 workflow + 限制 + 紅線。
Self-healing test 完整指南。LLM 自動修壞掉的 selector、Mabl / Functionize 比較、自建方案、CI 整合、何時該用 / 不該用、與傳統 selector 策略對比。
相關懶人包
2026 QA 趨勢實戰:我看到的 5 個轉變(AI、Shift-Left、Observability)
從手動 QA 到 AI 輔助、從測試金字塔到測試獎盃。這篇分享我這 10+ 年看 QA 從「測完才知道」到「shift-left + AI」的真實觀察。
2026 QA 面試的 AI 題 — 12 題 + 答題框架(面試官想聽什麼)
2026 QA 面試新增一整類「你怎麼用 AI」的問題。這篇整理 12 個高頻 AI 面試題、每題附面試官真正想聽的點與答題框架,從「你用過哪些 AI 工具」到「AI 生的 test 怎麼信任」。
AI / LLM 功能 Spec Review — 幻覺 / 評估 / 成本 / 法遵 8 個必問
AI 功能 spec review 完整指南。LLM 不確定性處理、評估指標、Prompt versioning、成本控制、安全護欄、法遵(EU AI Act / GDPR)、Fallback、人工 review 流程。
一般聲明
本站提供之資訊僅供參考,不保證其完整性與正確性。使用者應自行判斷資訊之適用性。