---
title: QA 面試 50 題 — 從初階到資深的常見題庫與回答框架
description: QA 工程師面試的 50 個高頻題目。分概念題、實戰題、行為題、技術題。附回答框架與爛答案 vs 好答案對比。
category: career
tags: [面試, 求職, qa, 職涯]
date: 2026-06-09
---

# QA 面試 50 題 — 從初階到資深的常見題庫與回答框架

跑過 30+ 場 QA 面試（兩邊都當過），整理出真正會被問的 50 題。**不是背答案**，是看了之後能用自己的話講出 framework。

## 一、概念題（10 題）

### 1. 什麼是 test case？跟 test scenario 差在哪？

**框架**：scope + 具體度。
- **Test scenario**：高階情境（「測試結帳流程」）
- **Test case**：可執行的步驟（precondition + steps + expected）
- 一個 scenario 通常拆成多個 case

### 2. 解釋等價分割（equivalence partitioning）

把輸入分群，群內挑一個代表測。例：年齡 0-17（未成年）、18-64（成年）、65+（老年）→ 各挑一個值。

### 3. 邊界值分析（boundary value analysis）

挑邊界 +/- 1 測。例：限制 1-100，挑 0、1、2、99、100、101。**最多 bug 藏這裡**。

### 4. Black box vs white box

- Black：只看輸入輸出，不看內部
- White：看 code 覆蓋（branch、line、condition coverage）
- QA 多 black、開發/SDET 多 white

### 5. 什麼時候用 unit / integration / E2E？

| 層級 | 多 | 快 | 抓什麼 bug |
|------|---|---|-----------|
| Unit | 多 | 快 | 邏輯錯誤 |
| Integration | 中 | 中 | 元件間契約 |
| E2E | 少 | 慢 | 真實使用者流程 |

**Testing pyramid**：底寬頂窄。

### 6. Smoke vs sanity vs regression

- **Smoke**：build 進來先跑、確認沒掛
- **Sanity**：修了某功能、確認那塊正常
- **Regression**：發版前全跑、確認舊功能沒壞

### 7. Flaky test 怎麼處理？

**框架**：找原因 > retry。
1. 重現：固定環境跑 10 次，看失敗率
2. 加 log / video / trace 找 race condition
3. 修：通常是 wait 條件錯、test data 衝突、外部依賴
4. **不要直接加 retry**，會蓋住問題

### 8. Test coverage 多少才夠？

100% 覆蓋率 ≠ 100% 沒 bug。看：
- 業務關鍵路徑覆蓋率（這個要追 100%）
- 行覆蓋率（80% 即可）
- 分支覆蓋率（70% 即可）
- **覆蓋率高不代表 case 寫得好**

### 9. Bug 跟 defect 跟 issue 差在哪？

實務上多半混用，但嚴謹講：
- **Defect**：實作不符合 spec
- **Bug**：執行時錯誤
- **Issue**：包含 defect/bug/UX 不佳/spec 不清楚

### 10. 解釋 shift-left testing

把測試左移（更早）到 spec/設計階段，而不是等開發完才測。spec review、design review、unit test 都是 shift-left。

---

## 二、實戰題（15 題）

### 11. 給你「登入功能」，列 10 個 test case

**好答案的拆法**：

- Happy path 1: 正確帳密登入
- 邊界 2-3: email 超長、密碼最小長度、空白前後
- 異常 2-3: 錯密碼、不存在帳號、被鎖定帳號
- 安全 2: SQL injection、XSS in email field
- UX 1-2: 記住我、忘記密碼連結
- 跨域 1: 不同瀏覽器/裝置 session

寫滿 10 個還能列下去 = 加分。

### 12. 怎麼測一個只有後端的 API？

```
1. 看 OpenAPI / Postman collection 確認 endpoint
2. 用 Postman / curl / pytest 測：
   - Happy path（正確 payload）
   - Schema 驗證（每個欄位的型別/必填）
   - 邊界值
   - 錯誤碼（400/401/403/404/500 各有對應情境）
   - Rate limit、auth、permission
3. 整合測試：API + DB 一致性
4. 效能：壓測（k6 / Locust）
```

### 13. 怎麼測一個翻譯/多語系功能？

- 文案完整性：每個 key 都有 12 語的翻譯嗎？
- 長度：德文常常比英文長 30%，UI 會被擠破嗎？
- 方向：阿拉伯文 RTL，整個排版會反嗎？
- 變數插值：`{name} 您好` 在日文是「{name}様」，順序對嗎？
- 複數：英文 `1 item` / `2 items`，中文沒複數，但俄文有 3 種
- 日期/時間/貨幣 format
- 切換語言後 URL、SEO（hreflang）

### 14. 怎麼測一個搜尋功能？

- 關鍵字：精確、部分、模糊、空字串、特殊字元、超長
- 語言：中英混合、繁簡、emoji
- 排序：相關度、時間、價格
- 篩選：多條件交集
- 分頁：邊界（第一頁、最後一頁、超過範圍）
- 效能：1 字元搜尋會抓爆 DB 嗎？
- 安全：injection
- 無結果頁面、loading 狀態

### 15. 怎麼測一個檔案上傳？

