# ✅ CHECKLIST TỔNG KẾT 3 THÁNG HỌC TESTER
### Dành cho người chuyển ngành — Tự đánh giá & theo dõi tiến độ

---

> 💡 **Hướng dẫn sử dụng:** Đánh dấu `[x]` vào ô checkbox khi bạn đã hoàn thành mục đó. Mục tiêu: hoàn thành **80%+** trước khi apply việc làm.

---

## 📚 PHẦN 1 — KIẾN THỨC LÝ THUYẾT CẦN NẮM

### 🔷 1.1 Quy trình phát triển phần mềm (SDLC & STLC)

| Hoàn thành | Nội dung cần nắm |
|:---:|---|
| [ ] | Hiểu các giai đoạn của SDLC: Requirement → Design → Development → Testing → Deployment → Maintenance |
| [ ] | Phân biệt được các mô hình: Waterfall, Agile, Scrum, Kanban |
| [ ] | Hiểu vai trò của Tester trong từng giai đoạn SDLC |
| [ ] | Nắm được STLC (Software Testing Life Cycle): 6 giai đoạn từ phân tích đến kết thúc |
| [ ] | Hiểu khái niệm Sprint trong Agile và cách team làm việc theo sprint |
| [ ] | Biết sự khác biệt giữa QA (Quality Assurance) và QC (Quality Control) |

---

### 🔷 1.2 Test Case & Kỹ thuật thiết kế kiểm thử

| Hoàn thành | Nội dung cần nắm |
|:---:|---|
| [ ] | Hiểu cấu trúc một test case đầy đủ: ID, Title, Precondition, Steps, Expected Result, Actual Result, Status |
| [ ] | Phân biệt Positive Test Case và Negative Test Case |
| [ ] | Nắm kỹ thuật **Equivalence Partitioning** (phân vùng tương đương) |
| [ ] | Nắm kỹ thuật **Boundary Value Analysis** (phân tích giá trị biên) |
| [ ] | Nắm kỹ thuật **Decision Table** (bảng quyết định) |
| [ ] | Biết **State Transition Testing** (kiểm thử chuyển trạng thái) |
| [ ] | Hiểu **Use Case Testing** và cách viết test case từ user story |
| [ ] | Biết cách ưu tiên test case (Priority: High / Medium / Low) |

---

### 🔷 1.3 Bug Report (Báo cáo lỗi)

| Hoàn thành | Nội dung cần nắm |
|:---:|---|
| [ ] | Hiểu cấu trúc bug report đầy đủ: ID, Title, Environment, Steps to Reproduce, Expected vs Actual, Severity, Priority, Attachments |
| [ ] | Phân biệt **Severity** (mức độ nghiêm trọng) và **Priority** (mức độ ưu tiên) |
| [ ] | Nắm các mức Severity: Critical, Major, Minor, Trivial |
| [ ] | Biết các trạng thái vòng đời của bug: New → Assigned → Fixed → Retest → Closed / Reopen |
| [ ] | Biết cách viết Steps to Reproduce rõ ràng, ngắn gọn, tái hiện được |
| [ ] | Biết cách đính kèm bằng chứng: screenshot, video, log |
| [ ] | Phân biệt Bug, Defect, Error, Failure — 4 khái niệm hay bị nhầm |

---

### 🔷 1.4 Các loại Testing cần biết

| Hoàn thành | Loại Testing | Mô tả ngắn đã hiểu |
|:---:|---|---|
| [ ] | **Functional Testing** | Kiểm tra chức năng có hoạt động đúng không |
| [ ] | **Non-Functional Testing** | Kiểm tra hiệu năng, bảo mật, khả năng dùng |
| [ ] | **Manual Testing** | Thực hiện kiểm thử bằng tay, không dùng script |
| [ ] | **Automation Testing** | Dùng tool/code để chạy test tự động |
| [ ] | **Smoke Testing** | Kiểm tra nhanh tính năng cơ bản sau mỗi build |
| [ ] | **Sanity Testing** | Kiểm tra nhanh 1 tính năng cụ thể sau khi fix bug |
| [ ] | **Regression Testing** | Kiểm tra lại toàn bộ sau khi có thay đổi code |
| [ ] | **Integration Testing** | Kiểm tra sự tương tác giữa các module |
| [ ] | **System Testing** | Kiểm tra toàn bộ hệ thống end-to-end |
| [ ] | **UAT (User Acceptance Testing)** | Người dùng xác nhận hệ thống đúng yêu cầu |
| [ ] | **Exploratory Testing** | Khám phá tự do, không dựa theo script cố định |
| [ ] | **API Testing** | Kiểm tra tầng API (request/response) |
| [ ] | **UI Testing** | Kiểm tra giao diện người dùng |
| [ ] | **Database Testing** | Kiểm tra dữ liệu tầng DB |
| [ ] | **Retesting** | Kiểm tra lại đúng bug đã được báo cáo và fix |
| [ ] | **Black Box Testing** | Test không cần biết code bên trong |
| [ ] | **White Box Testing** | Test dựa trên hiểu biết về code/cấu trúc |
| [ ] | **Grey Box Testing** | Kết hợp cả hai phương pháp trên |

