Workflow là logic sống của hệ thống. Permission là hàng rào kiểm soát hành động. QC hệ thống phải nhìn state + role + action như một tam giác kiểm thử không thể tách rời.
Snapshot
| Hạng mục | Thông tin |
|---|---|
| Level | Applied Core Skill |
| Estimated effort | 12-14 giờ |
| Deliverables | 8 đầu ra bắt buộc, gồm 7 file chính và 1 package tổng hợp |
| Tools needed | Flow notes, workflow matrix, permission matrix, danh sách role, test accounts nhiều quyền, UI/API evidence nếu có |
| Pass condition | Hoàn thành đủ deliverable bắt buộc, dựng được ít nhất 1 workflow hoàn chỉnh cho Leave Request, có state transition matrix đủ state và action cấm, có permission matrix đủ role/action/scope, phân biệt được UI permission với API permission, và có package cuối tuần thể hiện rõ logic state + role + action |
| Mentor focus | Có bỏ sót state hoặc role quan trọng không, learner có test cả transition bị cấm không, có nhầm workflow issue với permission issue không, có nhớ kiểm history/audit/notify sau transition không, và có nhìn workflow + permission như một hệ luật thống nhất không |
Mục Tiêu Tuần
1. Kiến thức cần hiểu
Học viên cần hiểu workflow không phải là một sơ đồ trang trí, mà là tập luật mô tả hệ thống đi từ trạng thái nào sang trạng thái nào, ai được làm gì và điều kiện nào mới cho phép hành động đó xảy ra. Permission cũng không chỉ là chuyện “thấy nút hay không”, mà là lớp kiểm soát hành động theo role, scope và ngữ cảnh. Hết tuần, học viên cần hiểu rõ:state,transition,action,approver,history lognghĩa là gì trong một module nghiệp vụ.role,permission,scope,UI permission,API permissionkhác nhau ở đâu.State transition matrixdùng để kiểm đường đi hợp lệ, invalid action, state bị skip và điều kiện chuyển trạng thái.Role-State-Action matrixdùng để kiểm ai được làm gì ở state nào.
2. Kỹ năng cần làm được
Tuần 6 yêu cầu học viên làm được các việc có thể dùng ngay trong công ty:- Vẽ được workflow đủ state và transition chính cho một module như
Leave Request. - Viết được state transition matrix có cả đường đi hợp lệ và hành động bị cấm.
- Lập được permission matrix đủ role, action và scope cơ bản.
- Test được UI permission và API permission như hai lớp khác nhau.
- Kết hợp workflow với permission thành logic
role x state x action, thay vì test rời rạc từng phần.
3. Tư duy cần hình thành
Tư duy cốt lõi của tuần này là: đừng test hành động đơn lẻ, hãy test hành động trong đúng trạng thái và đúng vai trò. QC tốt không chỉ hỏi “nút Approve có bấm được không”, mà sẽ hỏi sâu hơn:- Nút này chỉ được phép xuất hiện ở state nào?
- Role nào được bấm?
- Nếu UI ẩn nút nhưng gọi API trực tiếp thì sao?
- Sau transition, state đổi ra sao, audit/history có ghi đúng không, notify có phát ra không?
Vì Sao Tuần Này Cực Kỳ Quan Trọng
Tuần 6 là nơi QC chuyển từ test chức năng đơn lẻ sang test luật nghiệp vụ có điều kiện. Đây là một bước trưởng thành lớn vì hệ thống doanh nghiệp hiếm khi sai ở mức “textfield không lưu được”; chúng thường sai ở chỗ cho sai người làm sai việc ở sai trạng thái.Workflow và permission bug thường có severity cao
Một số bug ở tuần này nhìn bề ngoài không ồn ào như crash, nhưng mức độ rủi ro lại rất cao:- Nhân viên tự approve đơn của chính mình.
- Manager approve khi đơn vẫn còn ở
Draft. - Record chuyển sang
Approvednhưng không ghi history. - UI ẩn nút Delete nhưng API vẫn cho role không đủ quyền xóa dữ liệu.
Đây là tuần learner bắt đầu test “luật chơi” của hệ thống
Trước tuần 6, learner đã có nền về:- requirement,
- test case,
- UI,
- bug report,
- API,
- DB verification.
- state hiện tại,
- role hiện tại,
- action đang muốn thực hiện,
- transition được phép,
- và dấu vết hệ thống để lại sau transition.
Nếu không chắc tuần này, learner sẽ rất khó theo module ERP/HRM/Approval thực tế
Các lỗi người mới rất hay mắc:- Chỉ test happy path của workflow.
- Không test hành động bị cấm.
- Kiểm quyền trên UI nhưng quên API permission.
- Thiếu role hoặc thiếu state trong matrix.
- Không kiểm history, audit, notification sau transition.
- Nhầm workflow issue với permission issue.
Workflow Bug vs Permission Bug
| Loại bug | Bản chất | Ví dụ |
|---|---|---|
| Workflow bug | Sai logic chuyển trạng thái hoặc sai điều kiện transition | Đơn Leave Request đi từ Draft sang Approved trực tiếp, bỏ qua Submitted |
| Permission bug | Sai kiểm soát ai được làm hành động gì | Employee không có quyền approve nhưng vẫn bấm hoặc gọi API approve được |
| Bug chồng lớp | Vừa sai workflow vừa sai permission | Viewer role gọi API Approve ở state Submitted thành công, record sang Approved và có history sai |
UI Chặn Chưa Đủ, API Phải Chặn Thật
Một trong những sai lầm phổ biến nhất là chỉ test permission ở UI:- Nút
Approvebị ẩn với Employee role. - Learner kết luận permission đã ổn.
POST /leave-requests/{id}/approve vẫn cho Employee gọi trực tiếp thì hệ thống vẫn đang hở quyền nghiêm trọng. Permission phải được kiểm ở cả UI và API, đặc biệt với các hành động tác động trạng thái hoặc dữ liệu.
State Transition Matrix Dùng Để Làm Gì
State transition matrix giúp learner và mentor nhìn rõ:- state hiện tại là gì,
- action nào được phép,
- action nào bị cấm,
- transition nào hợp lệ,
- next state là gì,
- điều kiện, notify và audit cần đi kèm là gì.
Role-State-Action Matrix Dùng Để Làm Gì
Role-State-Action matrix là nơi workflow và permission gặp nhau. Nó trả lời một câu hỏi rất thực dụng:Ở state này, role này có được làm action này hay không?Nếu không có matrix này, learner rất dễ test rời rạc theo kiểu:
- role có thấy nút không,
- state có đổi được không,
Một Workflow/Permission Package Tốt Trông Như Thế Nào
Package tốt không chỉ có sơ đồ workflow và vài checklist rời rạc. Nó phải cho mentor nhìn ra:- workflow đủ state và transition chính,
- state transition matrix đủ hành động hợp lệ và hành động bị cấm,
- permission matrix đủ role/action/scope,
- role-state-action matrix đủ để map quyền theo state,
- note hoặc scenario cho UI permission và API permission,
- history/audit/notification có được xem là một phần của verify hay không.
Kế Hoạch Theo Ngày
Ngày 36 - Workflow Basics
Chủ đề: Hiểu workflow như vòng đời thật của một nghiệp vụ Mục tiêu của ngày- Hiểu workflow, state, transition, approver và history log theo ngữ cảnh doanh nghiệp.
- Bỏ ngộ nhận “workflow chỉ là sơ đồ để BA dùng”.
- Dùng
Leave Requestlàm ví dụ xuyên suốt cho toàn tuần.
Draft -> Submitted -> Approved / Rejected- Actor/approver liên quan trong từng bước
- History log và notify sau từng transition
- Vì sao không phải action nào cũng được phép ở mọi state
- Vẽ workflow cho
Leave Request. - Ghi chú với từng state:
- ai tạo,
- ai duyệt,
- action nào xuất hiện,
- transition nào được phép.
- Thêm 1 ví dụ tình huống sai:
- nhân viên skip từ
DraftsangApproved.
- nhân viên skip từ
day36_workflow_basics.mdday36_workflow.png
- Bạn vẽ được đủ state chính chứ không chỉ một đường happy path.
- Bạn chỉ ra được actor/role quan trọng trong từng bước.
- Bạn nhìn workflow như logic nghiệp vụ, không như sơ đồ trang trí.
- Vẽ thiếu state
Rejectedhoặc thiếu đường quay lạiDraft/Resubmitnếu nghiệp vụ có. - Không gắn state với actor và action.
- Không nhắc tới history, notify hoặc audit log.
- Hỏi:
Ở workflow này, bước nào là nơi bug nghiêm trọng nhất dễ xảy ra? Vì sao? - Xem learner có vẽ workflow bằng tư duy kiểm thử hay chỉ mô tả flow đẹp mắt.
Ngày 37 - State Transition Test
Chủ đề: Kiểm các transition hợp lệ và không hợp lệ Mục tiêu của ngày- Biết test workflow theo state, không chỉ theo đường đi đúng.
- Bao phủ được invalid transition, skip state và action bị cấm.
- Bỏ ngộ nhận “test workflow chỉ cần kiểm từ đầu tới cuối”.
- Current State
- Allowed Action
- Next State
- Validation Condition
- Invalid transition
- Skip state
- Resubmit flow nếu có
- Tạo state transition matrix cho
Leave Request. - Matrix phải có:
- transition hợp lệ,
- action bị cấm,
- state không được skip,
- note về audit/notify sau transition.
- Thêm ít nhất 2 ví dụ:
- manager approve khi đơn còn
Draft, - request bị
Rejectedcó cho resubmit hay không.
- manager approve khi đơn còn
day37_state_transition_matrix.xlsx
- Matrix của bạn có cả valid và invalid action.
- Bạn chỉ ra được state nào không được skip.
- Bạn nhìn transition như một rule set, không phải chỉ là thứ tự màn hình.
- Chỉ ghi transition hợp lệ, bỏ qua action bị cấm.
- Thiếu điều kiện hoặc precondition của transition.
- Không gắn audit/notify sau khi state đổi.
- Hỏi:
Trong matrix này, transition nào bị cấm nhưng hệ thống rất dễ lỡ cho đi qua nếu dev xử lý ẩu? - Kiểm tra learner có thật sự dùng matrix để test luật chuyển trạng thái hay không.
Ngày 38 - Permission Basics
Chủ đề: Hiểu role, permission và scope như lớp kiểm soát hành động Mục tiêu của ngày- Phân biệt role, permission, scope và quyền theo ngữ cảnh.
- Bỏ ngộ nhận “permission chỉ là có thấy nút hay không”.
- Chuẩn bị nền để tách UI permission với API permission.
- Role
- Permission
- Scope
- UI permission vs API permission
- Hành động phổ biến:
- View
- Create
- Edit
- Delete
- Approve
- Reject
- Export
- Dùng module
Leave Requestđể liệt kê các role:- Employee
- Line Manager
- HR Admin
- Super Admin
- Tạo permission matrix cho các action chính.
- Ghi chú rõ scope nếu có, ví dụ:
- chỉ xem đơn của bản thân,
- xem toàn bộ đơn,
- chỉ approve đơn của team mình.
day38_permission_matrix.xlsx
- Bạn không gộp role và permission làm một.
- Matrix có cả action và scope, không chỉ có dấu
X. - Bạn nhìn permission như lớp kiểm soát hành động, không chỉ là lớp hiển thị UI.
- Thiếu role quan trọng.
- Không ghi scope đặc biệt.
- Gộp permission UI và permission API thành một dòng mơ hồ.
- Hỏi:
Role này được View nhưng view cái gì, scope đến đâu, và điều đó có ảnh hưởng gì tới test? - Xem learner có hiểu permission như một rule có ngữ cảnh hay chỉ như bảng yes/no.
Ngày 39 - Test Permission Trên UI
Chủ đề: Kiểm thứ hệ thống cho người dùng thấy và cho người dùng bấm Mục tiêu của ngày- Test được UI permission ở mức thực dụng.
- Biết kiểm hide button, disable action, route access, detail access.
- Bỏ ngộ nhận “ẩn nút là xong”.
- Hide action
- Disable action
- Chặn route hoặc detail page
- Chặn action theo state và role
- UI message khi người dùng không có quyền
- Viết checklist test UI permission cho
Leave Request. - Bao phủ:
- Employee
- Manager
- HR Admin
- Kiểm:
- ai thấy nút gì,
- state nào hiện nút gì,
- route/detail page có truy cập được không,
- action bị disable hay bị ẩn trong state nào.
day39_ui_permission_checklist.md
- Bạn không chỉ test thấy/không thấy nút.
- Checklist có gắn role với state và action.
- Bạn biết UI permission chỉ là lớp đầu, chưa phải kết luận cuối.
- Chỉ test role mà quên state.
- Không test route hoặc detail access.
- Thấy nút bị ẩn là kết luận permission đúng.
- Hỏi:
Nếu Employee không thấy nút Approve nhưng vẫn vào được route detail và thao tác qua devtools, em còn phải kiểm gì nữa? - Kiểm tra learner có thật sự hiểu giới hạn của UI permission hay không.
Ngày 40 - Test Permission Trên API
Chủ đề: Kiểm hàng rào quyền thật ở lớp backend Mục tiêu của ngày- Test được permission ở API theo nhiều role.
- Nhấn mạnh nguyên tắc: UI chặn chưa đủ, API phải chặn thật.
- Bỏ ngộ nhận “không thấy nút thì không cần test API permission nữa”.
- API permission scenarios
- Role-based access ở backend
401vs403trong context action bị cấm- Tại sao permission bug ở API thường nghiêm trọng hơn UI bug
- Viết test scenarios permission cho API của
Leave Request. - Bao phủ ít nhất:
- Employee gọi API approve,
- Manager gọi API approve ở state sai,
- HR Admin gọi API action ngoài scope,
- token đúng nhưng role sai quyền.
- Ghi rõ:
- API nào,
- role nào,
- state nào,
- action nào,
- expected code và expected business behavior.
day40_api_permission_scenarios.md
- Bạn test permission bằng ngữ cảnh state + role + action.
- Bạn biết API permission mới là hàng rào thật của hệ thống.
- Bạn phân biệt được lỗi auth với lỗi permission và lỗi workflow.
- Chỉ test một role.
- Không gắn state hiện tại vào permission scenario.
- Quên những hành động bị cấm nhưng vẫn gọi API được.
- Hỏi:
Nếu Manager có quyền approve nhưng request đang ở state Rejected, lỗi phát sinh khi approve thành công là workflow issue hay permission issue hay cả hai? - Xem learner có hiểu permission API như kiểm soát hành động theo state hay không.
Ngày 41 - Workflow + Permission Combined
Chủ đề: Ghép state, role và action thành ma trận kiểm thử thực sự Mục tiêu của ngày- Kết hợp workflow với permission thay vì test riêng lẻ từng lớp.
- Tạo được
Role x State x Allowed Actionsmatrix dùng được cho review và test execution. - Bỏ ngộ nhận “có workflow rồi thì permission tự hiểu”.
- Role-State-Action matrix
- Allowed actions theo từng state
- Invalid actions theo từng role
- Scope theo state nếu có
- History/audit/notification như phần hậu quả của transition
- Tạo ma trận
Role x State x Allowed ActionschoLeave Request. - Phải thể hiện:
- state hiện tại,
- role,
- action được phép,
- action bị cấm,
- next state hoặc note hậu quả nếu action hợp lệ.
- Thêm ví dụ:
- Employee không thấy nút Approve nhưng vẫn gọi API approve được.
- Transition thành công nhưng không có history hoặc notify đúng.
day41_role_state_action_matrix.xlsx
- Bạn không còn test workflow và permission tách rời nhau.
- Matrix của bạn giúp nhìn ra ngay hành động nào hợp lệ hoặc bị cấm ở từng state.
- Bạn gắn được transition với role và hậu quả hệ thống.
- Matrix thiếu state hoặc thiếu role.
- Chỉ ghi allowed action mà không ghi invalid action quan trọng.
- Không nhắc tới audit/history/notify sau transition.
- Hỏi:
Ở state Submitted, role nào được phép làm gì, role nào tuyệt đối không được làm gì, và hậu quả hệ thống sau action hợp lệ là gì? - Xem learner có thật sự hiểu tam giác
state + role + actionhay chỉ đang điền matrix.
Ngày 42 - Tổng Kết Tuần 6
Chủ đề: Gói luật vận hành của hệ thống thành một package có thể review thật Mục tiêu của ngày- Đóng gói workflow, transition matrix, permission matrix, UI permission checklist, API permission scenarios và role-state-action matrix thành một package dùng được.
- Tự đánh giá learner đã hiểu luật nghiệp vụ ở mức nào.
- Chuẩn bị nền cho tuần E2E và regression.
- Một workflow/permission package tốt phải cho mentor thấy:
- flow có đủ state,
- transition có đủ valid/invalid path,
- role có đủ scope,
- permission được test cả UI và API,
- history/audit/notify có được xem là part of verification hay không.
- Chọn
Leave Requestlàm module tổng hợp. - Đóng gói:
- workflow note,
- workflow image,
- state transition matrix,
- permission matrix,
- UI permission checklist,
- API permission scenarios,
- role-state-action matrix.
- Tự rà package trước khi nộp:
- còn thiếu state nào không,
- còn role nào chưa đưa vào matrix không,
- đã có action bị cấm chưa,
- đã kiểm history/audit/notify chưa,
- có nhầm workflow issue với permission issue không.
week06_workflow_permission_package/
- Package của bạn thể hiện rõ luật vận hành của module.
- Bạn giải thích được vì sao một action hợp lệ ở state này nhưng bị cấm ở state khác.
- Bạn cho thấy permission phải được nhìn ở cả UI và API.
- Nộp đủ file nhưng logic giữa các matrix không nối với nhau.
- Chỉ có happy path, thiếu invalid path.
- Không có phần audit/history/notify sau transition.
- Hỏi:
Nếu giao package này cho một QC khác, họ có đủ thông tin để test đúng state, đúng role và đúng action mà không cần hỏi lại em không? - Đánh giá package ở góc độ tài sản kiểm thử dùng được trong team, không chỉ ở góc độ “nộp đủ”.
Deliverables Cần Nộp
| Tên deliverable | Mục đích | Format file | Bắt buộc/Khuyến nghị | Mentor sẽ review điểm gì | Common issue in submission |
|---|---|---|---|---|---|
day36_workflow_basics.md + day36_workflow.png | Xác nhận learner hiểu vòng đời nghiệp vụ của Leave Request | .md + .png | Bắt buộc | Workflow có đủ state, actor và transition chính không | Vẽ đẹp nhưng thiếu state hoặc thiếu actor |
day37_state_transition_matrix.xlsx | Kiểm tra năng lực test transition hợp lệ và không hợp lệ | .xlsx / Google Sheet | Bắt buộc | Có đủ valid path, invalid action, skip state và note hậu quả không | Chỉ có happy path, thiếu action bị cấm |
day38_permission_matrix.xlsx | Kiểm tra khả năng mô tả role, action và scope | .xlsx / Google Sheet | Bắt buộc | Role/action/scope có đủ rõ không, có tách UI/API permission khi cần không | Thiếu scope hoặc thiếu role quan trọng |
day39_ui_permission_checklist.md | Kiểm tra tư duy test permission ở lớp UI | .md | Bắt buộc | Có kiểm hide/disable/route/detail/action visibility theo state không | Chỉ kiểm thấy/không thấy nút |
day40_api_permission_scenarios.md | Kiểm tra permission thật ở lớp backend | .md | Bắt buộc | Scenario có gắn role + state + action + expected behavior không | Chỉ test role, không test state hoặc action bị cấm |
day41_role_state_action_matrix.xlsx | Kiểm tra khả năng ghép workflow với permission thành một hệ luật | .xlsx / Google Sheet | Bắt buộc | Matrix có đủ role/state/action hợp lệ và bị cấm không | Chỉ ghi allowed actions, thiếu invalid actions |
week06_workflow_permission_package/ | Đóng gói toàn bộ logic workflow/permission thành package review thật | Thư mục | Bắt buộc | Package có nối được workflow, permission, UI/API, audit/history không | Nhiều file rời rạc nhưng thiếu logic thống nhất |
KPI & Focus
KPI tối thiểu để qua tuần 6
- Hoàn thành
100%deliverable bắt buộc. - Có ít nhất
1workflow hoàn chỉnh choLeave Request. day37_state_transition_matrix.xlsxphải có:- state chính,
- transition hợp lệ,
- ít nhất
3action bị cấm hoặc invalid transition quan trọng.
day38_permission_matrix.xlsxphải có đủ role cơ bản:- Employee
- Line Manager
- HR Admin
- Super Admin
day39_ui_permission_checklist.mdphải bao phủ:- button visibility
- disabled action
- route/detail access
day40_api_permission_scenarios.mdphải có ít nhất1scenario chứng minhUI chặn chưa đủ, API phải chặn thật.day41_role_state_action_matrix.xlsxphải thể hiện được action hợp lệ và action bị cấm theo từng state.- Package cuối tuần phải có kiểm history/audit hoặc notification sau ít nhất
1transition quan trọng.
Focus của tuần
- Test the rule, not the screen: đừng dừng ở việc “có nút hay không”.
- State + Role + Action together: thiếu một đỉnh của tam giác này thì test sẽ hở.
- UI permission is not enough: backend phải chặn thật.
- Invalid path matters: action bị cấm thường là nơi bug nghiêm trọng nằm.
Mini Rubric Cho Tuần 6
Strong = 3, Pass = 2, Need Improvement = 1
Khuyến nghị qua tuần khi điểm trung bình từ 2.0 trở lên và không có tiêu chí trọng yếu nào ở mức Need Improvement, đặc biệt là Bao phủ transition hợp lệ/không hợp lệ, Phân biệt UI permission và API permission, và Kết hợp workflow với permission.
| Tiêu chí | Strong | Pass | Need Improvement |
|---|---|---|---|
| Hiểu đúng workflow/state/transition | Giải thích được đầy đủ state, transition, condition và actor | Hiểu cơ bản nhưng còn thiếu vài điểm ở condition hoặc actor | Chỉ mô tả flow sơ sài, thiếu logic trạng thái |
| Bao phủ được trạng thái hợp lệ và không hợp lệ | Có cả valid path, invalid path, skip state và action bị cấm quan trọng | Bao phủ phần lớn nhưng còn thiếu vài invalid path | Chủ yếu chỉ có happy path |
| Permission matrix đủ role/action | Matrix đủ role, action, scope và đọc là hiểu quyền | Tương đối đủ nhưng còn thiếu vài role hoặc scope | Thiếu role/action quan trọng, khó dùng |
| Phân biệt UI permission và API permission | Tách bạch rõ và có test cả hai lớp | Có nhắc tới nhưng còn chưa thật sâu | Gộp hai lớp làm một hoặc bỏ sót API permission |
| Kết hợp được workflow với permission | Role-state-action logic rõ, matrix dùng được ngay | Có kết hợp nhưng còn lỏng | Workflow và permission vẫn tách rời |
| Output rõ ràng, dùng được | Package mạch lạc, mentor hoặc QC khác có thể dùng lại | Tài liệu tương đối rõ nhưng còn chỗ mơ hồ | File rời rạc, khó review |
| Cải thiện sau feedback | Sửa đúng trọng tâm, logic package tiến bộ rõ | Có sửa nhưng còn sót | Chỉ chỉnh hình thức, chưa sửa logic |
Common Mistakes
| Lỗi thường gặp | Vì sao nguy hiểm | Cách sửa |
|---|---|---|
| Vẽ workflow thiếu state | Thiếu state là thiếu luôn transition và test coverage đi kèm | Dựng workflow từ requirement và hỏi thêm “sau trạng thái này còn nhánh nào khác?” |
| Chỉ test đường đi đúng | Workflow bug nghiêm trọng thường nằm ở invalid path | Bắt buộc thêm action bị cấm và skip state vào matrix |
| Không test hành động bị cấm | Dễ bỏ sót lỗ hổng nghiệp vụ và permission | Với mỗi state, luôn hỏi “action nào tuyệt đối không được phép?” |
| Quên API permission | UI nhìn đúng nhưng backend vẫn hở quyền | Luôn map UI permission sang API permission tương ứng |
| Matrix thiếu role hoặc thiếu scope | Test thiếu actor thực tế, dễ pass sai | Chốt danh sách role và scope trước khi lập matrix |
| Nhầm workflow issue với permission issue | Log bug sai gốc, khó sửa và khó review | Tách rõ: sai state/transition là workflow, sai người được làm là permission, có thể chồng lớp |
| Không kiểm log/history sau transition | Miss các bug audit rất nghiêm trọng trong hệ thống doanh nghiệp | Sau mỗi transition quan trọng, kiểm luôn history, audit và notify |
Mentor Review Guide
Review matrix như thế nào
- Đọc workflow để hiểu vòng đời trước.
- So state transition matrix với workflow xem có thiếu state hoặc transition nào không.
- So permission matrix với role-state-action matrix xem có role nào bị rơi hoặc action nào không được map.
- Tìm trước các invalid action và action bị cấm, vì đó là vùng dễ hở nhất.
Nhìn gì để biết learner hiểu luật nghiệp vụ
- Learner có giải thích được vì sao action này chỉ hợp lệ ở state này không.
- Learner có gắn role với state thay vì chỉ gắn role với action không.
- Learner có coi history/audit/notify là một phần của verify hay bỏ qua.
- Learner có phân biệt được UI chặn và backend chặn không.
Hỏi gì để kiểm tra logic state-role-action
Ở state Submitted, Employee còn được làm gì? Manager được làm gì?Action nào nhìn hợp lý trên UI nhưng thực ra bị cấm theo workflow?Nếu role không thấy nút trên UI nhưng API vẫn mở, em classify bug này thế nào?Transition này thành công thì hệ thống phải để lại dấu vết gì?Nếu request bị Reject, có cho Edit hay Resubmit không, và ai được làm?
Dấu hiệu học viên làm máy móc vs hiểu thật
| Làm máy móc | Hiểu thật |
|---|---|
| Điền matrix đủ ô nhưng không giải thích được | Giải thích được vì sao state-role-action được map như vậy |
| Chỉ có đường đi đúng | Có cả hành động bị cấm và invalid path |
| Chỉ test UI permission | Test cả UI và API permission |
| Xem history/audit là phần phụ | Xem history/audit là part of acceptance |
| Workflow và permission rời nhau | Dùng role-state-action để nối hai lớp lại |
Nên ưu tiên sửa lỗi gì trước
- Sửa thiếu state và thiếu invalid action trước.
- Sửa nhầm lẫn giữa workflow bug và permission bug trước khi tối ưu format matrix.
- Sửa bỏ sót API permission trước khi tối ưu UI checklist.
- Nếu learner chưa nhìn ra history/audit/notify, kéo lại phần “hậu quả của transition” trước khi đi tiếp.
Self-Check Cuối Tuần
Trước khi nộp bài, học viên nên tự tick:- Tôi đã vẽ được workflow đủ state chính cho
Leave Request. - Tôi biết state nào cho phép action nào và state nào cấm action nào.
- Tôi phân biệt được UI permission và API permission.
- Tôi biết role nào được làm gì ở state nào.
- Tôi đã test cả hành động bị cấm, không chỉ happy path.
- Tôi có nhớ kiểm history, audit log hoặc notification sau transition quan trọng.
- Tôi có phân biệt được bug workflow với bug permission.
- Tôi biết output nào của mình còn yếu nhất và cần mentor review sâu hơn.
Mapping Review
- Workflow matrix: /templates/workflow-matrix-template
- Permission matrix: /templates/permission-matrix-template
- Weekly score: /templates/weekly-assessment-template
- Tự đánh giá cuối tuần: /templates/self-assessment-template
- Review checklist: /mentor-guide/review-checklist
- Quy tắc feedback: /mentor-guide/feedback-rules
- Scoring framework chung: /evaluation/scoring-framework
Kết Thúc Tuần
Sau tuần 6, học viên đã đi thêm một bước rất quan trọng: từ chỗ test chức năng đơn lẻ sang chỗ test được luật vận hành của hệ thống theo trạng thái, vai trò và hành động. Đây là lớp năng lực phân biệt rõ QC hệ thống với kiểu test bề mặt theo form hoặc list page. Khi bước sang tuần E2E và regression, hãy giữ ba mindset này:- đừng chỉ hỏi “tính năng có chạy không”, hãy hỏi “đúng người có được làm đúng việc ở đúng state không”;
- đừng chỉ test action hợp lệ, hãy test cả action bị cấm;
- đừng coi permission là chuyện UI, hãy luôn nhớ backend phải chặn thật và hệ thống phải để lại dấu vết đúng sau transition.