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

3.4 KiB

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:

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:

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:

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:

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:

cargo run --bin warzone-server -- --mdns
  • Server advertises via mDNS: _warzone._tcp.local
  • Client discovers server without typing IP/URL:
    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:

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:

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:

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: _______________