# 🐛 BUG REPORT TEMPLATE — TESTER LOG

> **Hướng dẫn sử dụng:** Copy toàn bộ template bên dưới, điền thông tin vào các trường `[ ]` hoặc thay thế text mẫu. Template tương thích với Jira, Redmine, GitLab Issues, Azure DevOps.

---

## 📋 TEMPLATE TRẮNG (COPY & DÙNG)

```markdown
# 🐛 [BUG-XXX] Tiêu đề bug ngắn gọn, rõ ràng

---

## 1️⃣ THÔNG TIN CHUNG

| Trường          | Thông tin                          |
|-----------------|------------------------------------|
| **Bug ID**      | BUG-XXX                            |
| **Ngày phát hiện** | DD/MM/YYYY HH:MM               |
| **Người log**   | Họ tên / username                  |
| **Project**     | Tên project                        |
| **Module**      | Tên module / tính năng             |
| **Version/Build** | v1.0.0 / Build #XXX             |
| **Trạng thái**  | 🆕 New                             |
| **Assignee**    | Chưa assign / Tên dev              |

---

## 2️⃣ MÔ TẢ BUG

### 📌 Tiêu đề
> [Viết theo format: Màn hình/Tính năng + Hành động + Lỗi xảy ra]
> Ví dụ: "Màn hình Đăng nhập — Nhập đúng thông tin — Hệ thống báo lỗi sai mật khẩu"

### 📝 Mô tả ngắn
[Mô tả tổng quan về bug trong 2-3 câu. Nêu rõ:
- Lỗi xảy ra ở đâu?
- Lỗi xảy ra khi nào / trong điều kiện gì?
- Ảnh hưởng của lỗi là gì?]

---

## 3️⃣ MÔI TRƯỜNG TEST

| Trường                  | Chi tiết                            |
|-------------------------|-------------------------------------|
| **Hệ điều hành (OS)**   | Windows 11 / macOS 14 / iOS 17 / Android 13 |
| **Trình duyệt / App**   | Chrome v120.0 / Safari / App v2.3.1 |
| **Độ phân giải màn hình** | 1920x1080 / 390x844 (Mobile)      |
| **Môi trường**          | 🟡 Staging / 🔴 Production / 🟢 Dev |
| **URL / Endpoint**      | https://staging.example.com/login   |
| **Tài khoản test**      | Email: test@example.com / Role: User|
| **Dữ liệu test**        | [Mô tả data dùng để test nếu có]   |
| **Network**             | WiFi / 4G / VPN (nếu liên quan)    |

---

## 4️⃣ BƯỚC TÁI HIỆN (STEPS TO REPRODUCE)

> **Tỉ lệ tái hiện:** 🔴 100% / 🟡 Thỉnh thoảng (~XX%) / 🟢 Khó tái hiện

**Điều kiện tiên quyết (Preconditions):**
- [ ] Đã có tài khoản active trong hệ thống
- [ ] Trình duyệt đã xóa cache và cookies
- [ ] [Điều kiện khác nếu có]

**Các bước thực hiện:**

1. Mở trình duyệt và truy cập URL: `https://staging.example.com`
2. Click vào button **[Tên button]** / Điều hướng đến **[Tên màn hình]**
3. Nhập thông tin vào field **[Tên field]**: `[Giá trị nhập vào]`
4. Click button **[Submit / Tiếp theo / ...]**
5. Quan sát kết quả hiển thị

---

## 5️⃣ KẾT QUẢ

### ❌ Kết quả thực tế (Actual Result)
> [Mô tả chính xác những gì xảy ra sau khi thực hiện các bước trên.
> Bao gồm: thông báo lỗi cụ thể, hành vi bất thường, màn hình trắng, crash...]

**Thông báo lỗi hiển thị (nếu có):**
```
[Paste chính xác nội dung error message tại đây]
```

### ✅ Kết quả mong đợi (Expected Result)
> [Mô tả những gì LẼ RA phải xảy ra theo đúng spec / business logic.
> Tham chiếu đến tài liệu spec nếu có.]

**Tham chiếu spec/requirement:** [Link hoặc ID ticket requirement]

---

## 6️⃣ MỨC ĐỘ NGHIÊM TRỌNG (SEVERITY)

> Severity đánh giá **mức độ ảnh hưởng kỹ thuật** của bug lên hệ thống.

