-
Notifications
You must be signed in to change notification settings - Fork 0
Device GUI Verification
Source: docs/DEVICE_GUI_VERIFICATION_ROADMAP.md. β Overview
A follow-up to the language roadmap: the targets left out of scope there β mobile, embedded, native desktop GUI. Each slice is "same pipeline, new adapters".
Legend: β done Β· π’ partial Β· π§ in progress Β· β¬ planned
| Level | Meaning |
|---|---|
| L0 | Builds cleanly |
| L1 | Host-side unit tests pass |
| L2 | Runs in emulator/simulator, assertions pass |
| L3 | Screenshot verification (agent visually confirms UI) |
| L4 | Scripted interaction (agent drives input and asserts) |
| L5 | On physical device (out of scope except serial harness) |
| Target | Detection | Test discovery | Interaction | Best level |
|---|---|---|---|---|
| Android (Kotlin/Java) | β | π’ instrumented tests (#422) | β | L1βL2 |
| Flutter | β | π‘ flutter test
|
β | L1 |
| iOS (Swift) | π‘ Package.swift only |
π‘ swift test
|
β | L1 |
| React Native | β | π‘ jest | β | L1 |
| Embedded (PlatformIO/Zephyr/ESP-IDF) | β | β | β | L0 |
| Desktop GUI (Qt/GTK/native) | β | β ctest | β | L1 |
| Tauri | β | π‘ jest/vitest | β | L1 |
- π’ A1 instrumented test discovery: Gradle Managed Virtual Devices +
connectedAndroidTestfallback (#422) β L2. - β¬ A2 adb tools (
android_screenshot/android_input/android_logcat) β L3/L4. - β¬ A3 Maestro flows (YAML, LLM-friendly, kept as regression tests).
- β¬ B1
flutter drive/integration_test+ emulator lifecycle β L2. - β¬ B2 reuse A2 adb tools β L3/L4.
Honest ceiling without hardware is L2. β¬ C1 detect+allowlist+discovery (PlatformIO pio test, Zephyr west twister -p qemu, ESP-IDF); β¬ C2 Renode harness; β¬ C3 serial harness run_serial_session (the only sanctioned L5); β¬ C4 QA honesty ("verified in QEMU, not on hardware").
- β¬ D1 launch + screenshot (L3): macOS
screencapture, WindowsSystem.Drawing, Linuxgrim/import. - β¬ D2 accessibility-tree read (Windows UIAutomation β Linux AT-SPI β macOS AXUIElement).
- β¬ D3 input injection (L4).
- β¬ D4 Tauri fast-path via
tauri-driver(WebDriver), independent of D1βD3.
- β¬ E1 detect
*.xcodeproj/*.xcworkspace+xcodebuild teston the simulator (is_macos()). - β¬ E2 screenshots
simctl io booted screenshot(L3). - β¬ E3 input via
idbor Maestro.
- A1 β β 2. A2 adb tools β 3. C1 embedded detect β 4. C3 serial β 5. B1 flutter drive β 6. D1 desktop_screenshot β 7. C2 Renode β 8. E1/E2 iOS β 9. Maestro (A3/E3) β 10. D2/D3 β 11. D4 tauri-driver.
Device farms (Firebase/BrowserStack), hardware-in-the-loop beyond the serial harness, commercial GUI automation (Squish/TestComplete).
- π Overview / status
- π― Strategic goals (P1βP5)
- π Multi-provider / CLI runner
- π€ Non-Claude autonomy
- π£οΈ Language support
- π± Device & GUI verification
Legend: β done Β· π§ in progress Β· β¬ planned