- 大小邊界：0 byte、最大 -1、最大、最大 +1、超大
- 格式：允許的、禁止的（.exe、.bat）、副檔名造假（jpg 改成 pdf）
- 數量：單檔、多檔、超過上限
- 網路：上傳中斷、慢速、timeout、重試
- 安全：含病毒檔案、ZIP bomb、超長檔名
- 後端：相同檔名衝突、儲存空間滿

### 16. 線上發生「某使用者反映無法登入」，怎麼 debug？

**框架**：reproduce → narrow down → root cause。

1. 問清楚：什麼錯誤訊息？什麼瀏覽器？什麼網路？什麼裝置？
2. 重現：能不能用同樣帳號重現
3. 看 log / monitoring：是不是只有他、哪個 step 卡住
4. 排除環境：清 cache、換瀏覽器、換網路
5. 縮小：是 API 401？前端沒處理？token 過期？
6. 報修，留證據（screenshot、HAR、log）

### 17. 突然全部測試都失敗，第一個動作是？

**不要懷疑自己的 case，先懷疑環境**。

1. 環境健康嗎？（API 通嗎、DB 通嗎、第三方通嗎）
2. 最近誰動了什麼？（git log、deploy log）
3. 跑單一 case 看錯誤訊息一致嗎
4. 確認是測試壞還是 product 壞

### 18. 怎麼測一個沒有 spec 的功能？

- 跟 PM / 開發訪談，自己寫一份 mini-spec
- 看舊版類似功能、看競品
- 跑探索性測試，發現一邊整理
- 把結果寫成 spec 給團隊 review，補強團隊知識

### 19. 一個 sprint 進來 20 個 user story，測不完怎辦？

**風險導向測試**。
1. 跟 PM 排優先級：哪幾個會影響營收 / 法遵 / 大量使用者
2. 高優先 + 高風險：full coverage
3. 低優先 + 低風險：smoke 即可
4. 對 PM/PM 攤開，要他選「砍 case」還是「延 sprint」，不要自己吞

### 20. 自動化測試什麼時候不該寫？

- 功能還在大改（每週都要改 case 維護成本爆）
- 一次性需求
- UI 極度動態（無法穩定 selector）
- ROI 低（手動 5 分鐘的，寫自動化 3 天）

### 21-25. 略，這幾題請依個人經驗回答

- 21. 講一次你找到的最有趣 bug
- 22. 講一次你跟開發吵架的經驗
- 23. 你寫過最自豪的 test plan
- 24. 你最大的 QA 失誤是什麼？學到什麼？
- 25. 介紹你最熟悉的測試框架

---

## 三、技術題（15 題）

### 26-30. 自動化框架

- 26. Playwright / Cypress / Selenium 差異？
- 27. Page Object Model 是什麼？解決什麼問題？
- 28. Fixture / Hook（beforeAll / beforeEach）的用法？
- 29. 怎麼處理測試之間的資料隔離？
- 30. Parallel 跑測試會遇到什麼問題？

### 31-35. CI / CD

- 31. 描述一條 CI pipeline 應該有什麼 stage
- 32. Test report 怎麼整合到 PR review？
- 33. 失敗的測試怎麼自動 retry？要嗎？
- 34. 怎麼分 smoke 跟 full regression 在不同時機跑？
- 35. Test environment 跟 prod 的差異要怎麼管理？

### 36-40. API / 後端

- 36. REST vs GraphQL 測試差異？
- 37. 怎麼測一個有 auth token 的 API？
- 38. mock 第三方 API 的策略？
- 39. 怎麼測 race condition？
- 40. DB 測試時用真實 DB 還是 mock？為什麼？

---

## 四、行為題（10 題）

回答用 **STAR**：Situation / Task / Action / Result。

### 41. 講一次你說服開發接受你的 bug

- S: 開發認為這不是 bug 是 spec 沒寫
- T: 我要讓他接受並修
- A: 我把 spec 模糊處列出來，找 PM 三方確認意圖，再用使用者場景說服
- R: 開發修了，PM 把 spec 補清楚

### 42. 你跟 PM/開發意見不合怎處理？

要點：先理解對方立場 → 用資料 / 案例佐證 → 找共同目標。不要陷入「你錯我對」。

### 43. 工作壓力大時你怎麼排優先級？

要點：跟主管確認目標、列風險、攤開來談取捨。

### 44. 你跟過最爛的工程文化？

**陷阱題**。不要罵前東家，講「我從中學到 XX」。

### 45-50. 略

- 45. 你怎麼跟新加入的 QA 帶？
- 46. 你會怎麼影響團隊文化？
- 47. 五年職涯規劃？
- 48. 對 AI 時代 QA 的看法？
- 49. 為什麼想離開上一份工作？
- 50. 你有什麼問題想問我們？

---

## 必問面試官的 3 題（很多人忘記）

1. **你們目前的 QA / Dev 比例？** （太低代表 QA 壓力大）
2. **release 流程怎麼跑？多久一次？hot fix 流程？**（看流程成熟度）
3. **過去半年最棘手的 production bug 怎處理的？**（聽 incident handling 成熟度）

---

## 最後

面試是雙向的。你**不是去考試**，是去看公司值不值得待。準備是基本，但保持「我也在挑你」的心態，反而能談到更好的待遇。
