Form profile với avatar upload, name, birthday (≥18 tuổi), gender, email (check duplicate). Tổng hợp file validation + age calculation + email uniqueness.
Người dùng đã đăng nhập muốn cập nhật thông tin profile của mình: avatar, tên, năm sinh, giới tính và email. Bài này tổng hợp nhiều kỹ thuật test: file upload validation, boundary value, age calculation, email uniqueness.
2026-04-27 — dùng làm mốc để tính tuổi 18+. Test các edge case quanh ngày sinh nhật.
Thông tin user hiện tại (đã load sẵn vào form):
Nguyen Van A1995-06-15Maleuser@example.com (email hiện tại của user — KHÔNG bị tính là duplicate)Email đã được dùng bởi user khác trong hệ thống:
admin@itlearn.comtester@itlearn.comcontact@company.com| # | Tên | Loại Control | Bắt Buộc | Mô Tả |
|---|---|---|---|---|
| 1 | Avatar | File upload | No |
|
| 2 | Name | Text box | Yes |
|
| 3 | Birthday | Date picker | Yes |
|
| 4 | Gender | Radio | Yes | 3 lựa chọn: Male / Female / Other. |
| 5 | Text box | Yes |
|
|
| 6 | Save | Button | — | Validate tất cả các trường và lưu thông tin nếu hợp lệ. |
| Trường hợp | Message |
|---|---|
| Avatar sai định dạng | Avatar must be an image file (jpg, png, gif) |
| Avatar quá lớn | Avatar size must not exceed 2 MB |
| Name rỗng | Please input name |
| Name ngoài 2–50 ký tự | Name must be from 2 to 50 characters |
| Name có ký tự không hợp lệ | Name can only contain letters and single spaces |
| Birthday rỗng | Please input birthday |
| Chưa đủ 18 tuổi | You must be at least 18 years old |
| Birthday trong tương lai | Birthday cannot be in the future |
| Gender chưa chọn | Please select gender |
| Email rỗng | Please input email |
| Email sai định dạng | Please input valid email |
| Email đã tồn tại (user khác) | Email is already used by another account |
| Lưu thành công | Profile updated successfully |
"Tuan 99", có ký tự đặc biệt, có 2 space liên tiếp giữa từ.2008-04-26 (đủ 18, pass), 2008-04-27 (đúng đủ 18 hôm sinh nhật, pass), 2008-04-28 (chưa đủ 18 — thiếu 1 ngày, fail), 2008-12-31 (chưa đủ 18 — sinh nhật chưa tới, fail).2008-12-31 — năm OK nhưng ngày/tháng chưa tới sinh nhật → phải fail!user@example.com → phải pass (không tính duplicate).admin@itlearn.com → fail (duplicate).ADMIN@itlearn.com hoặc Admin@ITLearn.com → phải fail (case-insensitive).abc, abc@, abc@xyz (thiếu .tld), @xyz.com.new.user@gmail.com, my+tag@example.org.year — phải so sánh đầy đủ ngày + tháng + năm.Form thực hành chỉ dành cho học viên đã đăng nhập.
Tab này chứa danh sách các lỗi đã cài cắm trong form. Vui lòng nhập mã giảng viên để mở khóa. Mã sẽ ghi nhớ trong phiên làm việc — chỉ cần nhập 1 lần cho cả 3 bài.