# Template Test Case: Tính Năng Đăng Nhập Gmail

## Thông Tin Dự Án

| Thông tin | Chi tiết |
|-----------|----------|
| **Dự án** | Gmail - Google Mail Service |
| **Tính năng** | Đăng nhập (Login) |
| **Phiên bản** | 1.0 |
| **Người tạo** | QA Team |
| **Ngày tạo** | 2025-01-15 |
| **Môi trường** | Chrome 120+, Firefox 121+, Safari 17+ |
| **URL test** | https://mail.google.com |
| **Cập nhật lần cuối** | 2025-01-15 |

---

## Tài Khoản Test Mẫu

| Loại tài khoản | Email | Mật khẩu | Ghi chú |
|----------------|-------|-----------|---------|
| Hợp lệ - Thông thường | testuser.qa@gmail.com | Test@12345! | Tài khoản test chính |
| Hợp lệ - Admin | admin.test.qa@gmail.com | Admin@9876! | Tài khoản quyền cao |
| Không tồn tại | notexist.xyz123@gmail.com | BatKy@123 | Email chưa đăng ký |
| Bị khóa | locked.account@gmail.com | Lock@5678! | Tài khoản bị suspend |
| Xác thực 2 bước | twofactor.test@gmail.com | TwoFA@321! | Bật 2FA |

---

## Bảng Test Case