- [ ] 🔴 **Critical** — Hệ thống crash / Mất dữ liệu / Lỗ hổng bảo mật nghiêm trọng / Không thể tiếp tục sử dụng
- [ ] 🟠 **High** — Tính năng chính bị hỏng hoàn toàn, không có workaround, ảnh hưởng nhiều user
- [ ] 🟡 **Medium** — Tính năng bị lỗi một phần, có workaround tạm thời, ảnh hưởng một số user
- [ ] 🟢 **Low** — Lỗi nhỏ về UI/UX, chính tả, không ảnh hưởng đến chức năng chính

**Severity được chọn:** 🔴 Critical / 🟠 High / 🟡 Medium / 🟢 Low

**Lý do:** [Giải thích tại sao chọn mức độ này]

---

## 7️⃣ ĐỘ ƯU TIÊN XỬ LÝ (PRIORITY)

> Priority đánh giá **mức độ khẩn cấp** cần fix theo góc độ business.

- [ ] 🔴 **High** — Cần fix ngay lập tức, block release hoặc ảnh hưởng production
- [ ] 🟡 **Medium** — Cần fix trong sprint hiện tại hoặc sprint tiếp theo
- [ ] 🟢 **Low** — Có thể lên kế hoạch fix sau, không ảnh hưởng deadline

**Priority được chọn:** 🔴 High / 🟡 Medium / 🟢 Low

**Lý do:** [Giải thích mức độ ưu tiên theo business impact]

---

## 8️⃣ FILE ĐÍNH KÈM

| Loại file       | Tên file                     | Mô tả                              |
|-----------------|------------------------------|------------------------------------|
| 📸 Screenshot   | screenshot_bug_XXX_01.png    | [Mô tả nội dung ảnh]               |
| 📸 Screenshot   | screenshot_bug_XXX_02.png    | [So sánh expected vs actual]       |
| 🎬 Video        | recording_bug_XXX.mp4        | [Video quay lại các bước tái hiện] |
| 📄 Log file     | console_log_bug_XXX.txt      | [Browser console / Server log]     |
| 📄 HAR file     | network_bug_XXX.har          | [Network request/response]         |

> **Lưu ý:** Ẩn thông tin nhạy cảm (password, token, PII) trước khi đính kèm file.

---

## 9️⃣ GHI CHÚ BỔ SUNG

### 🔗 Liên quan đến
- **Ticket liên quan:** BUG-XXX, TASK-XXX
- **Test Case ID:** TC-XXX
- **Commit/PR liên quan:** [Link nếu đã biết]

### 💡 Gợi ý nguyên nhân (nếu có)
> [Tester có thể gợi ý nguyên nhân kỹ thuật nếu có kiến thức, không bắt buộc]

### 🔄 Lịch sử cập nhật

| Ngày       | Người cập nhật | Nội dung thay đổi              |
|------------|----------------|--------------------------------|
| DD/MM/YYYY | [Tên]          | Tạo mới bug report             |
| DD/MM/YYYY | [Tên]          | [Cập nhật thông tin / trạng thái] |

### 📎 Ghi chú thêm
> [Bất kỳ thông tin nào hữu ích khác: workaround tạm thời, context đặc biệt, 
> tần suất xảy ra, phản hồi từ user thực tế...]
```

---

---

## 📝 VÍ DỤ ĐIỀN SẴN — BUG ĐĂNG NHẬP

```markdown
# 🐛 [BUG-042] Màn hình Đăng nhập — Nhập đúng thông tin — Hệ thống trả về lỗi "Sai mật khẩu"

---

## 1️⃣ THÔNG TIN CHUNG

| Trường            | Thông tin                        |
|-------------------|----------------------------------|
| **Bug ID**        | BUG-042                          |
| **Ngày phát hiện**| 15/01/2025 14:30                 |
| **Người log**     | Nguyễn Thị Lan / @lan.nguyen     |
| **Project**       | E-Commerce Portal v2             |
| **Module**        | Authentication — Đăng nhập       |
| **Version/Build** | v2.1.3 / Build #2024011501       |
| **Trạng thái**    | 🆕 New                           |
| **Assignee**      | Chưa assign                      |

---

## 2️⃣ MÔ TẢ BUG

### 📌 Tiêu đề
> Màn hình Đăng nhập — Nhập đúng email và mật khẩu — Hệ thống hiển thị thông báo "Mật khẩu không chính xác" và không cho phép đăng nhập