---

### 🔷 1.5 Tài liệu & Khái niệm bổ sung

| Hoàn thành | Nội dung cần nắm |
|:---:|---|
| [ ] | Hiểu Test Plan là gì và bao gồm những phần nào |
| [ ] | Biết Test Strategy khác Test Plan như thế nào |
| [ ] | Hiểu khái niệm Test Coverage và Test Metrics |
| [ ] | Nắm được các nguyên tắc kiểm thử (7 Testing Principles) |
| [ ] | Hiểu khái niệm Requirement và cách đọc tài liệu yêu cầu |
| [ ] | Biết User Story và Acceptance Criteria là gì |
| [ ] | Nắm được khái niệm Test Environment và Test Data |

---

## 🛠️ PHẦN 2 — CÔNG CỤ CẦN THÀNH THẠO

### 🔧 2.1 Jira — Quản lý công việc & bug

| Hoàn thành | Kỹ năng cần có |
|:---:|---|
| [ ] | Tạo tài khoản và làm quen giao diện Jira Software |
| [ ] | Biết tạo Project, Board (Scrum / Kanban) |
| [ ] | Tạo và quản lý Issue: Epic, Story, Task, Bug |
| [ ] | Biết điền đầy đủ thông tin khi tạo bug: Priority, Assignee, Label, Component |
| [ ] | Sử dụng được Backlog, Sprint Board, Roadmap |
| [ ] | Biết filter và tìm kiếm issue bằng JQL cơ bản (ví dụ: `project = X AND status = "Open"`) |
| [ ] | Biết đính kèm file, screenshot vào issue |
| [ ] | Biết comment và tag người liên quan trong Jira |
| [ ] | Hiểu workflow của bug trên Jira: To Do → In Progress → Done |

---

### 🔧 2.2 SQL Cơ bản — Kiểm tra dữ liệu

| Hoàn thành | Kỹ năng cần có |
|:---:|---|
| [ ] | Cài đặt MySQL hoặc dùng online tool (DB Fiddle, SQLiteOnline) |
| [ ] | Hiểu cấu trúc bảng (Table), hàng (Row), cột (Column) |
| [ ] | Viết được câu lệnh `SELECT` cơ bản |
| [ ] | Dùng được `WHERE`, `AND`, `OR`, `NOT` để lọc dữ liệu |
| [ ] | Biết dùng `ORDER BY` và `LIMIT` |
| [ ] | Biết dùng `COUNT()`, `SUM()`, `MAX()`, `MIN()`, `AVG()` |
| [ ] | Biết dùng `LIKE`, `IN`, `BETWEEN`, `IS NULL` |
| [ ] | Hiểu `JOIN` cơ bản: INNER JOIN, LEFT JOIN |
| [ ] | Biết dùng `GROUP BY` và `HAVING` |
| [ ] | Thực hành kiểm tra dữ liệu sau khi thực hiện một tính năng |

