224 lines
4.8 KiB
Markdown
224 lines
4.8 KiB
Markdown
# UAT Scenario Checklist
|
|
|
|
## S0 Login and RBAC deny
|
|
|
|
- Preconditions:
|
|
- Test users are available (`admin`, `supervisor`, `operator`, `analyst`)
|
|
- Steps:
|
|
- Sign in through the gateway
|
|
- Verify role-dependent access to main flows
|
|
- Attempt a denied privileged action as `operator` (for example create a user)
|
|
- Expected:
|
|
- Login succeeds
|
|
- Allowed actions work for the selected role
|
|
- Denied privileged action returns `403`
|
|
- Result:
|
|
- [ ] Pass
|
|
- [ ] Fail
|
|
- Evidence:
|
|
- user:
|
|
- screenshot/log:
|
|
|
|
## S1 Customer create and search
|
|
|
|
- Preconditions:
|
|
- Operator UI or API access is available
|
|
- Steps:
|
|
- Create a customer
|
|
- Search the customer by name or phone
|
|
- Open the customer card
|
|
- Expected:
|
|
- Customer is created once
|
|
- Search returns the same customer
|
|
- Customer card data is consistent
|
|
- Result:
|
|
- [ ] Pass
|
|
- [ ] Fail
|
|
- Evidence:
|
|
- customer_id:
|
|
- screenshot/log:
|
|
|
|
## S2 Voice interaction lifecycle
|
|
|
|
- Preconditions:
|
|
- Operator account is available
|
|
- Voice queue is available
|
|
- Steps:
|
|
- Create a voice interaction
|
|
- Assign interaction to operator
|
|
- Change status to `closed`
|
|
- Open the interaction timeline
|
|
- Expected:
|
|
- Status transitions are correct
|
|
- Timeline contains creation, assignment, and close events
|
|
- Result:
|
|
- [ ] Pass
|
|
- [ ] Fail
|
|
- Evidence:
|
|
- interaction_id:
|
|
- screenshot/log:
|
|
|
|
## S3 Assignment and escalation to second line
|
|
|
|
- Preconditions:
|
|
- Queue routing rule for escalation exists
|
|
- Steps:
|
|
- Create or select an active interaction
|
|
- Assign it to an operator
|
|
- Escalate it to the target queue
|
|
- Expected:
|
|
- Assignment is accepted
|
|
- Queue is changed to the target queue
|
|
- Status changes to `escalated`
|
|
- Result:
|
|
- [ ] Pass
|
|
- [ ] Fail
|
|
- Evidence:
|
|
- interaction_id:
|
|
- target_queue:
|
|
|
|
## S4 Routing and timeline verification
|
|
|
|
- Preconditions:
|
|
- Queue rules are configured
|
|
- At least one completed interaction exists
|
|
- Steps:
|
|
- Execute a route request for the active queue
|
|
- Verify assigned operator and SLA result
|
|
- Re-open interaction timeline
|
|
- Expected:
|
|
- Routing returns assignee and SLA
|
|
- Timeline remains complete and chronological
|
|
- Result:
|
|
- [ ] Pass
|
|
- [ ] Fail
|
|
- Evidence:
|
|
- queue_id:
|
|
- route output:
|
|
|
|
## S5 Voice event intake
|
|
|
|
- Preconditions:
|
|
- Voice adapter endpoint is reachable
|
|
- Steps:
|
|
- Submit a voice event (`call.started`, `ivr.completed`, or `call.ended`)
|
|
- Verify event is stored and retrievable
|
|
- Expected:
|
|
- Voice event is accepted
|
|
- Event ID is returned
|
|
- Event can be listed afterwards
|
|
- Result:
|
|
- [ ] Pass
|
|
- [ ] Fail
|
|
- Evidence:
|
|
- event_id:
|
|
- call_id:
|
|
|
|
## S6 Telegram interaction lifecycle
|
|
|
|
- Preconditions:
|
|
- Telegram adapter endpoint is reachable
|
|
- Steps:
|
|
- Send webhook payload to Telegram adapter
|
|
- Verify message registration
|
|
- Verify interaction visibility in operator workflow
|
|
- Expected:
|
|
- Message is accepted
|
|
- Related interaction or adapter state is traceable
|
|
- Result:
|
|
- [ ] Pass
|
|
- [ ] Fail
|
|
- Evidence:
|
|
- message_id:
|
|
- screenshot/log:
|
|
|
|
## S7 KB usage in active handling
|
|
|
|
- Preconditions:
|
|
- KB category/article created by analyst/supervisor
|
|
- Steps:
|
|
- Search KB by keyword
|
|
- Open article
|
|
- Use article during interaction processing
|
|
- Expected:
|
|
- Relevant article found
|
|
- Operator confirms article usability
|
|
- Result:
|
|
- [ ] Pass
|
|
- [ ] Fail
|
|
- Evidence:
|
|
- article_id:
|
|
- keyword:
|
|
|
|
## S8 Supervisor realtime
|
|
|
|
- Preconditions:
|
|
- At least two agent states are submitted
|
|
- Steps:
|
|
- Set agent states (`READY`, `BUSY`)
|
|
- Update queue metrics
|
|
- Open realtime view/API
|
|
- Expected:
|
|
- Agent totals and states are visible
|
|
- Queue snapshot is visible
|
|
- Result:
|
|
- [ ] Pass
|
|
- [ ] Fail
|
|
- Evidence:
|
|
- timestamp:
|
|
- screenshot/log:
|
|
|
|
## S9 KPI report and export validation
|
|
|
|
- Preconditions:
|
|
- KPI events are ingested for the test queue
|
|
- Steps:
|
|
- Open `/reports/kpi`
|
|
- Verify KPI payload
|
|
- Open `/reports/export` and capture CSV output
|
|
- Expected:
|
|
- KPI payload contains `SL`, `ASA`, `AHT`, `Abandon`, `FCR`
|
|
- Export contains the expected header and queue rows
|
|
- Result:
|
|
- [ ] Pass
|
|
- [ ] Fail
|
|
- Evidence:
|
|
- queue_id:
|
|
- export snippet:
|
|
|
|
## O1 Backup and restore verification
|
|
|
|
- Preconditions:
|
|
- Pilot environment contains test data
|
|
- Steps:
|
|
- Run backup script
|
|
- Restore into a clean target
|
|
- Verify the restored data set
|
|
- Expected:
|
|
- Archive is created
|
|
- Restore succeeds
|
|
- Core interaction data remains intact
|
|
- Result:
|
|
- [ ] Pass
|
|
- [ ] Fail
|
|
- Evidence:
|
|
- archive:
|
|
- restore check:
|
|
|
|
## O2 Load test baseline (`100 voice + 100 digital`)
|
|
|
|
- Preconditions:
|
|
- Pilot environment is stable
|
|
- Steps:
|
|
- Run `python scripts/load_test.py --base-url http://<gateway-host>:8080 --voice 100 --digital 100`
|
|
- Record success and latency output
|
|
- Expected:
|
|
- Load completes without blocking errors
|
|
- MVP baseline target is met
|
|
- Result:
|
|
- [ ] Pass
|
|
- [ ] Fail
|
|
- Evidence:
|
|
- command:
|
|
- summary:
|