### 📝 Mô tả ngắn
Tại màn hình đăng nhập (`/login`), khi người dùng nhập đúng email và mật khẩu đã đăng ký, hệ thống trả về thông báo lỗi **"Mật khẩu không chính xác. Vui lòng thử lại."** thay vì cho phép đăng nhập thành công.

Lỗi xảy ra **100% các lần** với tài khoản `testuser@gmail.com` kể từ sau bản deploy Build #2024011501 lúc 10:00 AM hôm nay. Các tài khoản khác chưa kiểm tra toàn bộ nhưng đã xác nhận thêm 2 tài khoản bị ảnh hưởng tương tự.

Lỗi này **block hoàn toàn** luồng đăng nhập, khiến người dùng không thể truy cập hệ thống.

---

## 3️⃣ MÔI TRƯỜNG TEST

| Trường                    | Chi tiết                                        |
|---------------------------|-------------------------------------------------|
| **Hệ điều hành (OS)**     | Windows 11 Pro (22H2) + macOS Sonoma 14.2       |
| **Trình duyệt / App**     | Chrome v120.0.6099.130 + Firefox v121.0         |
| **Độ phân giải màn hình** | 1920x1080                                       |
| **Môi trường**            | 🟡 Staging                                      |
| **URL / Endpoint**        | https://staging.ecommerce-portal.com/login      |
| **Tài khoản test**        | Email: `testuser@gmail.com` / Pass: `Test@123#` |
| **Dữ liệu test**          | Tài khoản đã active, đã verify email, role: Customer |
| **Network**               | WiFi công ty (không dùng VPN)                   |

> ⚠️ **Đã test chéo môi trường:** Lỗi xảy ra trên cả Chrome và Firefox, cả Windows lẫn macOS → Loại trừ vấn đề từ phía client.

---

## 4️⃣ BƯỚC TÁI HIỆN (STEPS TO REPRODUCE)

> **Tỉ lệ tái hiện:** 🔴 100% (Đã test 10/10 lần)

**Điều kiện tiên quyết (Preconditions):**
- [x] Tài khoản `testuser@gmail.com` đã tồn tại và ở trạng thái Active trong hệ thống
- [x] Tài khoản đã được verify email
- [x] Đã xóa cache, cookies trình duyệt trước khi test
- [x] Không có phiên đăng nhập nào đang mở

**Các bước thực hiện:**

1. Mở trình duyệt Chrome, truy cập URL: `https://staging.ecommerce-portal.com/login`
2. Tại field **"Email"**, nhập: `testuser@gmail.com`
3. Tại field **"Mật khẩu"**, nhập: `Test@123#`
   *(Đây là mật khẩu đúng đã được xác nhận từ DB + đăng nhập thành công trước bản deploy)*
4. Click button **"Đăng nhập"** màu xanh
5. Quan sát phản hồi của hệ thống

---

## 5️⃣ KẾT QUẢ

### ❌ Kết quả thực tế (Actual Result)
Sau khi click **"Đăng nhập"**, hệ thống hiển thị thông báo lỗi màu đỏ ngay bên dưới form trong khoảng **2-3 giây** và người dùng **không được chuyển đến màn hình Home**.

Field mật khẩu bị xóa trắng. Tài khoản không bị lock sau nhiều lần thử (không có cơ chế brute-force protection hoạt động).

**Thông báo lỗi hiển thị:**
```
Mật khẩu không chính xác. Vui lòng thử lại.
(Còn 4 lần thử trước khi tài khoản bị khóa)
```

**Response từ Network tab (F12):**
```json
POST /api/v2/auth/login
Status: 401 Unauthorized

Response Body:
{
  "success": false,
  "error_code": "INVALID_CREDENTIALS",
  "message": "Password does not match",
  "remaining_attempts": 4
}
```

### ✅ Kết quả mong đợi (Expected Result)
Sau khi click **"Đăng nhập"** với thông tin hợp lệ, hệ thống phải:
1. Trả về HTTP `200 OK` với access token hợp lệ
2. Lưu session / token vào cookie hoặc localStorage
3. Redirect người dùng đến trang **Home** (`/dashboard`)
4. Hiển thị thông báo chào mừng: *"Chào mừng bạn trở lại, [Tên user]!"*