| Test Case ID | Mô tả | Điều kiện tiên quyết | Các bước thực hiện | Kết quả mong đợi | Kết quả thực tế | Pass/Fail | Ghi chú |
|---|---|---|---|---|---|---|---|
| **TC_LOGIN_001** | Đăng nhập thành công với email và mật khẩu hợp lệ | - Trình duyệt Chrome đã mở<br>- Tài khoản `testuser.qa@gmail.com` tồn tại và hoạt động<br>- Chưa đăng nhập | 1. Truy cập `https://mail.google.com`<br>2. Nhập email: `testuser.qa@gmail.com`<br>3. Nhấn **Tiếp theo**<br>4. Nhập mật khẩu: `Test@12345!`<br>5. Nhấn **Tiếp theo** | - Đăng nhập thành công<br>- Chuyển hướng đến trang Hộp thư đến<br>- Hiển thị tên người dùng ở góc trên phải<br>- URL thay đổi thành `https://mail.google.com/mail/u/0/#inbox` | _(Để trống)_ | _(Để trống)_ | Happy Path |
| **TC_LOGIN_002** | Đăng nhập với mật khẩu sai | - Tài khoản `testuser.qa@gmail.com` tồn tại<br>- Chưa đăng nhập | 1. Truy cập `https://mail.google.com`<br>2. Nhập email: `testuser.qa@gmail.com`<br>3. Nhấn **Tiếp theo**<br>4. Nhập mật khẩu: `SaiMatKhau123`<br>5. Nhấn **Tiếp theo** | - Đăng nhập thất bại<br>- Hiển thị thông báo lỗi: _"Mật khẩu không đúng. Vui lòng thử lại hoặc nhấn Quên mật khẩu để đặt lại."_<br>- Trường mật khẩu bị xóa, người dùng vẫn ở trang nhập mật khẩu<br>- Không chuyển hướng | _(Để trống)_ | _(Để trống)_ | Invalid Input |
| **TC_LOGIN_003** | Đăng nhập với email không tồn tại trong hệ thống | - Trình duyệt đã mở<br>- Chưa đăng nhập | 1. Truy cập `https://mail.google.com`<br>2. Nhập email: `notexist.xyz123@gmail.com`<br>3. Nhấn **Tiếp theo** | - Hiển thị thông báo lỗi: _"Không thể tìm thấy Tài khoản Google của bạn"_<br>- Gợi ý tạo tài khoản mới<br>- Không chuyển sang bước nhập mật khẩu | _(Để trống)_ | _(Để trống)_ | Invalid Input |
| **TC_LOGIN_004** | Đăng nhập với trường email để trống | - Trình duyệt đã mở<br>- Chưa đăng nhập | 1. Truy cập `https://mail.google.com`<br>2. Để trống trường email<br>3. Nhấn **Tiếp theo** | - Hiển thị thông báo validation: _"Hãy nhập địa chỉ email hoặc số điện thoại"_<br>- Trường email được highlight màu đỏ<br>- Không chuyển sang bước tiếp theo | _(Để trống)_ | _(Để trống)_ | Invalid Input |
| **TC_LOGIN_005** | Đăng nhập với trường mật khẩu để trống | - Email `testuser.qa@gmail.com` đã được nhập hợp lệ<br>- Đang ở trang nhập mật khẩu | 1. Tại trang nhập mật khẩu<br>2. Để trống trường mật khẩu<br>3. Nhấn **Tiếp theo** | - Hiển thị thông báo validation: _"Hãy nhập mật khẩu"_<br>- Trường mật khẩu được highlight màu đỏ<br>- Không thực hiện đăng nhập | _(Để trống)_ | _(Để trống)_ | Invalid Input |
| **TC_LOGIN_006** | Đăng nhập với email sai định dạng (thiếu @) | - Trình duyệt đã mở<br>- Chưa đăng nhập | 1. Truy cập `https://mail.google.com`<br>2. Nhập email: `testuserqagmail.com` _(thiếu @)_<br>3. Nhấn **Tiếp theo** | - Hiển thị thông báo lỗi định dạng email<br>- Không chuyển sang bước nhập mật khẩu<br>- Người dùng được yêu cầu nhập lại email đúng định dạng | _(Để trống)_ | _(Để trống)_ | Invalid Input |
| **TC_LOGIN_007** | Đăng nhập với email sai định dạng (thiếu domain) | - Trình duyệt đã mở<br>- Chưa đăng nhập | 1. Truy cập `https://mail.google.com`<br>2. Nhập email: `testuser.qa@`<br>3. Nhấn **Tiếp theo** | - Hiển thị thông báo lỗi: _"Địa chỉ email không hợp lệ"_<br>- Trường email được highlight lỗi<br>- Không chuyển sang bước tiếp theo | _(Để trống)_ | _(Để trống)_ | Invalid Input |
| **TC_LOGIN_008** | Chức năng hiển thị / ẩn mật khẩu (Show/Hide Password) | - Email hợp lệ đã được nhập<br>- Đang ở trang nhập mật khẩu | 1. Nhập mật khẩu: `Test@12345!`<br>2. Nhấn icon **Hiện mật khẩu** (hình mắt 👁)<br>3. Quan sát mật khẩu<br>4. Nhấn lại icon để ẩn | - Bước 2: Mật khẩu hiển thị dạng text rõ ràng: `Test@12345!`<br>- Bước 4: Mật khẩu chuyển về dạng ẩn `••••••••••`<br>- Giá trị mật khẩu không thay đổi trong cả hai trạng thái | _(Để trống)_ | _(Để trống)_ | Happy Path |
| **TC_LOGIN_009** | Chức năng "Quên mật khẩu" - Điều hướng đúng trang | - Đang ở trang nhập mật khẩu của tài khoản `testuser.qa@gmail.com` | 1. Tại trang nhập mật khẩu<br>2. Nhấn link **Quên mật khẩu** | - Chuyển hướng đến trang khôi phục tài khoản Google<br>- URL chứa `accounts.google.com/signin/recovery`<br>- Hiển thị các tùy chọn khôi phục: email khôi phục, số điện thoại | _(Để trống)_ | _(Để trống)_ | Happy Path |
| **TC_LOGIN_010** | Khóa tài khoản sau nhiều lần đăng nhập sai liên tiếp | - Tài khoản `testuser.qa@gmail.com` đang hoạt động bình thường<br>- Chưa có lần đăng nhập sai nào gần đây | 1. Nhập email: `testuser.qa@gmail.com` → Nhấn **Tiếp theo**<br>2. Nhập sai mật khẩu: `Sai1` → Nhấn **Tiếp theo**<br>3. Lặp lại bước nhập sai mật khẩu thêm 4 lần nữa (tổng 5 lần sai) | - Sau lần thứ 5: Hiển thị thông báo tài khoản tạm thời bị khóa<br>- Yêu cầu xác minh danh tính qua email phục hồi hoặc số điện thoại<br>- Có thể hiển thị CAPTCHA<br>- Không cho phép đăng nhập tiếp ngay lập tức | _(Để trống)_ | _(Để trống)_ | Edge Case |
| **TC_LOGIN_011** | Đăng nhập với mật khẩu có phân biệt chữ hoa/thường | - Tài khoản `testuser.qa@gmail.com` với mật khẩu đúng là `Test@12345!` | 1. Nhập email: `testuser.qa@gmail.com` → Nhấn **Tiếp theo**<br>2. Nhập mật khẩu SAI chữ hoa/thường: `test@12345!` _(chữ T viết thường)_<br>3. Nhấn **Tiếp theo** | - Đăng nhập thất bại<br>- Hiển thị thông báo mật khẩu không đúng<br>- Xác nhận hệ thống phân biệt chữ hoa/thường (case-sensitive) | _(Để trống)_ | _(Để trống)_ | Edge Case |
| **TC_LOGIN_012** | Đăng nhập tài khoản có bật xác thực 2 bước (2FA) | - Tài khoản `twofactor.test@gmail.com` đã bật 2FA<br>- Có access vào thiết bị/ứng dụng xác thực | 1. Nhập email: `twofactor.test@gmail.com` → Nhấn **Tiếp theo**<br>2. Nhập mật khẩu: `TwoFA@321!` → Nhấn **Tiếp theo**<br>3. Nhập mã OTP 6 chữ số từ Google Authenticator<br>4. Nhấn **Tiếp theo** | - Sau bước 2: Chuyển đến màn hình yêu cầu nhập mã xác thực<br>- Sau bước 4: Đăng nhập thành công nếu OTP đúng và còn hiệu lực<br>- Chuyển hướng đến Hộp thư đến | _(Để trống)_ | _(Để trống)_ | Happy Path |
| **TC_LOGIN_013** | Đăng nhập bằng số điện thoại thay thế email | - Số điện thoại `+84901234567` đã được liên kết với tài khoản Gmail<br>- Chưa đăng nhập | 1. Truy cập `https://mail.google.com`<br>2. Nhập số điện thoại: `+84901234567`<br>3. Nhấn **Tiếp theo**<br>4. Nhập mật khẩu hợp lệ<br>5. Nhấn **Tiếp theo** | - Hệ thống nhận diện số điện thoại hợp lệ<br>- Chuyển sang màn hình nhập mật khẩu<br>- Đăng nhập thành công<br>- Chuyển hướng đến Hộp thư đến | _(Để trống)_ | _(Để trống)_ | Happy Path |
| **TC_LOGIN_014** | Chức năng "Duy trì đăng nhập" - Tích vào "Stay signed in" | - Tài khoản hợp lệ<br>- Đang ở thiết bị cá nhân (không phải máy tính công cộng) | 1. Nhập email và mật khẩu hợp lệ<br>2. Khi xuất hiện tùy chọn **"Duy trì đăng nhập"**, chọn **Có**<br>3. Đăng nhập thành công<br>4. Đóng hoàn toàn trình duyệt<br>5. Mở lại trình duyệt và truy cập `https://mail.google.com` | - Bước 3: Đăng nhập thành công vào Hộp thư đến<br>- Bước 5: Tự động đăng nhập lại, không yêu cầu nhập lại thông tin<br>- Session được duy trì sau khi đóng/mở trình duyệt | _(Để trống)_ | _(Để trống)_ | Happy Path |
| **TC_LOGIN_015** | Đăng nhập với email chứa ký tự đặc biệt không hợp lệ | - Trình duyệt đã mở<br>- Chưa đăng nhập | 1. Truy cập `https://mail.google.com`<br>2. Nhập email: `test user!#$%@gmail.com` _(chứa khoảng trắng và ký tự đặc biệt)_<br>3. Nhấn **Tiếp theo** | - Hiển thị thông báo lỗi định dạng email không hợp lệ<br>- Không chấp nhận email có khoảng trắng hoặc ký tự đặc biệt không được phép<br>- Không chuyển sang bước tiếp theo | _(Để trống)_ | _(Để trống)_ | Edge Case |
| **TC_LOGIN_016** | Đăng nhập với mật khẩu cực dài (vượt giới hạn ký tự) | - Email hợp lệ đã được nhập<br>- Đang ở trang nhập mật khẩu | 1. Tại trang nhập mật khẩu<br>2. Nhập mật khẩu dài 1000 ký tự: `Aa1!` lặp lại 250 lần<br>3. Nhấn **Tiếp theo** | - Hệ thống xử lý không bị crash hoặc timeout<br>- Hoặc: Trường mật khẩu giới hạn số ký tự tối đa và không cho nhập thêm<br>- Hoặc: Hiển thị thông báo lỗi hợp lý về độ dài mật khẩu<br>- Không xảy ra lỗi hệ thống (500 error) | _(Để trống)_ | _(Để trống)_ | Edge Case |
| **TC_LOGIN_017** | Đăng nhập bằng tài khoản Google trên nhiều tab cùng lúc | - Đã đăng nhập thành công vào `testuser.qa@gmail.com` trên Tab 1 | 1. Mở **Tab 1**: Đăng nhập vào `testuser.qa@gmail.com`<br>2. Mở **Tab 2** mới trong cùng trình duyệt<br>3. Truy cập `https://mail.google.com` trên Tab 2 | - Tab 2 tự động nhận diện phiên đăng nhập hiện tại<br>- Hiển thị Hộp thư đến của `testuser.qa@gmail.com` mà không cần đăng nhập lại<br>- Session được chia sẻ giữa các tab trong cùng trình duyệt | _(Để trống)_ | _(Để trống)_ | Edge Case |
| **TC_LOGIN_018** | Đăng xuất và đăng nhập lại ngay lập tức | - Đang đăng nhập `testuser.qa@gmail.com`<br>- Đang ở trang Hộp thư đến | 1. Nhấn vào avatar tài khoản góc trên phải<br>2. Nhấn **Đăng xuất**<br>3. Xác nhận chuyển về trang đăng nhập<br>4. Ngay lập tức nhập lại email và mật khẩu hợp lệ<br>5. Nhấn **Tiếp theo** | - Bước 2-3: Đăng xuất thành công, session bị hủy, chuyển về trang login<br>- Bước 5: Đăng nhập lại thành công<br>- Không có lỗi liên quan đến session cũ<br>- Hộp thư đến hiển thị bình thường | _(Để trống)_ | _(Để trống)_ | Happy Path |
| **TC_LOGIN_019** | Kiểm tra chức năng nút "Quay lại" sau khi nhập email | - Đang ở trang nhập mật khẩu sau khi đã nhập email hợp lệ | 1. Nhập email: `testuser.qa@gmail.com` → Nhấn **Tiếp theo**<br>2. Đang ở trang nhập mật khẩu<br>3. Nhấn nút **Quay lại** (← Back) | - Chuyển về trang nhập email<br>- Trường email hiển thị lại giá trị đã nhập: `testuser.qa@gmail.com`<br>- Hoặc: Trường email trống để nhập lại<br>- Không mất dữ liệu phiên làm việc, không lỗi | _(Để trống)_ | _(Để trống)_ | Edge Case |
| **TC_LOGIN_020** | Đăng nhập trên thiết bị di động (Responsive) | - Thiết bị di động hoặc DevTools mở chế độ mobile<br>- Màn hình 375px (iPhone SE)<br>- Chưa đăng nhập | 1. Mở Chrome DevTools → Chọn **iPhone SE** (375×667)<br>2. Truy cập `https://mail.google.com`<br>3. Nhập email: `testuser.qa@gmail.com` → Nhấn **Tiếp theo**<br>4. Nhập mật khẩu: `Test@12345!` → Nhấn **Tiếp theo** | - Trang đăng nhập hiển thị responsive đúng trên màn hình 375px<br>- Các trường input, button hiển thị đầy đủ, không bị cắt xén<br>- Bàn phím ảo không che khuất nút **Tiếp theo**<br>- Đăng nhập thành công, Gmail mobile UI hiển thị đúng | _(Để trống)_ | _(Để trống)_ | Edge Case |

