Files
featherChat/warzone/UAT/PHASE5.md
Siavash Sameni c8b51fa96b UAT test plans for all 7 phases
UAT/PHASE1.md — 20 test scenarios, 80+ checkboxes
  Identity, encryption, messaging, TUI, web, groups, aliases,
  auth, OTP replenishment, session persistence, cross-client

UAT/PHASE2.md — 7 scenarios (WASM, receipts, files, multi-device, HW wallet, groups, history)
UAT/PHASE3.md — 6 scenarios (DNS discovery, key transparency, federation, mutual TLS, gossip)
UAT/PHASE4.md — 10 scenarios (mule identity, pickup, delivery, receipts, dedup, expiry, compression)
UAT/PHASE5.md — 6 scenarios (Bluetooth, LoRa, mDNS, Wi-Fi Direct, USB export, fallback chain)
UAT/PHASE6.md — 3 scenarios (sealed sender, traffic analysis resistance, onion routing)
UAT/PHASE7.md — 8 scenarios (ntfy, DoH, DB encryption, admin CLI, rate limiting, audit, CI, monitoring)

Each test has exact commands to run and checkboxes for pass/fail.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 08:01:36 +04:00

149 lines
3.4 KiB
Markdown

# Phase 5 — User Acceptance Testing (Transport Fallbacks)
> Phase 5 is NOT YET IMPLEMENTED. This is a pre-written test plan.
## Prerequisites
- Phase 4 UAT fully passing
- Bluetooth-capable devices
- LoRa hardware (e.g. Heltec ESP32 LoRa, RAK WisBlock)
- Two devices on same Wi-Fi for Wi-Fi Direct testing
---
## 1. Bluetooth Mule Transfer
**Mule device (phone/laptop) near Server A:**
```bash
cargo run --bin warzone-mule -- pickup --transport bluetooth
```
- [ ] Mule scans for nearby warzone-server via BLE advertisement
- [ ] Connects via Bluetooth Classic (RFCOMM)
- [ ] Picks up messages (same protocol as HTTP, different transport)
- [ ] Transfer speed reasonable (> 100 KB/s)
**Mule near Server B:**
```bash
cargo run --bin warzone-mule -- deliver --transport bluetooth
```
- [ ] Delivers messages via Bluetooth
- [ ] Receipts returned
---
## 2. LoRa Transport (Emergency)
**Setup two LoRa nodes with warzone-mule:**
```bash
cargo run --bin warzone-mule -- lora-beacon --freq 868.0
```
- [ ] Device broadcasts presence beacon (< 50 bytes)
- [ ] Nearby LoRa node detects beacon
**Send short text over LoRa:**
```bash
cargo run --bin warzone-mule -- lora-send "SOS need evac" --to <fingerprint>
```
- [ ] Message fits in single LoRa packet (< 250 bytes)
- [ ] Compact binary format used (not JSON)
- [ ] Recipient receives and decrypts
- [ ] Delivery receipt sent back over LoRa
**LoRa limitations:**
- [ ] Messages > 200 chars rejected with warning
- [ ] Files cannot be sent over LoRa
- [ ] Latency shown: "Sent via LoRa (estimated 2-5 seconds)"
---
## 3. mDNS / LAN Discovery
**Two devices on same LAN, no internet:**
```bash
cargo run --bin warzone-server -- --mdns
```
- [ ] Server advertises via mDNS: `_warzone._tcp.local`
- [ ] Client discovers server without typing IP/URL:
```bash
cargo run --bin warzone-client -- chat --discover
```
- [ ] Shows: "Found warzone server at 192.168.1.42:7700"
- [ ] Chat works normally over LAN
---
## 4. Wi-Fi Direct (Nearby Mesh)
**Two devices, no router needed:**
```bash
cargo run --bin warzone-client -- chat --wifi-direct
```
- [ ] Devices discover each other via Wi-Fi Direct
- [ ] Form ad-hoc connection
- [ ] Messages synced peer-to-peer (no server)
- [ ] Group sync: all messages replicated to all peers in range
- [ ] Bandwidth: > 10 MB/s
---
## 5. USB / Sneakernet Export
**Export messages:**
```bash
cargo run --bin warzone-client -- export --since 24h --to /mnt/usb/messages.wz
```
- [ ] Messages exported as encrypted file
- [ ] File is portable (copy to USB drive)
- [ ] Export size shown: "Exported 142 messages (2.3 MB)"
**Import on another machine:**
```bash
cargo run --bin warzone-client -- import /mnt/usb/messages.wz
```
- [ ] Messages imported and decrypted
- [ ] Deduplication: already-seen messages skipped
- [ ] "Imported 142 messages (38 new)"
---
## 6. Transport Fallback Priority
**Configure fallback chain:**
```
warzone-server --transport https,bluetooth,lora
```
- [ ] Server tries HTTPS first
- [ ] If HTTPS fails → falls back to Bluetooth
- [ ] If Bluetooth unavailable → falls back to LoRa
- [ ] Each fallback logged with reason
---
## Summary
| # | Feature | Result |
|---|---------|--------|
| 1 | Bluetooth mule | ☐ |
| 2 | LoRa transport | ☐ |
| 3 | mDNS discovery | ☐ |
| 4 | Wi-Fi Direct | ☐ |
| 5 | USB export/import | ☐ |
| 6 | Transport fallback | ☐ |
**Tester:** _______________
**Date:** _______________