Real Device QA Skill
Use this skill when the user asks to run QA on a physical iOS device, validate behavior from app-behaviour.md, or verify real-user flows.
Purpose
Run deterministic, evidence-backed real-device QA against the iOS app using WebDriverAgent (WDA), then report pass/fail by behavior area.
Preconditions
- Physical iPhone connected, unlocked, and trusted.
- App build installed (
npm run ios -- --device "<Device Name>" --no-packagerwhen needed). - WDA reachable at
http://<device-ip>:8100/statusand returnsready: true. app-behaviour.mdreviewed before execution.project-architecture.mdreviewed before execution so QA is mapped to the actual runtime architecture and supported flows.
Workflow
- Verify device/tooling health:
xcrun xctrace list devicesmobilecli devices --include-offlinecurl http://<device-ip>:8100/status
- Run scripted QA:
node scripts/real-device-qa.js --wda http://<device-ip>:8100 --bundle com.meharaj.contextengine
- Review generated evidence:
- JSON summary in
artifacts/real-device-qa/<timestamp>/qa_results.json - XML snapshots in the same directory.
- JSON summary in
- Map outcomes to
app-behaviour.mdimplemented flows. - Cross-check observed behavior against
project-architecture.mdwhen failures may reflect routing, queue, persistence, model, or native-boundary regressions. - File issues for confirmed regressions with repro and evidence file paths.
Expected Outputs
- Behavior matrix with
PASS/FAIL/INCONCLUSIVE. - Concrete evidence files (XML/JSON).
- GitHub issues for defects when available.
Maintenance
- If QA work leads to a code change that alters architecture or a primary user flow, update
project-architecture.mdin the same task.
Failure Handling
- If session creation fails with a lock error, request the device be unlocked and rerun.
- If WDA is not reachable, treat as environment blocker and report separately from app failures.
- Distinguish tooling blockers from product regressions in the final QA report.