---

## Tổng Kết Test

| Hạng mục | Số lượng |
|----------|----------|
| **Tổng số test case** | 20 |
| **Happy Path** | 7 (TC_001, 008, 009, 012, 013, 014, 018) |
| **Invalid Input** | 6 (TC_002, 003, 004, 005, 006, 007) |
| **Edge Case** | 7 (TC_010, 011, 015, 016, 017, 019, 020) |
| **Đã thực thi** | 0 |
| **Pass** | 0 |
| **Fail** | 0 |
| **Chưa thực thi** | 20 |

---

## Ma Trận Mức Độ Ưu Tiên

| Test Case ID | Mức độ ưu tiên | Mức độ nghiêm trọng | Ghi chú |
|---|---|---|---|
| TC_LOGIN_001 | 🔴 Cao | Critical | Core functionality |
| TC_LOGIN_002 | 🔴 Cao | Critical | Security |
| TC_LOGIN_003 | 🔴 Cao | High | UX |
| TC_LOGIN_004 | 🔴 Cao | High | Validation |
| TC_LOGIN_005 | 🔴 Cao | High | Validation |
| TC_LOGIN_006 | 🟡 Trung bình | Medium | Format check |
| TC_LOGIN_007 | 🟡 Trung bình | Medium | Format check |
| TC_LOGIN_008 | 🟡 Trung bình | Medium | UX Feature |
| TC_LOGIN_009 | 🟡 Trung bình | Medium | Recovery flow |
| TC_LOGIN_010 | 🔴 Cao | Critical | Security |
| TC_LOGIN_011 | 🔴 Cao | High | Security |
| TC_LOGIN_012 | 🔴 Cao | Critical | Security - 2FA |
| TC_LOGIN_013 | 🟡 Trung bình | Medium | Alternative login |
| TC_LOGIN_014 | 🟢 Thấp | Low | UX Enhancement |
| TC_LOGIN_015 | 🟡 Trung bình | Medium | Security |
| TC_LOGIN_016 | 🟡 Trung bình | High | System stability |
| TC_LOGIN_017 | 🟢 Thấp | Low | Multi-tab behavior |
| TC_LOGIN_018 | 🟡 Trung bình | Medium | Session management |
| TC_LOGIN_019 | 🟢 Thấp | Low | Navigation |
| TC_LOGIN_020 | 🔴 Cao | High | Responsive/Mobile |