**Tham chiếu spec/requirement:** [SPEC-AUTH-003 — Luồng đăng nhập bằng email/password](https://confluence.example.com/spec/AUTH-003)

---

## 6️⃣ MỨC ĐỘ NGHIÊM TRỌNG (SEVERITY)

- [x] 🔴 **Critical** — Hệ thống crash / Mất dữ liệu / Lỗ hổng bảo mật nghiêm trọng / Không thể tiếp tục sử dụng
- [ ] 🟠 **High**
- [ ] 🟡 **Medium**
- [ ] 🟢 **Low**

**Severity được chọn:** 🔴 **Critical**

**Lý do:** Lỗi xảy ra 100% trên tính năng cốt lõi nhất của hệ thống — Đăng nhập. Người dùng hoàn toàn không thể truy cập vào hệ thống, block toàn bộ các tính năng phía sau (mua hàng, quản lý đơn hàng, v.v.). Không có workaround nào khả thi cho end-user.

---

## 7️⃣ ĐỘ ƯU TIÊN XỬ LÝ (PRIORITY)

- [x] 🔴 **High** — Cần fix ngay lập tức, block release hoặc ảnh hưởng production
- [ ] 🟡 **Medium**
- [ ] 🟢 **Low**

**Priority được chọn:** 🔴 **High**

**Lý do:** Lỗi xảy ra trên môi trường Staging sau bản deploy mới nhất. Nếu bản này được promote lên Production, toàn bộ user thực sẽ bị ảnh hưởng và không thể đăng nhập. Cần **rollback hoặc hotfix ngay** trước release window 17:00 hôm nay.

---

## 8️⃣ FILE ĐÍNH KÈM

| Loại file     | Tên file                              | Mô tả                                                         |
|---------------|---------------------------------------|---------------------------------------------------------------|
| 📸 Screenshot | `BUG042_01_login_form.png`            | Màn hình form đăng nhập với thông tin đã điền                 |
| 📸 Screenshot | `BUG042_02_error_message.png`         | Thông báo lỗi hiển thị sau khi click Đăng nhập               |
| 📸 Screenshot | `BUG042_03_network_401.png`           | Network tab F12 — Request/Response 401 Unauthorized           |
| 📸 Screenshot | `BUG042_04_expected_success.png`      | Ảnh chụp đăng nhập thành công từ bản build trước (tham chiếu)|
| 🎬 Video      | `BUG042_recording_steps.mp4`          | Video quay lại toàn bộ 5 bước tái hiện lỗi (thời lượng: 45s) |
| 📄 Log file   | `BUG042_browser_console.txt`          | Console log từ Chrome DevTools — không có JS error            |
| 📄 HAR file   | `BUG042_network_requests.har`         | Toàn bộ network request trong phiên test                      |

> ⚠️ **Đã ẩn:** Mật khẩu thực trong ảnh đã được blur. Token trong HAR file đã được replace bằng `[REDACTED]`.

---

## 9️⃣ GHI CHÚ BỔ SUNG

### 🔗 Liên quan đến
- **Ticket requirement:** [SPEC-AUTH-003](https://confluence.example.com/spec/AUTH-003)
- **Test Case ID:** TC-LOGIN-005, TC-LOGIN-006, TC-LOGIN-007
- **Deploy ticket:** DEPLOY-2025-0115 (Deploy lúc 10:00 AM hôm nay)
- **Ticket liên quan:** BUG-038 (Lỗi tương tự về password hashing tháng trước — đã fix, có thể regression)

### 💡 Gợi ý nguyên nhân (nếu có)
> Dựa trên lịch sử BUG-038, nghi ngờ lỗi liên quan đến thuật toán **hash mật khẩu** (bcrypt salt rounds thay đổi) trong bản build mới, hoặc connection tới **Auth Service** bị sai config sau deploy. Dev team có thể kiểm tra file `auth.config.js` và migration script trong commit mới nhất.

### ⚡ Workaround tạm thời
> Hiện **chưa có workaround** cho end-user. Admin có thể thử reset mật khẩu từ phía backend, tuy nhiên chưa confirm workaround này hoạt động.

### 🔄 Lịch sử cập nhật

| Ngày            | Người cập nhật    | Nội dung thay đổi                                      |
|-----------------|-------------------|--------------------------------------------------------|
| 15/01/2025 14:30| Nguyễn Thị Lan    | Tạo mới bug report                                     |
| 15/01/2025 14:45| Nguyễn Thị Lan    | Bổ sung HAR file và network response chi tiết          |
| 15/01/2025 15:00| Nguyễn Thị Lan    | Xác nhận thêm 2 tài khoản bị ảnh hưởng — cập nhật mô tả|

### 📎 Ghi chú thêm
> - Lỗi **chỉ xảy ra sau bản deploy 10:00 AM** hôm nay. Đã test lại với bản build cũ (Build #2024011401) → đăng nhập thành công bình thường → Xác nhận đây là **regression bug**.
> - Đã thông báo ngay cho **Lead Dev Trần Văn Minh** qua Slack lúc 14:35 và **PM Lê Thu Hương** lúc 14:40.
> - **Đề xuất:** Xem xét rollback về Build #2024011401 ngay lập tức trong khi điều tra nguyên nhân gốc rễ.
```

---

---

## 📊 BẢNG THAM CHIẾU NHANH — SEVERITY VS PRIORITY

```markdown
## SEVERITY vs PRIORITY — HƯỚNG DẪN PHÂN LOẠI

### Severity (Mức độ kỹ thuật)

| Severity | Định nghĩa                        | Ví dụ                                              |
|----------|-----------------------------------|----------------------------------------------------|
| 🔴 Critical | Hệ thống không dùng được        | Không đăng nhập được, crash app, mất dữ liệu       |
| 🟠 High  | Tính năng chính hỏng hoàn toàn   | Không thể thanh toán, upload file bị lỗi 100%      |
| 🟡 Medium | Tính năng lỗi một phần           | Filter tìm kiếm không hoạt động, phân trang sai    |
| 🟢 Low   | Lỗi nhỏ, không ảnh hưởng luồng  | Typo, màu sắc sai, icon bị lệch 2px               |

### Priority (Mức độ kinh doanh)

| Priority | Định nghĩa                        | Timeline xử lý                   |
|----------|-----------------------------------|----------------------------------|
| 🔴 High  | Block release / Production down   | Fix ngay trong ngày, hotfix       |
| 🟡 Medium | Ảnh hưởng UX đáng kể            | Fix trong sprint hiện tại (1-2 tuần) |
| 🟢 Low   | Cải thiện nhỏ                     | Backlog, fix khi có thời gian     |

### Ma trận Severity vs Priority phổ biến

|                  | Critical      | High          | Medium        | Low           |
|------------------|---------------|---------------|---------------|---------------|
| **Production**   | P-High        | P-High        | P-Medium      | P-Low         |
| **Staging**      | P-High        | P-Medium      | P-Medium      | P-Low         |
| **Dev**          | P-Medium      | P-Medium      | P-Low         | P-Low         |

> 💡 **Lưu ý:** Severity do Tester đánh giá về kỹ thuật.
> Priority do PM/Lead quyết định dựa trên business impact.
> Tester có thể đề xuất Priority nhưng PM có quyền override.
```

---

---

## ✅ CHECKLIST TRƯỚC KHI SUBMIT BUG

```markdown
## CHECKLIST — KIỂM TRA TRƯỚC KHI SUBMIT

### Nội dung Bug Report
- [ ] Tiêu đề rõ ràng, đọc xong biết ngay lỗi gì, ở đâu
- [ ] Mô tả đủ ngắn gọn nhưng không thiếu thông tin quan trọng
- [ ] Thông tin môi trường test đầy đủ (OS, Browser, Version)
- [ ] URL / Endpoint cụ thể đã được ghi rõ
- [ ] Tài khoản test đã ghi (và đã thông báo riêng mật khẩu nếu cần bảo mật)
- [ ] Steps to Reproduce rõ ràng, ai cũng tái hiện được
- [ ] Đã ghi Preconditions nếu cần điều kiện đặc biệt
- [ ] Actual Result mô tả chính xác những gì thấy (kể cả error message)
- [ ] Expected Result tham chiếu đúng spec/requirement
- [ ] Severity và Priority đã chọn + có lý do giải thích
- [ ] Đã đính kèm ít nhất 1 screenshot hoặc video
- [ ] File đính kèm đã ẩn thông tin nhạy cảm

### Trước khi tạo ticket mới
- [ ] Đã search để tránh duplicate bug
- [ ] Đã tái hiện lỗi ít nhất 2-3 lần để xác nhận
- [ ] Đã test trên nhiều browser/device nếu liên quan đến UI
- [ ] Đã kiểm tra xem có phải lỗi của môi trường/data không
- [ ] Đã thông báo cho team nếu là bug Critical/High nghiêm trọng
```