MECE Coverage Matrix — Worker Operations
This matrix ensures Mutually Exclusive, Collectively Exhaustive test coverage for Worker Operations requirements (REQ-WORK-001 through REQ-WORK-010).
MECE Dimensions
Dimension 1: User Authority
| Authority Type | Description | Sign-on | Lock-off | Update Competencies |
|---|---|---|---|---|
| Site Protector (Own) | Site Protector assigned to this specific worksite | ✅ Yes | ✅ Yes | ✅ Yes |
| Site Protector (Other) | Site Protector assigned to different worksite in same PWA | ❌ No | ❌ No | ❌ No |
| RPO (Own) | RPO assigned to this specific PWA | ⚠️ If also acting SP | ⚠️ If also acting SP | ⚠️ If also acting SP |
| RPO (Other) | RPO assigned to different PWA (or unassigned) | ❌ No | ❌ No | ❌ No |
| Worker (Self) | Worker being processed (via QR or manual) | ✅ Via SP | ✅ Via SP | ❌ No |
| Admin | System Administrator (Admin portal only) | ❌ No | ❌ No | ❌ No |
Notes:
- Site Protector always operates the iPad and performs all actions
- Workers present their QR code or provide details for manual lock-on/off - they do not operate the app themselves
- Workers may be manually locked on/off if their QR code doesn't work or they don't have one (e.g. temporary workers or visitor sub-types)
- Admin can only update user records and site information in Admin system, not perform sign-on/lock-off operations
- RPO authority over worksites within their PWA needs clarification
Dimension 2: Worker State
| State | Description | Can Lock On? | Can Lock Off? | Clear Frame? |
|---|---|---|---|---|
| Not on Site | No active record on any worksite | ✅ Yes | ❌ N/A | ✅ Yes |
| Locked On (Active) | Currently locked on this worksite | ❌ No | ✅ Yes | ❌ No |
| Locked On (Returning) | Locked off but marked "returning to site later" | ✅ Yes | ❌ N/A | ✅ Yes |
| Locked On (Different Site) | Currently locked on different worksite in PWA | ⚠️ Block | ⚠️ Block | ✅ Yes |
| Locked On (Different PWA) | Currently locked on worksite in different PWA | ⚠️ Block | ⚠️ Block | ✅ Yes |
| Locked Off (Shift Ended) | Shift has ended, not returning | ✅ New shift | ❌ N/A | ✅ Yes |
Dimension 3: Plant Assignment Complexity
| Assignment Type | Description | Blocks Lock-off? | Warning? |
|---|---|---|---|
| No Plant | Worker has no plant assignments | ❌ No | ❌ No |
| Plant Operator (Single) | Operator for one piece of plant | ✅ Yes | ❌ N/A |
| Plant Operator (Multiple) | Operator for 2+ pieces of plant | ✅ Yes | ❌ N/A |
| MPC (Single) | MPC for one piece of plant | ❌ No | ⚠️ Yes |
| MPC (Multiple) | MPC for 2+ pieces of plant | ❌ No | ⚠️ Yes |
| Operator + MPC (Same Plant) | Same person cannot be both for same plant | ❌ Invalid | ❌ Invalid |
| Operator + MPC (Different Plant) | Operator for plant A, MPC for plant B | ✅ Yes | ⚠️ Yes |
Notes:
- Plant Operator assignment BLOCKS all lock-off methods until resolved
- MPC assignment shows WARNING but allows lock-off to proceed
- Plant must be locked off OR reassigned before Operator can lock off
Dimension 4: Lock-on/Lock-off Method
| Method | Worker Present? | Requires QR? | Requires Auth? | Offline? |
|---|---|---|---|---|
| QR Lock-on | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes |
| Manual Lock-on | ✅ Yes | ❌ No | ❌ No | ✅ Yes |
| On-the-fly Onboarding | ✅ Yes | ❌ No | ❌ No | ✅ Yes |
| QR Lock-off | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes |
| Manual Lock-off | ✅ Yes | ❌ No | ❌ No | ✅ Yes |
| Forced Lock-off | ❌ No | ❌ No | ✅ Yes (NCM) | ✅ Yes |
Notes:
- Site Protector always operates the iPad for all lock-on/off operations
- Workers present their QR code to be scanned by the Site Protector, or provide details for manual entry
- On-the-fly onboarding creates new user record + locks on in one flow (for temporary workers/visitors without QR codes)
- Forced lock-off requires explicit NCM authorisation confirmation
Dimension 5: Shift Status
| Status | Description | Ends Shift? | Continues Tracking Shift? | Active Count? |
|---|---|---|---|---|
| Locked On (Active) | Worker currently on site | ❌ No | ✅ Yes | ✅ Yes |
| Ending Shift | Worker finished for the day (lock-off) | ✅ Yes | ❌ No | ❌ No |
| Returning to Site Later | Worker temporarily leaving (lock-off) | ❌ No | ✅ Yes | ❌ No |
Notes:
- Locked On (Active): Worker is physically on site, shift tracking active, included in active personnel count
- Ending Shift: Selected during lock-off, ends shift tracking and removes from all lists
- Returning to Site Later: Selected during lock-off, continues shift tracking but removes from active count, moved to "Returning" tab
Dimension 6: Connectivity State
| Connectivity | Description | Real-time Sync? | Method Allowed? |
|---|---|---|---|
| Online | Device has network connection | ✅ Yes | ✅ All |
| Offline | Device has no network connection | ❌ No | ✅ All |
| Online→Offline | Loses connection during operation | ⚠️ Interrupted | ⚠️ Failure handling |
| Offline→Online | Regains connection | ✅ Sync queued | ✅ All |
Notes:
- ALL worker operations must work offline (critical requirement)
- Sync occurs automatically when connectivity restored
Dimension 7: Validation/Verification State
| Validation Type | When Applied | ⚠️ Blocks Operation? |
|---|---|---|
| Safety Competency Check | Lock-on | ✅ Yes (must confirm worker is competent and current) |
| Plant Assignment Check | Lock-off | ✅ Yes (if Operator) |
| Shift Status Confirmation | Lock-off | ✅ Yes (must select) |
| Worker Absence Verification | Forced lock-off | ✅ Yes (must confirm) |
| NCM Authorisation | Forced lock-off | ✅ Yes (must confirm) |
| QR Code Validity | QR operations | ✅ Yes (must be valid) |
Notes:
- Safety competency check at lock-on confirms worker is "competent and current/prepared for work"
- Plant assignment (rather than plant competency) is the critical blocker for lock-off operations
Dimension 8: Competency Management
| Action | When | Who Can Perform | Requirements |
|---|---|---|---|
| Assign Default Competency | Lock-on | Site Protector (Own) | Defaults to 'C' |
| Assign Additional Competencies | Lock-on or during shift | Site Protector (Own) | Optional (FA, ESO, RSO, GMO, STMS, etc.) |
| Update Competencies | During active shift | Site Protector (Own) | Worker must be locked on |
| Persist Competencies | Next lock-on at same worksite | System | Auto-selects previous competencies as default |
Notes:
- Competencies are informational only and do not block operations
- Default competency is 'C' (Competent and Current)
- Additional competencies include: FA (First Aid), ESO (Electrical Safety Observer), RSO (Rail Safety Observer), GMO (Gas Monitor Observer), STMS (Site Traffic Management Supervisor), and others
- Site Protector can update worker competencies at any time during the shift via: select worker → "Change competencies" → select/deselect → save
- System remembers and pre-selects competencies for returning workers at the same worksite (worksite-specific memory)
MECE Test Coverage Matrix
Section 1: Worker Sign-on and Lock-on Tests
1.1 Standard QR Lock-on (REQ-WORK-001)
| Test ID | Authority | Worker State | Method | Connectivity | Validation | Expected Result | Status - covered? |
|---|---|---|---|---|---|---|---|
| TC-WORK-SIGNON-001 | Site Protector (Own) | Not on Site | QR Lock-on | Online | Valid QR + Safety check | ✅ Lock-on succeeds | ⬜ |
| TC-WORK-SIGNON-002 | Site Protector (Own) | Not on Site | QR Lock-on | Offline | Valid QR + Safety check | ✅ Lock-on succeeds | ⬜ |
| TC-WORK-SIGNON-003 | Site Protector (Own) | Locked On (Active) | QR Lock-on | Online | Valid QR | ❌ Already locked on | ⬜ |
| TC-WORK-SIGNON-004 | Site Protector (Own) | Locked On (Different Site) | QR Lock-on | Online | Valid QR | ❌ Blocked, must lock off first | ⬜ |
| TC-WORK-SIGNON-005 | Site Protector (Own) | Locked On (Returning) | QR Lock-on | Online | Valid QR | ✅ Re-lock-on succeeds | ⬜ |
| TC-WORK-SIGNON-006 | Site Protector (Own) | Not on Site | QR Lock-on | Online | Invalid QR | ❌ QR validation fails | ⬜ |
| TC-WORK-SIGNON-007 | Site Protector (Own) | Not on Site | QR Lock-on | Online | Safety check incomplete | ❌ Lock-on button disabled | ⬜ |
| TC-WORK-SIGNON-008 | Site Protector (Other) | Not on Site | QR Lock-on | Online | Valid QR | ❌ Access denied | ⬜ |
| TC-WORK-SIGNON-009 | RPO (Other) | Not on Site | QR Lock-on | Online | Valid QR | ❌ Access denied | ⬜ |
| TC-WORK-SIGNON-010 | Site Protector (Own) | Not on Site | QR Lock-on | Online→Offline | Valid QR | ⚠️ Failure handling | ⬜ |
| TC-WORK-SIGNON-011 | Site Protector (Own) | Not on Site | QR Lock-on | Offline→Online | Valid QR, queued data | ✅ Sync on reconnect | ⬜ |
1.2 Competency Assignment Tests (REQ-WORK-002)
| Test ID | Authority | Action | Competency | Expected Result | Status - covered? |
|---|---|---|---|---|---|
| TC-WORK-COMP-001 | Site Protector (Own) | Assign at lock-on | Default (C) | ✅ Defaults to 'C' assigned | ⬜ |
| TC-WORK-COMP-002 | Site Protector (Own) | Assign at lock-on | Additional (FA, ESO) | ✅ Additional competencies assigned | ⬜ |
| TC-WORK-COMP-003 | Site Protector (Own) | Update competency | Add FA during shift | ✅ Competency updated, logged | ⬜ |
| TC-WORK-COMP-004 | Site Protector (Own) | Update competency | Remove ESO during shift | ✅ Competency updated, logged | ⬜ |
| TC-WORK-COMP-005 | Site Protector (Other) | Update competency | Any competency | ❌ Access denied | ⬜ |
| TC-WORK-COMP-006 | Site Protector (Own) | Lock-on returning worker | Same worksite | ✅ Previous competencies pre-selected | ⬜ |
| TC-WORK-COMP-007 | Site Protector (Own) | Lock-on returning worker | Different worksite | ✅ No pre-selection (worksite-specific) | ⬜ |
| TC-WORK-COMP-008 | Site Protector (Own) | View worker details | Active shift | ✅ All assigned competencies displayed | ⬜ |
1.3 Manual Lock-on Tests (REQ-WORK-004)
| Test ID | Authority | Worker State | Method | Connectivity | Expected Result | Status - covered? |
|---|---|---|---|---|---|---|
| TC-WORK-MANUAL-001 | Site Protector (Own) | Not on Site | Manual Lock-on | Online | ✅ Manual lock-on succeeds | ⬜ |
| TC-WORK-MANUAL-002 | Site Protector (Own) | Not on Site | Manual Lock-on | Offline | ✅ Manual lock-on succeeds | ⬜ |
| TC-WORK-MANUAL-003 | Site Protector (Own) | Locked On (Active) | Manual Lock-on | Online | ❌ Already locked on | ⬜ |
| TC-WORK-MANUAL-004 | Site Protector (Own) | Not on Site | Manual Lock-on | Online | ✅ Selects existing worker + locks on | ⬜ |
| TC-WORK-MANUAL-005 | Site Protector (Other) | Not on Site | Manual Lock-on | Online | ❌ Access denied | ⬜ |
1.4 Manual Onboarding Tests (REQ-WORK-005)
| Test ID | Authority | User Exists? | Method | Expected Result | Status - covered? |
|---|---|---|---|---|---|
| TC-WORK-ONBOARD-001 | Site Protector (Own) | No (new worker) | Manual | ✅ Creates user + locks on | ⬜ |
| TC-WORK-ONBOARD-004 | Site Protector (Other) | No (new worker) | On-the-fly | ❌ Access denied | ⬜ |
Section 2: Worker Lock-off Tests
2.1 Manual Lock-off Tests (REQ-WORK-006)
| Test ID | Authority | Worker State | Plant Assignment | Shift Status | Connectivity | Expected Result | Status - covered? |
|---|---|---|---|---|---|---|---|
| TC-WORK-LOCKOFF-001 | Site Protector (Own) | Locked On (Active) | No Plant | Ending Shift | Online | ✅ Lock-off succeeds, shift ends | ⬜ |
| TC-WORK-LOCKOFF-002 | Site Protector (Own) | Locked On (Active) | No Plant | Returning Later | Online | ✅ Lock-off succeeds, continues tracking | ⬜ |
| TC-WORK-LOCKOFF-003 | Site Protector (Own) | Locked On (Active) | Plant Operator (Single) | Ending Shift | Online | ❌ Blocked by plant validation | ⬜ |
| TC-WORK-LOCKOFF-004 | Site Protector (Own) | Locked On (Active) | MPC (Single) | Ending Shift | Online | ⚠️ Warning shown, can proceed | ⬜ |
| TC-WORK-LOCKOFF-005 | Site Protector (Own) | Locked On (Active) | No Plant | No status selected | Online | ❌ Lock-off blocked | ⬜ |
| TC-WORK-LOCKOFF-006 | Site Protector (Own) | Locked On (Active) | No Plant | Ending Shift | Offline | ✅ Lock-off succeeds | ⬜ |
| TC-WORK-LOCKOFF-007 | Site Protector (Other) | Locked On (Active) | No Plant | Ending Shift | Online | ❌ Access denied | ⬜ |
| TC-WORK-LOCKOFF-008 | Site Protector (Own) | Locked On (Active) | Operator + MPC (Different) | Ending Shift | Online | ❌ Blocked by Operator role | ⬜ |
| TC-WORK-LOCKOFF-009 | Site Protector (Own) | Locked On (Active) | MPC (Multiple) | Ending Shift | Online | ⚠️ Warning, clears all MPC | ⬜ |
| TC-WORK-LOCKOFF-010 | Site Protector (Own) | Not on Site | No Plant | Ending Shift | Online | ❌ Not locked on | ⬜ |
| TC-WORK-LOCKOFF-011 | Site Protector (Own) | Locked On (Returning) | No Plant | Ending Shift | Online | ✅ Final lock-off, ends shift | ⬜ |
2.2 QR Lock-off Tests (REQ-WORK-010)
| Test ID | Authority | Worker State | Plant Assignment | QR Validity | Connectivity | Expected Result | Status - covered? |
|---|---|---|---|---|---|---|---|
| TC-WORK-QR-001 | Site Protector (Own) | Locked On (Active) | No Plant | Valid QR | Online | ✅ QR lock-off succeeds | ⬜ |
| TC-WORK-QR-002 | Site Protector (Own) | Locked On (Active) | No Plant | Valid QR | Offline | ✅ QR lock-off succeeds | ⬜ |
| TC-WORK-QR-003 | Site Protector (Own) | Locked On (Active) | Plant Operator | Valid QR | Online | ❌ Blocked by plant validation | ⬜ |
| TC-WORK-QR-004 | Site Protector (Own) | Locked On (Active) | MPC (Single) | Valid QR | Online | ⚠️ Warning shown, can proceed | ⬜ |
| TC-WORK-QR-005 | Site Protector (Own) | Not on Site | No Plant | Valid QR | Online | ❌ Not locked on | ⬜ |
| TC-WORK-QR-006 | Site Protector (Own) | Locked On (Different Site) | No Plant | Valid QR | Online | ❌ Wrong site alert shown | ⬜ |
| TC-WORK-QR-007 | Site Protector (Own) | Locked On (Active) | No Plant | Invalid QR | Online | ❌ QR validation fails | ⬜ |
| TC-WORK-QR-008 | Site Protector (Own) | Locked On (Active) | No Plant | Valid QR | Online→Offline | ⚠️ Failure handling | ⬜ |
| TC-WORK-QR-009 | Site Protector (Own) | Locked On (Active) | No Plant | Valid QR | Online | ✅ Consecutive scanning works | ⬜ |
| TC-WORK-QR-010 | Site Protector (Own) | Locked On (Active) | No Plant | QR scan fails | Online | ✅ Fallback to manual lock-off offered | ⬜ |
Note: Site Protector always operates the iPad and scans worker QR codes. Workers present their QR codes to be scanned.
2.3 Forced Lock-off Tests (REQ-WORK-007)
| Test ID | Authority | Worker State | Plant Assignment | Verification | Authorisation | Connectivity | Expected Result | Status - covered? |
|---|---|---|---|---|---|---|---|---|
| TC-WORK-FORCED-001 | Site Protector (Own) | Locked On (Active) | No Plant | Complete | NCM confirmed | Online | ✅ Forced lock-off succeeds | ⬜ |
| TC-WORK-FORCED-002 | Site Protector (Own) | Locked On (Active) | No Plant | Incomplete | NCM confirmed | Online | ❌ Blocked, must complete | ⬜ |
| TC-WORK-FORCED-003 | Site Protector (Own) | Locked On (Active) | No Plant | Complete | Not confirmed | Online | ❌ Blocked, need auth | ⬜ |
| TC-WORK-FORCED-004 | Site Protector (Own) | Locked On (Active) | Plant Operator | Complete | NCM confirmed | Online | ❌ Blocked by plant validation | ⬜ |
| TC-WORK-FORCED-005 | Site Protector (Own) | Locked On (Active) | MPC (Single) | Complete | NCM confirmed | Online | ⚠️ Warning, can proceed | ⬜ |
| TC-WORK-FORCED-006 | Site Protector (Own) | Locked On (Active) | No Plant | Complete | NCM confirmed | Offline | ✅ Forced lock-off succeeds | ⬜ |
| TC-WORK-FORCED-007 | Site Protector (Other) | Locked On (Active) | No Plant | Complete | NCM confirmed | Online | ❌ Access denied | ⬜ |
| TC-WORK-FORCED-008 | Site Protector (Own) | Locked On (Returning) | No Plant | Complete | NCM confirmed | Online | ❌ Not applicable to returning | ⬜ |
| TC-WORK-FORCED-009 | Site Protector (Own) | Locked On (Active) | No Plant | Complete | NCM confirmed | Online→Offline | ⚠️ Failure handling | ⬜ |
2.4 Shift Status Tests (REQ-WORK-008)
| Test ID | Lock-off Method | Initial State | Shift Status Selection | Plant Assignment | Expected Result | Status - covered? |
|---|---|---|---|---|---|---|
| TC-WORK-SHIFT-001 | Lock-on | Not on Site | N/A (lock-on) | No Plant | ✅ Locked On (Active), shift tracking starts, active count +1 | ⬜ |
| TC-WORK-SHIFT-002 | Manual Lock-off | Locked On (Active) | Ending Shift | No Plant | ✅ Ends shift, removes from all lists, active count -1 | ⬜ |
| TC-WORK-SHIFT-003 | Manual Lock-off | Locked On (Active) | Returning Later | No Plant | ✅ Continues tracking, moves to "Returning" tab, active count -1 | ⬜ |
| TC-WORK-SHIFT-004 | QR Lock-off | Locked On (Active) | Ending Shift | No Plant | ✅ Ends shift, removes from all lists, active count -1 | ⬜ |
| TC-WORK-SHIFT-005 | QR Lock-off | Locked On (Active) | Returning Later | No Plant | ✅ Continues tracking, moves to "Returning" tab, active count -1 | ⬜ |
| TC-WORK-SHIFT-006 | Lock-on | Locked On (Returning) | N/A (re-lock-on) | No Plant | ✅ Re-lock-on continues same shift, active count +1 | ⬜ |
| TC-WORK-SHIFT-007 | Multiple cycles | Locked On (Active) | Returning Later (2x) | No Plant | ✅ Multiple lock-off/on maintains single shift | ⬜ |
| TC-WORK-SHIFT-008 | Manual Lock-off | Locked On (Active) | Not selected | No Plant | ❌ Blocked until status selected | ⬜ |
Section 3: Plant Assignment Validation Tests (REQ-WORK-009)
| Test ID | Plant Assignment | Lock-off Method | Authority | Expected Result | Status - covered? |
|---|---|---|---|---|---|
| TC-WORK-PLANT-001 | Plant Operator (Single) | Manual Lock-off | Site Protector (Own) | ❌ Blocked with guidance | ⬜ |
| TC-WORK-PLANT-002 | Plant Operator (Multiple) | Manual Lock-off | Site Protector (Own) | ❌ Blocked until all resolved | ⬜ |
| TC-WORK-PLANT-003 | MPC (Single) | Manual Lock-off | Site Protector (Own) | ⚠️ Warning, can proceed | ⬜ |
| TC-WORK-PLANT-004 | MPC (Multiple) | Manual Lock-off | Site Protector (Own) | ⚠️ Warning, clears all on proceed | ⬜ |
| TC-WORK-PLANT-005 | Operator + MPC (Different) | Manual Lock-off | Site Protector (Own) | ❌ Blocked by Operator, warning for MPC | ⬜ |
| TC-WORK-PLANT-006 | Plant Operator (Single) | QR Lock-off | Site Protector (Own) | ❌ Blocked with guidance | ⬜ |
| TC-WORK-PLANT-007 | Plant Operator (Single) | Forced Lock-off | Site Protector (Own) | ❌ Blocked, must reassign first | ⬜ |
| TC-WORK-PLANT-008 | MPC (Single) | Forced Lock-off | Site Protector (Own) | ⚠️ Warning, can proceed | ⬜ |
| TC-WORK-PLANT-009 | No Plant | All methods | Site Protector (Own) | ✅ No validation blocking | ⬜ |
| TC-WORK-PLANT-010 | Plant Operator (Single) | All methods | Site Protector (Own) | ❌ Consistent blocking across methods | ⬜ |
| TC-WORK-PLANT-011 | Plant Operator (Single) | Manual Lock-off | Site Protector (Own) | ✅ Plant locked off first, then worker can lock off | ⬜ |
| TC-WORK-PLANT-012 | Plant Operator (Single) | Manual Lock-off | Site Protector (Own) | ✅ Plant handed over first, then worker can lock off | ⬜ |
Section 4: Multi-Worker and Edge Case Tests
4.1 Viewing Workers Tests (REQ-WORK-003)
| Test ID | Worker States | Expected Display | Status - covered? |
|---|---|---|---|
| TC-WORK-VIEW-001 | 5 workers Locked On (Active) | ✅ All shown in active list with count | ⬜ |
| TC-WORK-VIEW-002 | 3 Locked On (Active), 2 Locked On (Returning) | ✅ Separate tabs/sections shown | ⬜ |
| TC-WORK-VIEW-003 | Active worker has Plant Operator | ✅ Plant assignment visible | ⬜ |
| TC-WORK-VIEW-004 | Active worker has MPC | ✅ MPC assignment visible | ⬜ |
| TC-WORK-VIEW-005 | Worker competencies displayed | ✅ All assigned competencies visible (C, FA, ESO, etc.) | ⬜ |
| TC-WORK-VIEW-006 | Real-time updates (online) | ✅ List updates as changes occur | ⬜ |
4.2 Consecutive Operations Tests
| Test ID | Operation Sequence | Expected Result | Status - covered? |
|---|---|---|---|
| TC-WORK-CONSEC-001 | Lock on 10 workers consecutively via QR | ✅ Streamlined workflow, SP scans each worker | ⬜ |
| TC-WORK-CONSEC-002 | Lock off 10 workers consecutively via QR | ✅ Rapid scanning workflow, SP scans each worker | ⬜ |
| TC-WORK-CONSEC-003 | Lock on worker A, immediately lock on worker B | ✅ No interference | ⬜ |
| TC-WORK-CONSEC-004 | Lock on worker, assign competencies, update competencies, lock off | ✅ Full lifecycle works | ⬜ |
4.3 Offline-Online Transition Tests
| Test ID | Scenario | Expected Result | Status - covered? |
|---|---|---|---|
| TC-WORK-OFFLINE-001 | Lock on 5 workers offline | ✅ All operations queued | ⬜ |
| TC-WORK-OFFLINE-002 | Go online, sync occurs | ✅ All 5 workers synced | ⬜ |
| TC-WORK-OFFLINE-003 | Lock off 3 workers offline, go online | ✅ Lock-offs synced correctly | ⬜ |
| TC-WORK-OFFLINE-004 | Role updates offline, sync | ✅ Role changes synced | ⬜ |
| TC-WORK-OFFLINE-005 | Forced lock-off offline, sync | ✅ Audit trail synced | ⬜ |
| TC-WORK-OFFLINE-006 | Multiple SP devices offline | ✅ Conflict resolution | ⬜ |
4.4 Cross-Site and Cross-PWA Tests
| Test ID | Scenario | Expected Result | Status - covered? |
|---|---|---|---|
| TC-WORK-CROSS-001 | Worker locked on Site A, try lock on Site B (same PWA) | ❌ Must lock off Site A first | ⬜ |
| TC-WORK-CROSS-002 | Worker locked on Site A (PWA 1), try lock on Site B (PWA 2) | ❌ Must lock off Site A first | ⬜ |
| TC-WORK-CROSS-003 | Worker locked on Site A, locks off "returning", locks on Site B | ✅ Move between sites works | ⬜ |
| TC-WORK-CROSS-004 | Worker scans QR at wrong site | ❌ Must return to locked-on site | ⬜ |
4.5 Audit Trail Tests
| Test ID | Operation | Expected Audit Record | Status - covered? |
|---|---|---|---|
| TC-WORK-AUDIT-001 | Lock on via QR | ✅ Timestamp, worker ID, SP ID, method, competencies assigned | ⬜ |
| TC-WORK-AUDIT-002 | Lock off via manual | ✅ Shift status, plant warnings, timestamp | ⬜ |
| TC-WORK-AUDIT-003 | Forced lock-off | ✅ NCM auth, verification details, distinct flag | ⬜ |
| TC-WORK-AUDIT-004 | Competency assignment/update | ✅ Old competencies, new competencies, timestamp | ⬜ |
| TC-WORK-AUDIT-005 | MPC warning proceed | ✅ Warning acknowledged logged | ⬜ |
MECE Completeness Checklist
✅ Dimensions Defined
- [x] User Authority (6 types: SP Own/Other, RPO Own/Other, Worker Self, Admin)
- [x] Worker State (6 types)
- [x] Plant Assignment Complexity (7 combinations)
- [x] Lock-on/Lock-off Method (6 types)
- [x] Shift Status (3 types: Locked On Active, Ending Shift, Returning Later)
- [x] Connectivity State (4 types)
- [x] Validation/Verification State (6 types, competencies optional)
- [x] Competency Management (4 actions)
⬜ Coverage Assessment
- Total Dimensions: 8
- Theoretical Combinations: ~12,000 (6×6×7×6×3×4×6)
- Business-Valid Combinations: Estimated 80-120
- Test Scenarios Mapped: 115
- Currently Covered: ??
- Coverage: ??% → Target: 100%
⬜ Critical Scenarios to Cover
Must Cover - Core Functionality
- Happy path for each lock-on method (QR, Manual, On-the-fly)
- Happy path for each lock-off method (QR, Manual, Forced)
- Temporary workers/visitors using manual lock-on (no QR code)
- Plant Operator blocking across all lock-off methods
- MPC warning across all lock-off methods
- Shift status selection for all lock-off methods (Locked On Active, Ending Shift, Returning Later)
- Offline operations for all methods
- Competency assignment (default to 'C')
Must Cover - Permission Boundaries
- Site Protector (Own) vs Site Protector (Other)
- RPO (Own) vs RPO (Other) authority boundaries
- Cross-worksite and cross-PWA blocking
Must Cover - State Transitions
- Not on Site → Locked On (Active) → Locked Off (Shift Ended)
- Locked On (Active) → Locked Off (Returning) → Re-locked On (Active)
- Multiple lock-off/on cycles maintaining shift continuity and tracking
- Active count increments/decrements correctly with state changes
Must Cover - Validation Chains
- Plant Operator blocking + resolution paths (lock off plant OR handover)
- MPC warning + clearing on lock-off
- Safety competency check (defaults to 'C', additional competencies optional)
- NCM authorisation + worker absence verification (forced lock-off only)
- Shift status confirmation requirement (must select Ending Shift or Returning Later)
Must Cover - Error Handling
- Invalid QR codes
- Expired QR codes
- Worker locked on different site/PWA
- Incomplete verifications/validations
- Connectivity loss during operation
- Multiple plant assignments
Should Cover - Edge Cases
- Consecutive scanning workflows (SP scanning multiple workers rapidly)
- Multiple workers with plant assignments
- Plant handover enabling worker lock-off
- Returning workers re-locking on different site within PWA
- Offline sync after multiple operations
- Competency updates during active shift
- Competency persistence across shifts (worksite-specific memory)