Test Cases: Commerce
| Module | CORE-03 | URD | Commerce URD |
|---|
1. Tóm tắt Độ phủ
| Vùng | URD reqs | Test case | Đã phủ |
|---|---|---|---|
Tổ chức (ORG) | 13 | 17 | ✅ |
Merchant (MER) | 15 | 17 | ✅ |
Kênh Bán (SC) | 7 | 8 | ✅ |
Danh mục (CAT) | 4 | 5 | ✅ |
Chính sách Xóa (DEL) | 4 | 3 | ✅ |
Cấu hình (CFG) | 3 | 0 | ⚠️ |
Truy cập (ACC) | 12 | 13 | ✅ |
Yêu cầu Cấu hình (
CFG) đều ở mức ưu tiên Should và hiện thiếu test case riêng — được nêu ở §3.
2. Test Cases
TC-<AREA>-NNNkhớp vớiURD-<AREA>-NNN. Mức ưu tiên = P1 (nghiêm trọng) / P2 (lớn) / P3 (nhỏ).
2.1 Onboarding
| TC ID | URD ref | Tình huống | Các bước | Kỳ vọng | P |
|---|---|---|---|---|---|
| TC-ORG-001 | URD-ORG-001, URD-ORG-002, URD-MER-001, URD-SC-001 | Onboarding đường thuận | 1. Người dùng đã xác thực không có org. 2. Hoàn tất onboarding với tên + slug hợp lệ | Tổ chức (Activated) + merchant mặc định + kênh mặc định được tạo; định danh tự sinh cho cả ba | P1 |
| TC-ORG-002 | URD-ORG-003 | Người tạo thành Owner | 1. Người dùng mới hoàn tất onboarding | Người dùng được gán là Owner với toàn quyền trên tổ chức và merchant của nó | P1 |
| TC-ORG-003 | URD-ORG-004 | Onboarding yêu cầu tên | 1. Thử onboarding không có tên doanh nghiệp | Bị từ chối; không tạo org/merchant/kênh | P1 |
| TC-ORG-004 | URD-ORG-001, URD-ORG-002 | Roll back nguyên tử | 1. Org được tạo. 2. Tạo merchant/kênh mặc định thất bại | Toàn bộ thao tác roll back; không có gì được lưu | P1 |
| TC-ORG-005 | URD-ORG-004 | Slug tự sinh | 1. Onboard với tên nhưng không slug | Slug được sinh từ tên và duy nhất | P2 |
| TC-ORG-006 | URD-ORG-001 | Một org cho mỗi người dùng | 1. Người dùng đã có một org. 2. Thử onboarding lại | Bị từ chối; lỗi báo org đã tồn tại | P2 |
2.2 Tổ chức
| TC ID | URD ref | Tình huống | Các bước | Kỳ vọng | P |
|---|---|---|---|---|---|
| TC-ORG-007 | URD-ORG-004 | Tạo với trường tùy chọn rỗng | 1. Tạo org chỉ với tên + slug | Được tạo; trường tùy chọn (thuế, đăng ký, liên hệ, địa chỉ) null | P1 |
| TC-ORG-008 | URD-ORG-004 | Tên đa ngôn ngữ | 1. Cung cấp tên ở EN + VI | Mọi phiên bản ngôn ngữ được lưu và truy xuất được | P1 |
| TC-ORG-009 | URD-ORG-005 | Định danh hệ thống | 1. Tạo org | Định danh hệ thống duy nhất được gán, người dùng không sửa được | P1 |
| TC-ORG-010 | URD-ORG-007 | Xem chi tiết | 1. Owner/Admin xem org | Mọi thông tin được trả kèm trạng thái và định danh | P1 |
| TC-ORG-011 | URD-ORG-007 | Cập nhật hồ sơ | 1. Owner cập nhật thuế/liên hệ/địa chỉ | Được cập nhật; người sửa được ghi nhận; merchant không bị ảnh hưởng | P1 |
| TC-ORG-012 | URD-ORG-007 | Từ chối tên rỗng | 1. Owner đặt tên rỗng | Bị từ chối; dữ liệu gốc được bảo toàn | P2 |
| TC-ORG-013 | URD-ORG-006 | Tra cứu theo ID và slug | 1. Tìm theo ID. 2. Tìm theo slug | Org được trả trong cả hai trường hợp | P1 |
| TC-ORG-014 | URD-ORG-006 | Tra cứu không thấy | 1. Tìm theo ID không tồn tại | Không tìm thấy | P2 |
| TC-ORG-015 | URD-ORG-005 | Tính duy nhất slug toàn cục | 1. Org dùng slug "x". 2. Người dùng khác thử "x" | Bị từ chối; slug đã dùng | P1 |
| TC-ORG-016 | URD-ORG-010 | Vô hiệu hóa | 1. Owner vô hiệu hóa org đang hoạt động | Trạng thái Deactivated; dữ liệu được bảo toàn; đảo ngược được | P2 |
| TC-ORG-017 | URD-ORG-012 | Lưu trữ | 1. Owner lưu trữ org | Trạng thái Archived; dữ liệu được bảo toàn; ẩn khỏi danh sách hoạt động | P2 |
| TC-ORG-018 | URD-ORG-011 | Merchant trụ sở | 1. Owner chỉ định một merchant HQ | Merchant chính được tham chiếu trên org | P2 |
| TC-ORG-019 | URD-ORG-013 | Tổ chức con | 1. Owner tạo org con dưới org cha | Con tham chiếu cha; cha hiển thị con | P3 |
2.3 Merchant
| TC ID | URD ref | Tình huống | Các bước | Kỳ vọng | P |
|---|---|---|---|---|---|
| TC-MER-001 | URD-MER-001 | Merchant mặc định khi onboarding | 1. Onboarding hoàn tất | Merchant mặc định Activated với một kênh mặc định; định danh được sinh | P1 |
| TC-MER-002 | URD-MER-002 | Tạo thêm merchant | 1. Owner tạo merchant với tên/loại/tiền tệ | Được tạo và liên kết; org giờ có 2 merchant | P1 |
| TC-MER-003 | URD-MER-002 | Từ chối thiếu tên | 1. Tạo merchant không có tên | Bị từ chối; tên là bắt buộc | P2 |
| TC-MER-004 | URD-MER-003 | Tạo hàng loạt | 1. Owner tạo hàng loạt 3 merchant | Cả 3 được tạo với định danh/slug duy nhất, cùng org | P1 |
| TC-MER-005 | URD-MER-004, URD-CAT-001, URD-SC-002 | Tạo aggregate | 1. Tạo merchant với 2 danh mục + 2 kênh | Tất cả được tạo và liên kết nguyên tử; định danh được sinh | P1 |
| TC-MER-006 | URD-MER-004 | Roll back tạo aggregate | 1. Tạo aggregate với danh mục không hợp lệ | Toàn bộ thao tác bị từ chối; không có gì được tạo | P1 |
| TC-MER-007 | URD-MER-005 | Tính duy nhất slug theo org | 1. Hai org khác nhau cùng tạo slug "store-a" | Cả hai thành công; tính duy nhất giới hạn theo org | P1 |
| TC-MER-008 | URD-MER-005 | Slug trùng trong cùng org | 1. Tạo merchant thứ hai với slug đã có trong cùng org | Bị từ chối; slug đã dùng trong org | P1 |
| TC-MER-009 | URD-MER-006 | Xem merchant | 1. Owner/Admin xem merchant | Tên/loại/tiền tệ/trạng thái được trả; kênh & danh mục truy cập được | P1 |
| TC-MER-010 | URD-MER-007 | Cập nhật merchant | 1. Owner cập nhật tên + tiền tệ | Được cập nhật; người sửa được ghi nhận; kênh/danh mục không bị ảnh hưởng | P1 |
| TC-MER-011 | URD-MER-008, URD-CAT-002, URD-CAT-003, URD-SC-003 | Cập nhật aggregate thao tác hỗn hợp | 1. Đổi tên một danh mục. 2. Thêm một danh mục. 3. Xóa một kênh. 4. Thêm một kênh | Tất cả được áp dụng nguyên tử | P1 |
| TC-MER-012 | URD-MER-008 | Quy ước khóa cập-nhật-thông-minh | 1. Con {id} thôi. 2. Con | Cái thứ nhất bị xóa; cái thứ hai được cập nhật | P1 |
| TC-MER-013 | URD-MER-015 | Cờ xóa rõ ràng | 1. Cập nhật aggregate với cờ xóa rõ ràng trên một danh mục | Danh mục bị xóa; gửi ID không kèm cờ xóa thì KHÔNG xóa | P1 |
| TC-MER-014 | URD-MER-008 | Roll back cập nhật aggregate | 1. Đổi tên hợp lệ + kênh không hợp lệ | Toàn bộ cập nhật thất bại; dữ liệu gốc được bảo toàn | P1 |
| TC-MER-015 | URD-MER-009 | Tra cứu theo ID và slug | 1. Tìm theo ID. 2. Tìm theo slug | Merchant được trả trong cả hai trường hợp | P1 |
| TC-MER-016 | URD-MER-012 | Vô hiệu hóa / kích hoạt lại | 1. Vô hiệu hóa rồi kích hoạt lại | Trạng thái chuyển đổi; kênh/danh mục nguyên vẹn | P2 |
| TC-MER-017 | URD-MER-014 | Phân cấp merchant | 1. Tạo merchant con dưới cha | Con tham chiếu cha; cha hiển thị con | P3 |
2.4 Kênh Bán
| TC ID | URD ref | Tình huống | Các bước | Kỳ vọng | P |
|---|---|---|---|---|---|
| TC-SC-001 | URD-SC-001 | Kênh mặc định khi onboarding | 1. Onboarding hoàn tất | Kênh mặc định Activated dưới merchant mặc định; định danh được sinh | P1 |
| TC-SC-002 | URD-SC-002 | Kênh qua tạo aggregate | 1. Tạo merchant với 2 kênh | Cả hai được tạo/liên kết; truy cập được trên merchant | P1 |
| TC-SC-003 | URD-SC-003 | Thêm hàng loạt vào merchant hiện có | 1. Thêm nhiều kênh vào một merchant hiện có | Tất cả được tạo và liên kết | P1 |
| TC-SC-004 | URD-SC-002 | Đổi tên qua cập nhật aggregate | 1. Đổi tên một kênh | Được đổi tên; kênh khác không đổi | P2 |
| TC-SC-005 | URD-SC-004 | Slug trùng trong merchant | 1. Tạo kênh với slug đã có trong cùng merchant | Bị từ chối; slug đã dùng trong merchant | P1 |
| TC-SC-006 | URD-SC-004 | Tính duy nhất slug theo merchant | 1. Hai merchant cùng dùng slug kênh "counter" | Cả hai thành công; tính duy nhất giới hạn theo merchant | P2 |
| TC-SC-007 | URD-SC-005 | Định danh kênh | 1. Tạo kênh | Định danh hệ thống duy nhất, không sửa được | P2 |
| TC-SC-008 | URD-SC-006 | Phân cấp kênh | 1. Tạo kênh con dưới cha | Con tham chiếu cha; cha hiển thị con | P3 |
2.5 Danh mục
| TC ID | URD ref | Tình huống | Các bước | Kỳ vọng | P |
|---|---|---|---|---|---|
| TC-CAT-001 | URD-CAT-001 | Danh mục qua tạo aggregate | 1. Tạo merchant với 2 danh mục | Cả hai được tạo/liên kết; truy cập được trên merchant | P1 |
| TC-CAT-002 | URD-CAT-002 | Đổi tên danh mục | 1. Cập nhật aggregate đổi tên một danh mục | Được đổi tên; sản phẩm dưới nó không bị ảnh hưởng | P1 |
| TC-CAT-003 | URD-CAT-003 | Xóa danh mục | 1. Cập nhật aggregate xóa một danh mục | Soft-deleted; danh mục khác không đổi | P1 |
| TC-CAT-004 | URD-CAT-004 | Đánh dấu add-on | 1. Đánh dấu một danh mục là add-on | Được gắn cờ; sản phẩm của nó được xem là add-on | P2 |
| TC-CAT-005 | URD-CAT-004 | Bỏ đánh dấu add-on | 1. Gỡ cờ add-on | Không còn là add-on; sản phẩm trở lại | P2 |
2.6 Chính sách Xóa
| TC ID | URD ref | Tình huống | Các bước | Kỳ vọng | P |
|---|---|---|---|---|---|
| TC-DEL-001 | URD-DEL-001, URD-DEL-004 | Xem / cập nhật chính sách | 1. Owner xem rồi cập nhật chính sách xóa | Giá trị hiện tại được trả; cập nhật được lưu | P2 |
| TC-DEL-002 | URD-DEL-002 | Xóa danh mục nghiêm ngặt | 1. strictCategoryDeletion true. 2. Xóa danh mục có sản phẩm | Bị chặn | P2 |
| TC-DEL-003 | URD-DEL-003 | Cascade xóa sản phẩm | 1. cascadeProductDeletion true. 2. Xóa danh mục | Sản phẩm của nó cũng bị xóa | P2 |
2.7 Truy cập
| TC ID | URD ref | Tình huống | Các bước | Kỳ vọng | P |
|---|---|---|---|---|---|
| TC-ACC-001 | URD-ACC-001 | Gán cấp org | 1. Owner gán nhân viên ở cấp org | Nhân viên truy cập được mọi merchant dưới org | P1 |
| TC-ACC-002 | URD-ACC-002 | Gán cấp merchant | 1. Owner chỉ gán nhân viên cho Merchant A | Nhân viên truy cập A, không truy cập B | P1 |
| TC-ACC-003 | URD-ACC-002 | Gán đa merchant | 1. Nhân viên được gán A và C | Truy cập A và C, không truy cập B | P1 |
| TC-ACC-004 | URD-ACC-003 | Truy cập đa org | 1. Người dùng được cấp truy cập Org X và Y | Thấy dữ liệu từ cả hai org | P1 |
| TC-ACC-005 | URD-ACC-004 | Cô lập dữ liệu của Owner | 1. Owner A yêu cầu dữ liệu | Chỉ Org X hiển thị; Org Y bị ẩn | P1 |
| TC-ACC-006 | URD-ACC-005 | List & count lọc theo vai trò | 1. Admin/Owner/Employee mỗi người yêu cầu list và count | Admin tất cả; Owner của mình; Employee được gán; count khớp list | P1 |
| TC-ACC-007 | URD-ACC-006 | Năng lực org của Owner | 1. Owner tạo/xem/cập nhật org | Tất cả thành công; thay đổi được ghi nhận | P1 |
| TC-ACC-008 | URD-ACC-007 | Năng lực merchant của Owner | 1. Owner tạo, cập nhật, vô hiệu hóa merchant | Tất cả thành công; trạng thái chuyển đổi | P1 |
| TC-ACC-009 | URD-ACC-008 | Quản lý kênh/danh mục của Owner | 1. Owner tạo/cập nhật/xóa kênh & danh mục qua aggregate | Tất cả phản ánh trên merchant | P1 |
| TC-ACC-010 | URD-ACC-009 | Gán nhân viên cho merchant | 1. Owner gán nhân viên cho một merchant | Ánh xạ được tạo; nhân viên giới hạn theo merchant đó | P1 |
| TC-ACC-011 | URD-ACC-010 | List merchant của nhân viên | 1. Nhân viên được gán X yêu cầu list | Chỉ trả X | P1 |
| TC-ACC-012 | URD-ACC-011 | Nhân viên bị từ chối chưa-gán | 1. Nhân viên truy cập Merchant Y | Từ chối truy cập | P1 |
| TC-ACC-013 | URD-ACC-012 | Vai trò không nhận diện | 1. Người dùng có vai trò không xử lý yêu cầu list | Bị từ chối (403 hoặc thiếu-quyền rõ ràng) — không bao giờ là list rỗng âm thầm | P1 |
Phát hiện QE Assessment
Nhánh default của switch theo vai trò trong controller organizer/merchant trong quá khứ trả dữ liệu rỗng không kèm lỗi — không phân biệt được với "không có dữ liệu". TC-ACC-013 ngăn ngừa thất bại âm thầm này.
Phát hiện QE Assessment
Quy ước "khóa-đơn nghĩa là xóa" của cập-nhật-aggregate (một con gửi dạng { id } thôi) dễ vỡ: một client có ý định giữ nguyên một bản ghi sẽ kích hoạt một lần xóa. TC-MER-013 thay vào đó yêu cầu một cờ xóa rõ ràng.
3. Truy vết
Mọi yêu cầu Must ánh xạ tới ≥1 test case. Khoảng trống được nêu rõ.
| Yêu cầu URD | Test case | Trạng thái |
|---|---|---|
| URD-ORG-001 | TC-ORG-001, TC-ORG-004, TC-ORG-006 | ✅ Đã phủ |
| URD-ORG-002 | TC-ORG-001, TC-ORG-004 | ✅ Đã phủ |
| URD-ORG-003 | TC-ORG-002 | ✅ Đã phủ |
| URD-ORG-004 | TC-ORG-003, TC-ORG-005, TC-ORG-007, TC-ORG-008, TC-ORG-012 | ✅ Đã phủ |
| URD-ORG-005 | TC-ORG-009, TC-ORG-015 | ✅ Đã phủ |
| URD-ORG-006 | TC-ORG-013, TC-ORG-014 | ✅ Đã phủ |
| URD-ORG-007 | TC-ORG-010, TC-ORG-011 | ✅ Đã phủ |
| URD-ORG-008 | — | ⚠️ Chưa phủ (tệp đính kèm) |
| URD-ORG-009 | TC-ACC-006 | ✅ Đã phủ |
| URD-ORG-010 | TC-ORG-016 | ✅ Đã phủ |
| URD-ORG-011 | TC-ORG-018 | ✅ Đã phủ |
| URD-ORG-012 | TC-ORG-017 | ✅ Đã phủ |
| URD-ORG-013 | TC-ORG-019 | ✅ Đã phủ |
| URD-MER-001 | TC-MER-001, TC-ORG-001 | ✅ Đã phủ |
| URD-MER-002 | TC-MER-002, TC-MER-003 | ✅ Đã phủ |
| URD-MER-003 | TC-MER-004 | ✅ Đã phủ |
| URD-MER-004 | TC-MER-005, TC-MER-006 | ✅ Đã phủ |
| URD-MER-005 | TC-MER-007, TC-MER-008 | ✅ Đã phủ |
| URD-MER-006 | TC-MER-009 | ✅ Đã phủ |
| URD-MER-007 | TC-MER-010 | ✅ Đã phủ |
| URD-MER-008 | TC-MER-011, TC-MER-012, TC-MER-014 | ✅ Đã phủ |
| URD-MER-009 | TC-MER-015 | ✅ Đã phủ |
| URD-MER-010 | TC-ACC-006, TC-ACC-011 | ✅ Đã phủ |
| URD-MER-011 | TC-ACC-006 | ✅ Đã phủ |
| URD-MER-012 | TC-MER-016 | ✅ Đã phủ |
| URD-MER-013 | TC-ORG-017 (vòng đời chung) | ✅ Đã phủ |
| URD-MER-014 | TC-MER-017 | ✅ Đã phủ |
| URD-MER-015 | TC-MER-013 | ✅ Đã phủ |
| URD-SC-001 | TC-SC-001, TC-ORG-001 | ✅ Đã phủ |
| URD-SC-002 | TC-SC-002, TC-SC-004 | ✅ Đã phủ |
| URD-SC-003 | TC-SC-003 | ✅ Đã phủ |
| URD-SC-004 | TC-SC-005, TC-SC-006 | ✅ Đã phủ |
| URD-SC-005 | TC-SC-007 | ✅ Đã phủ |
| URD-SC-006 | TC-SC-008 | ✅ Đã phủ |
| URD-SC-007 | TC-MER-011 (xóa kênh) | ✅ Đã phủ |
| URD-CAT-001 | TC-CAT-001, TC-MER-005 | ✅ Đã phủ |
| URD-CAT-002 | TC-CAT-002 | ✅ Đã phủ |
| URD-CAT-003 | TC-CAT-003 | ✅ Đã phủ |
| URD-CAT-004 | TC-CAT-004, TC-CAT-005 | ✅ Đã phủ |
| URD-DEL-001 | TC-DEL-001 | ✅ Đã phủ |
| URD-DEL-002 | TC-DEL-002 | ✅ Đã phủ |
| URD-DEL-003 | TC-DEL-003 | ✅ Đã phủ |
| URD-DEL-004 | TC-DEL-001 | ✅ Đã phủ |
| URD-CFG-001 | — | ⚠️ Chưa phủ (Should) |
| URD-CFG-002 | — | ⚠️ Chưa phủ (Should) |
| URD-CFG-003 | — | ⚠️ Chưa phủ (Should) |
| URD-ACC-001 | TC-ACC-001, TC-ACC-002 | ✅ Đã phủ |
| URD-ACC-002 | TC-ACC-002, TC-ACC-003 | ✅ Đã phủ |
| URD-ACC-003 | TC-ACC-004 | ✅ Đã phủ |
| URD-ACC-004 | TC-ACC-005 | ✅ Đã phủ |
| URD-ACC-005 | TC-ACC-006, TC-ACC-013 | ✅ Đã phủ |
| URD-ACC-006 | TC-ACC-007 | ✅ Đã phủ |
| URD-ACC-007 | TC-ACC-008 | ✅ Đã phủ |
| URD-ACC-008 | TC-ACC-009 | ✅ Đã phủ |
| URD-ACC-009 | TC-ACC-010 | ✅ Đã phủ |
| URD-ACC-010 | TC-ACC-011 | ✅ Đã phủ |
| URD-ACC-011 | TC-ACC-012 | ✅ Đã phủ |
| URD-ACC-012 | TC-ACC-013 | ✅ Đã phủ |
Khoảng trống: URD-ORG-008 (tệp đính kèm, Must) và URD-CFG-001..003 (Should) chưa có test case riêng.