---

## Hướng Dẫn Sử Dụng Template

### Điền Kết Quả Thực Tế
```
✅ Pass  - Test case thực thi thành công, kết quả thực tế = kết quả mong đợi
❌ Fail  - Test case thất bại, kết quả thực tế ≠ kết quả mong đợi  
⏭️ Skip  - Bỏ qua (ghi rõ lý do)
🔄 Block - Bị chặn bởi lỗi khác, chưa thể thực thi
```

### Quy Tắc Ghi Kết Quả Thực Tế
```
- Mô tả chính xác những gì xảy ra trên thực tế
- Chụp screenshot đính kèm nếu là Fail
- Ghi rõ môi trường: Browser, OS, thời gian thực thi
- Với Fail: Tạo Bug Report riêng và link vào cột Ghi chú
```

### Ví Dụ Điền Kết Quả
```
TC_LOGIN_001:
  Kết quả thực tế: Đăng nhập thành công, redirect đến inbox, 
                   avatar hiển thị đúng. Thời gian load: 2.3s
  Pass/Fail: ✅ Pass
  
TC_LOGIN_002:
  Kết quả thực tế: [BUG] Hệ thống không hiển thị thông báo lỗi,
                   trang trắng xuất hiện. Screenshot: bug_001.png
  Pass/Fail: ❌ Fail → Bug ID: BUG-2025-001
```