**💡 Bài tập thực hành SQL:**
- [ ] Hoàn thành 20+ bài trên [SQLZoo](https://sqlzoo.net) hoặc [LeetCode SQL Easy](https://leetcode.com/problemset/database/)

---

### 🔧 2.3 Postman — API Testing

| Hoàn thành | Kỹ năng cần có |
|:---:|---|
| [ ] | Cài đặt Postman và tạo tài khoản |
| [ ] | Hiểu khái niệm API, HTTP Method: GET, POST, PUT, PATCH, DELETE |
| [ ] | Hiểu HTTP Status Code: 200, 201, 400, 401, 403, 404, 500 |
| [ ] | Biết các thành phần của một request: URL, Headers, Body, Params |
| [ ] | Tạo và gửi được request GET, POST trên Postman |
| [ ] | Biết đọc và phân tích Response (Body, Status, Time) |
| [ ] | Biết tổ chức request trong Collection và Folder |
| [ ] | Viết được Pre-request Script cơ bản |
| [ ] | Viết được Test Script kiểm tra status code và giá trị trong response |
| [ ] | Biết dùng Environment Variable (ví dụ: `{{base_url}}`, `{{token}}`) |
| [ ] | Biết Import/Export Collection để chia sẻ |
| [ ] | Thực hành với ít nhất 1 public API (ví dụ: [reqres.in](https://reqres.in), [jsonplaceholder](https://jsonplaceholder.typicode.com)) |

---

### 🔧 2.4 DevTools (Chrome Developer Tools)

| Hoàn thành | Kỹ năng cần có |
|:---:|---|
| [ ] | Mở DevTools bằng F12 hoặc Ctrl+Shift+I và quen giao diện |
| [ ] | **Tab Elements:** Inspect HTML/CSS, tìm element bị lỗi hiển thị |
| [ ] | **Tab Console:** Đọc được các lỗi JavaScript, warning |
| [ ] | **Tab Network:** Xem request/response của API khi dùng web |
| [ ] | Biết filter request theo: Fetch/XHR, JS, CSS, Img |
| [ ] | Biết đọc thông tin: Request URL, Method, Status Code, Response body |
| [ ] | Biết dùng Network tab để kiểm tra API giống như Postman |
| [ ] | **Tab Application:** Kiểm tra Cookies, LocalStorage, SessionStorage |
| [ ] | Biết chụp screenshot bằng DevTools (Capture screenshot) |
| [ ] | Biết dùng Device Mode để test giao diện trên màn hình mobile |
| [ ] | Biết Throttle Network để test hiệu năng trên mạng chậm |

---

### 🔧 2.5 Công cụ bổ sung (nên có)

| Hoàn thành | Công cụ | Mức độ cần thiết |
|:---:|---|:---:|
| [ ] | **Google Sheets / Excel** — Viết test case, quản lý bug list | ⭐⭐⭐⭐⭐ |
| [ ] | **TestRail hoặc Zephyr** — Tool quản lý test case chuyên nghiệp | ⭐⭐⭐⭐ |
| [ ] | **Notion / Confluence** — Viết tài liệu, test plan | ⭐⭐⭐⭐ |
| [ ] | **Git cơ bản** — Biết clone, pull, push, đọc được commit history | ⭐⭐⭐ |
| [ ] | **Slack / Teams** — Giao tiếp trong team | ⭐⭐⭐⭐⭐ |
| [ ] | **Figma** — Đọc design để so sánh với UI thực tế | ⭐⭐⭐ |
| [ ] | **Trello** — Kanban board đơn giản | ⭐⭐⭐ |

---

## 📁 PHẦN 3 — PORTFOLIO CẦN CÓ

> 🎯 **Mục tiêu:** Tạo portfolio thực tế để chứng minh năng lực với nhà tuyển dụng. Dùng app/web thật để thực hành (ví dụ: Shopee, Tiki, Momo, Facebook, hoặc project open-source).

---

### 📄 3.1 Test Plan

| Hoàn thành | Nội dung cần có trong Test Plan |
|:---:|---|
| [ ] | **Mục tiêu kiểm thử** — Test cái gì, tại sao test |
| [ ] | **Phạm vi kiểm thử** — In scope / Out of scope |
| [ ] | **Phương pháp kiểm thử** — Manual, API, UI, DB |
| [ ] | **Môi trường kiểm thử** — OS, browser, device, version |
| [ ] | **Lịch trình kiểm thử** — Timeline dự kiến |
| [ ] | **Tài nguyên** — Ai làm gì (ngay cả khi tự làm cũng ghi rõ) |
| [ ] | **Rủi ro và kế hoạch dự phòng** |
| [ ] | **Tiêu chí bắt đầu và kết thúc kiểm thử** (Entry/Exit Criteria) |
| [ ] | **Deliverables** — Các tài liệu sẽ được bàn giao |
| [ ] | Hoàn thiện ít nhất **1 Test Plan hoàn chỉnh** cho 1 dự án/tính năng cụ thể |

---

### 📝 3.2 Test Cases (30+ Test Case)

| Hoàn thành | Yêu cầu |
|:---:|---|
| [ ] | Có ít nhất **30 test case** cho 1 module/tính năng cụ thể |
| [ ] | Đa dạng: Positive case, Negative case, Edge case |
| [ ] | Mỗi test case có đủ: ID, Title, Module, Priority, Precondition, Steps, Expected Result |
| [ ] | Có test case cho **UI** (giao diện) |
| [ ] | Có test case cho **Functional** (chức năng) |
| [ ] | Có test case cho **API** (dùng Postman) |
| [ ] | Có test case cho **Database** (dùng SQL để verify data) |
| [ ] | Sắp xếp test case theo module, có phân loại Priority rõ ràng |
| [ ] | Đã **thực thi** test case và điền kết quả thực tế (Pass/Fail) |
| [ ] | Lưu trữ trên Google Sheets, Notion, hoặc TestRail |

**📌 Gợi ý tính năng để viết test case:**
```
✔ Đăng ký / Đăng nhập tài khoản
✔ Tìm kiếm sản phẩm
✔ Thêm vào giỏ hàng
✔ Thanh toán / Checkout
✔ Đổi mật khẩu
✔ Chức năng Upload file/ảnh
✔ Form liên hệ / Đặt lịch hẹn
```

---

### 🐛 3.3 Bug List (Danh sách lỗi)

| Hoàn thành | Yêu cầu |
|:---:|---|
| [ ] | Có ít nhất **10–15 bug thực tế** đã tìm thấy khi test |
| [ ] | Mỗi bug có đủ: ID, Title, Module, Severity, Priority, Status, Steps to Reproduce, Expected, Actual |
| [ ] | Có ít nhất **3 mức Severity** khác nhau trong danh sách |
| [ ] | Có đính kèm **screenshot hoặc video** minh họa |
| [ ] | Viết Steps to Reproduce rõ ràng, người khác có thể tái hiện được |
| [ ] | Bug list được lưu trên Jira hoặc Google Sheets |
| [ ] | Có cột **Note/Comment** ghi thêm thông tin quan trọng |
| [ ] | Có ghi **Environment** nơi tìm thấy bug (browser, OS, version...) |

---

### 📊 3.4 Test Report (Báo cáo kiểm thử)

| Hoàn thành | Nội dung cần có trong Test Report |
|:---:|---|
| [ ] | **Tóm tắt kiểm thử** — Tổng quan quá trình đã làm |
| [ ] | **Số liệu thực thi:** Tổng test case, Pass, Fail, Blocked, Not Run |
| [ ] | **Tỷ lệ đạt** — Pass Rate (%) |
| [ ] | **Danh sách bug tìm được** — Phân loại theo Severity |
| [ ] | **Phạm vi đã kiểm thử** — Tính năng/module nào đã được test |
| [ ] | **Những gì chưa test được và lý do** |
| [ ] | **Đánh giá rủi ro** — Có nên release không? |
| [ ] | **Kết luận và đề xuất** |
| [ ] | Hoàn thiện ít nhất **1 Test Report hoàn chỉnh** |

---

### 🌐 3.5 Trình bày Portfolio

| Hoàn thành | Hình thức trình bày |
|:---:|---|
| [ ] | Tổ chức tài liệu gọn gàng trên **Google Drive** có phân thư mục |
| [ ] | Tạo **GitHub repository** chứa test cases, bug list, báo cáo (dạng markdown hoặc file) |
| [ ] | Có **README.md** mô tả portfolio gồm những gì |
| [ ] | Cân nhắc tạo **trang Notion cá nhân** trình bày portfolio đẹp hơn |
| [ ] | Đảm bảo link chia sẻ **public** để nhà tuyển dụng xem được |
| [ ] | Đưa link portfolio vào **CV và LinkedIn** |

---

## 🚀 PHẦN 4 — BƯỚC TIẾP THEO SAU 3 THÁNG

### 💼 4.1 Apply Việc Làm

| Hoàn thành | Việc cần làm |
|:---:|---|
| [ ] | Viết **CV tiếng Việt** rõ ràng, tập trung vào kỹ năng và portfolio |
| [ ] | Viết **CV tiếng Anh** (nếu muốn apply công ty nước ngoài/outsource) |
| [ ] | Chuẩn bị **Cover Letter** cá nhân hóa theo từng vị trí |
| [ ] | Tối ưu hóa **LinkedIn profile**: ảnh đẹp, headline rõ, mô tả kỹ năng |
| [ ] | Tạo tài khoản và cập nhật hồ sơ trên: **ITviec, TopDev, VietnamWorks, Topcv** |
| [ ] | Apply ít nhất **10–15 vị trí** Junior Tester / QA trong tháng đầu |
| [ ] | Chuẩn bị trả lời các **câu hỏi phỏng vấn phổ biến** (xem danh sách bên dưới) |
| [ ] | Luyện tập **giải thích lý do chuyển ngành** một cách tự tin, tích cực |
| [ ] | Thực hành **test thử một app** trong phỏng vấn thực hành |
| [ ] | Không từ chối cơ hội **thực tập có lương** hoặc freelance nhỏ để tích kinh nghiệm |

**📋 Câu hỏi phỏng vấn cần chuẩn bị:**
```
1. Bạn hiểu Tester làm gì trong một sprint Agile?
2. Phân biệt Smoke Test và Sanity Test
3. Severity và Priority khác nhau như thế nào? Cho ví dụ
4. Quy trình bạn sẽ làm khi nhận một tính năng mới để test?
5. Bạn tìm thấy bug nhưng dev nói "không phải bug" — bạn xử lý thế nào?
6. Viết test case cho chức năng Quên mật khẩu
7. Bạn kiểm tra API bằng gì? Quy trình test API là gì?
8. Tại sao bạn chuyển sang ngành Testing?
9. Bạn ưu tiên test case như thế nào khi thời gian có hạn?
10. Test case tốt cần có những yếu tố gì?
```

---

### 👥 4.2 Tham Gia Cộng Đồng

| Hoàn thành | Hoạt động cộng đồng |
|:---:|---|
| [ ] | Tham gia group **"Cộng đồng Tester Việt Nam"** trên Facebook |
| [ ] | Tham gia group **"Software Testing & QA Vietnam"** trên Facebook |
| [ ] | Theo dõi các page/blog về testing: AITS, KMS Technology Blog, Viblo.asia |
| [ ] | Tạo tài khoản **Viblo.asia** và đọc bài về testing hàng tuần |
| [ ] | Kết nối với ít nhất **10 Tester/QA** trên LinkedIn |
| [ ] | Chủ động nhắn tin hỏi thăm, xin **mentorship** từ người có kinh nghiệm |
| [ ] | Tham gia ít nhất **1 buổi webinar hoặc meetup** về testing/QA |
| [ ] | Thử viết **1 bài chia sẻ** trên Viblo, LinkedIn, hoặc Facebook về hành trình học |
| [ ] | Theo dõi kênh YouTube về testing (Software Testing Mentor, Naveen AutomationLabs) |
| [ ] | Đăng ký nhận newsletter của **Ministry of Testing** |

---

### 📈 4.3 Kế Hoạch Phát Triển 3–6 Tháng Tiếp Theo

| Hoàn thành | Mục tiêu phát triển |
|:---:|---|
| [ ] | Học **Automation Testing** cơ bản: Selenium + Python hoặc Playwright |
| [ ] | Học **Performance Testing** cơ bản với JMeter hoặc k6 |
| [ ] | Học **Security Testing** cơ bản: OWASP Top 10 |
| [ ] | Cải thiện kỹ năng **SQL nâng cao**: Subquery, Index, Stored Procedure |
| [ ] | Học **API Automation** với Postman Newman hoặc RestAssured |
| [ ] | Tìm hiểu về **CI/CD** và cách tích hợp automation vào pipeline |
| [ ] | Cân nhắc thi chứng chỉ **ISTQB Foundation Level** |
| [ ] | Đặt mục tiêu **có việc làm trong vòng 3 tháng tiếp theo** |

---

## 📊 BẢNG TỔNG KẾT TIẾN ĐỘ

| Phần | Tổng mục | Đã hoàn thành | Tỷ lệ |
|---|:---:|:---:|:---:|
| Phần 1: Kiến thức lý thuyết | 38 | `___` | `___%` |
| Phần 2: Công cụ thành thạo | 46 | `___` | `___%` |
| Phần 3: Portfolio | 28 | `___` | `___%` |
| Phần 4: Bước tiếp theo | 30 | `___` | `___%` |
| **TỔNG CỘNG** | **142** | `___` | `___%` |

---

## 🏆 THANG ĐÁNH GIÁ

```
╔══════════════════════════════════════════════════════╗
║  < 40%   →  Cần học thêm, chưa sẵn sàng apply       ║
║  40–59%  →  Đang trên đà tốt, tiếp tục cố gắng      ║
║  60–79%  →  Có thể apply junior, vừa học vừa làm     ║
║  80–89%  →  Sẵn sàng apply tự tin, portfolio ổn      ║
║  90%+    →  Xuất sắc! Bạn đã sẵn sàng hoàn toàn  🎉 ║
╚══════════════════════════════════════════════════════╝
```

---

## 💬 LỜI NHẮN CUỐI

> *"Bạn không cần hoàn hảo để bắt đầu — bạn cần bắt đầu để tiến đến hoàn hảo."*
>
> Chuyển ngành không phải con đường dễ, nhưng Testing là một trong những ngành **thân thiện nhất với người trái ngành** vì nó coi trọng **tư duy logic, sự tỉ mỉ và tinh thần học hỏi** hơn là bằng cấp chuyên ngành.
>
> Checklist này là la bàn — **bạn mới là người cầm lái.** 🧭

---

*Cập nhật lần cuối: 2025 | Dành cho cộng đồng Tester Việt Nam 🇻🇳*