Testing UE Interaction
UE Interaction Testing
Validates implemented page functionality against UE interaction documentation.
Bash# Basic test execution adb devices # Ensure device connected dump_image current_state.png inspect_ui # Get element coordinates adb shell input tap 540 960 # Execute interaction sleep 2 dump_image result_state.png # Validate result
Progress:
- Build & deploy latest code to device
- Extract test matrix from UE documentation
- Execute test scenarios sequentially
- Document results and generate report
1. Extract Test Matrix from UE Documentation
Read target page's UE chapter and extract all testable interaction scenarios:
Markdown| # | Test Item | Precondition | Steps | Expected Result | Result | |---|-----------|--------------|-------|-----------------|--------| | 1 | WLAN toggle ON | WLAN OFF | Tap WLAN switch | Start network scan, show animation | | | 2 | Tap encrypted network | WLAN ON, network list visible | Tap network with lock icon | Password input dialog appears | | | 3 | Empty password blocked | Password dialog open | Don't enter password | Connect button grayed out | |
2. Execute Test Scenarios
For each scenario in the matrix:
Bash# a. Set preconditions (via ADB if needed) adb shell cmd wifi disable # b. Get target element coordinates inspect_ui # Find WLAN toggle coordinates # c. Execute interaction adb shell input tap 540 960 # d. Wait for state change sleep 2 # e. Validate results dump_image validation.png inspect_ui # Check UI hierarchy changes adb shell cmd wifi status # Check system state # f. Record pass/fail
Toggle State Testing
Validates switch component on/off behavior and associated effects.
UE Extraction: Look for "switch", "toggle", "enable", "disable" descriptions Validation Points:
- Associated UI elements show/hide correctly after state change
- State persists across page exits/entries
- Linked effects trigger properly (e.g., WLAN enables auto-scan)
Dialog Flow Testing
Validates popup trigger conditions, content, and button behaviors.
UE Extraction: Look for "dialog", "popup", "modal" descriptions Validation Points:
- Trigger conditions work correctly
- Title, content, button text matches UE specs
- Confirm/cancel button behaviors are correct
- State updates properly after dialog closes
List Sorting Testing
Validates list content sorting logic.
UE Extraction: Look for "sort", "priority", "order" descriptions
Validation Points:
- Connected items appear first
- Saved/remembered items have priority
- Signal strength sorting is correct
- New discovered devices insert at correct position
Input Validation Testing
Validates input field character limits and validation rules.
UE Extraction: Look for input tables with character/format limits Validation Points:
- Character length limits enforced (e.g., name 20 chars, password 8-24 digits)
- Input blocked when limit reached
- Error messages display correctly
- Confirm button disabled for empty/invalid input
State Transition Testing
Validates operation-triggered state changes and timing.
UE Extraction: Look for state flow descriptions (e.g., "Connecting → Connected → Auto-hide after 2s") Validation Points:
- Intermediate states display correctly (e.g., "Connecting...")
- Success/failure results show properly
- Timed auto-hide/navigation follows UE timing
- Recovery behavior after failures
- Get coordinates before operations — Use
inspect_uito get node coordinates before tap/scroll - No blind tapping — Never rely on memory or estimated coordinates
- Validate after operations — Screenshot to confirm effects
- Wait for state changes — Allow 1-3 seconds after operations, longer for async operations
- System state validation — Check system-level state via
adb shell:- WiFi:
adb shell cmd wifi status - Volume:
adb shell settings get system volume_* - Brightness:
adb shell settings get system screen_brightness - Language:
adb shell getprop persist.sys.locale
- WiFi:
- Screenshot storage — Save ADB screenshots to system temp directory, not project directory
Example 1: Input: UE doc states "Tap WiFi network shows password dialog if encrypted" Output: Test matrix entry validating encrypted network tap triggers password dialog with correct title and input field
Example 2:
Input: UE doc states "WLAN toggle OFF disables hotspot automatically"
Output: Test sequence: Enable hotspot → Toggle WLAN OFF → Verify hotspot disabled → Screenshot validation
- Extract ALL testable scenarios from UE documentation, not just main flows
- Test edge cases mentioned in UE docs (empty inputs, character limits, timeouts)
- Validate both UI changes and system state changes
- Wait appropriate time for async operations before validation
- Use consistent coordinate extraction via
inspect_ui
- Don't skip precondition setup — always establish correct starting state
- Don't assume coordinates — always extract from current UI hierarchy
- Don't test too fast — allow time for animations and state changes
- Don't only test happy paths — validate error conditions and edge cases
- Don't mix testing with fixing — only document issues, don't modify code during testing