Skip to content

FDK (Field Deployment Kit) - Comprehensive QA Testing Checklist Android #34

@zew-rgn

Description

@zew-rgn

Version: 0.9.1
Created: 2026-01-27
Status: Pre-Release QA

This document provides a comprehensive checklist for testing all functions of the FDK mobile app before release. All three AI reviewers (Claude, Codex, Gemini) have contributed to ensure 100% coverage.


Test Environment Requirements

Staging Environment

  • API URL: Staging RXG server with valid HTTPS certificate
  • Credentials: Valid API token with read/write permissions
  • Test Data: Pre-populated devices, rooms, and notifications

Test Devices

  • iOS device (iPhone/iPad)
  • Android device

1. Authentication & Security

1.1 QR Code Authentication

  • Scan valid authentication QR code
  • Verify successful login and navigation to home screen
  • Scan malformed QR code - expect graceful error message
  • Scan expired/invalid QR code - expect error handling
  • Camera permissions denied - expect appropriate prompt

1.2 Manual Token Authentication

  • Enter valid FQDN, username, and API token
  • Verify successful authentication
  • Enter invalid credentials - expect clear error message
  • Leave fields empty - expect validation errors

1.3 Session Management

  • App remembers credentials after restart
  • Logout clears all stored credentials
  • Session timeout handling (if applicable)
  • Authentication state persists across app backgrounding

1.4 Certificate Handling

  • Valid certificate - successful connection
  • Self-signed certificate - warning with option to proceed (debug mode)
  • Expired certificate - appropriate error message
  • Certificate mismatch - rejection with clear error

2. Device Management

2.1 Device List Display

  • All device types displayed (APs, ONTs, Switches, WLAN Controllers)
  • Device count matches server data
  • Device status indicators show correctly (online/offline/warning/error)
  • Loading indicator appears during fetch
  • Empty state displayed when no devices

2.2 Device Filtering & Search

  • Filter by device type (AP, ONT, Switch)
  • Filter by status (online, offline, etc.)
  • Search by device name
  • Search by MAC address
  • Search by IP address
  • Clear filters resets view
  • Multiple filters work together correctly

2.3 Device Sorting

  • Sort by name (A-Z, Z-A) (To be implemented in Future, not part of ATT-FE-Tool)
  • Sort by status
  • Sort by last seen/updated (To be implemented in Future, not part of ATT-FE-Tool)
  • Sort persists after navigation

2.4 Device Detail View

  • Navigate to device detail from list
  • All device information displayed correctly
    • Name, type, status
    • MAC address
    • IP address
    • Serial number
    • Model/firmware information (To Be tested, need an AP with firmware on it to be seen and sent)
    • Room assignment
    • Notes
  • Back navigation returns to list with scroll position preserved

2.5 Device Image Management

  • View existing device images
  • Open image in full-screen viewer
  • Upload new image from camera
  • Upload new image from gallery
  • Upload progress indicator displayed
  • Upload success confirmation
  • Image appears after upload (may require refresh)
  • Delete image with confirmation
  • Delete cancellation preserves image
  • Handle upload failure gracefully
  • Handle large images (compression applied) (Need an image too large to test)
  • Delete image failure handling (API error, offline, permission denied)
  • Cache refresh after image deletion (list updates without full refresh)
  • Invalid image URL handling (broken link, 404)

2.6 Device Notes

  • View existing notes
  • Edit notes
  • Save note changes
  • Cancel note editing preserves original
  • Notes sync with server
  • Notes persist after app restart

2.7 Device Reboot

  • Reboot button visible for supported devices
  • Confirmation dialog before reboot
  • Reboot progress/status indicator (Need live device to test)
  • Success message after reboot initiated (Need live device to test)
  • Handle reboot failure gracefully (Need live device to test)

3. Barcode/QR Scanning

3.1 Scanner Initialization

  • Camera permissions requested on first use
  • Camera preview displays correctly
  • Flash toggle works (if device supports)
  • Scanner guidelines visible

3.2 Device Type Selection

  • AP scan mode (requires 2 barcodes: serial + MAC)
  • ONT scan mode (requires 2 barcodes: serial + MAC)
  • Switch scan mode (requires 1 barcode: serial) (Need Switch barcode to test)
  • Mode switch clears previous scan session

3.3 Barcode Scanning

  • Scan valid serial number barcode
  • Scan valid MAC address barcode
  • Barcode detected feedback (visual/audio)
  • Progress indication (1 of 2 scanned)
  • Session complete when all required barcodes scanned

3.4 Device Registration

  • Registration popup appears after successful scan
  • Correct device info displayed
  • Confirm registration - device created/updated
  • Cancel registration - scan session cleared
  • Handle duplicate device gracefully
  • Handle unrecognized barcode format (Need barcode to test)

3.5 Scan Session Management

  • 6-second accumulation window works correctly
  • Session timeout clears partial scans
  • Manual cancel/reset works
  • Scanner resumes after registration

3.6 Edge Cases

  • Scan same barcode twice - appropriate handling
  • Scan barcodes in wrong order - still works
  • Poor lighting conditions - scanner still functional
  • Barcode at angle - still scans
  • Multiple barcodes in frame - handles correctly

4. Room Management

4.1 Room List Display

  • All rooms displayed
  • Room count matches server data
  • Loading indicator during fetch
  • Empty state when no rooms (need to delete all rooms to test)

4.2 Room Detail View

  • Navigate to room detail
  • Room information displayed correctly
  • Associated devices listed
  • Device status summary (X online, Y offline)
  • Navigate to device from room detail

4.3 Room-Device Association

  • Devices correctly assigned to rooms
  • Unassigned devices shown appropriately
  • Room filter in device list works

5. Alerts

5.1 Alerts Display

  • Alerts list displays
  • Unread count badge shown
  • Notification types displayed with appropriate icons
    • Critical notifications
    • Warning notifications
    • Info notifications
    • Success notifications (No notices are sent if the device is working)
  • Timestamp displayed correctly

5.2 Notification Interactions

  • Mark single notification as read (Notifications are not pop-ups they show up in the alerts tab to be viewed in a list)
  • Mark all notifications as read
  • Clear all notifications
  • Navigate to related device/room (if applicable)
  • Deep-link to missing device (device deleted, graceful error handling)
  • Deep-link to missing room (room deleted, graceful error handling)

### 5.3 Notification Generation

  • Device status change generates notification (Need to change a devices status to check)
  • Image upload completion generates notification
  • Connectivity issues generate notification

6. Settings

6.1 Settings Display

  • Settings screen accessible from navigation
  • All settings options displayed

6.2 Settings Operations

  • Change theme (if available) (Not currently available)
  • ~~Change logging level ~~ (Logging set via running the app)
  • Export settings to file (To maybe implemented in Future, not part of ATT-FE-Tool)
  • Import settings from file (To maybe implemented in Future, not part of ATT-FE-Tool)
  • Clear cache
  • Reset to defaults (To be implemented in Future, not part of ATT-FE-Tool)
  • Settings persist after app restart

6.3 Account Settings

  • View current user/server info
  • Logout functionality
  • Logout clears all cached data

7. Speed Test (Diagnostic Tool)

7.1 Speed Test Execution

  • Speed test card visible on home screen
  • Start speed test
  • Progress indicator during test
  • Results displayed (download/upload speeds)
  • Results history (if applicable)

7.2 Network Gateway Discovery

  • Gateway detected automatically
  • Manual gateway configuration (if supported)

8. Offline Functionality

8.1 Offline Data Access

  • Cached device list accessible offline
  • Cached room list accessible offline
  • Device details accessible offline
  • Clear offline indicator displayed

8.2 Offline Operations

  • Queue operations while offline (To be implemented in Future, not part of ATT-FE-Tool)
  • Sync when connectivity restored
  • Conflict resolution for concurrent changes [When device is offline changes are not saved] (To be implemented in Future, not part of ATT-FE-Tool)

8.3 Connectivity Transitions

  • Online to offline - graceful transition
  • Offline to online - automatic sync
  • Intermittent connectivity - resilient behavior

9. WebSocket Real-Time Updates

9.1 Connection Management

  • WebSocket connects on app start
  • Connection status indicator (if visible)
  • Automatic reconnection after disconnect
  • Exponential backoff for reconnection attempts
  • Heartbeat/ping-pong keeps connection alive

9.2 Real-Time Data Sync

  • Device status changes reflect immediately
  • New devices appear without manual refresh
  • Deleted devices removed without manual refresh
  • Image changes reflect in real-time

10. Navigation & UX

10.1 Bottom Navigation

  • Home tab navigation
  • Scanner tab navigation
  • Devices tab navigation
  • Rooms tab navigation
  • Notifications tab navigation (if applicable)
  • Settings tab navigation
  • Active tab indicator correct

10.2 Screen Navigation

  • Back navigation works correctly (To be implemented in Future, not part of ATT-FE-Tool)
  • Deep link navigation works
  • Navigation state preserved on rotation
  • Navigation state preserved on background/foreground

10.3 Gesture Handling

  • Pull-to-refresh on lists (Use of websockets means pull to refresh is redundant)
  • Swipe gestures (if applicable)
  • Long press actions (if applicable)
  • Pinch-to-zoom on images

10.4 Loading States

  • Initial load indicators
  • Refresh indicators
  • Skeleton loading (if implemented)
  • Progress indicators for long operations

10.5 Error States

  • Network error displays
  • Server error displays
  • Empty state displays
  • Retry mechanisms available

11. Performance

11.1 Startup Performance

  • App launches within acceptable time (<3s)
  • Splash screen displays correctly
  • Initial data loads within acceptable time

11.2 List Performance

  • Large device lists scroll smoothly
  • Image loading doesn't block UI
  • Pagination works for large datasets

11.3 Memory Management

  • No memory leaks during extended use
  • Image cache doesn't grow unbounded
  • App doesn't crash under memory pressure

11.4 Battery Usage

  • WebSocket doesn't drain battery excessively
  • Background refresh is reasonable

12. Platform-Specific Testing

12.1 iOS-Specific

  • Face ID/Touch ID integration (if applicable)
  • iOS share sheet integration
  • iOS notification permissions
  • iOS camera permissions
  • Safe area handling (notch, home indicator)

12.2 Android-Specific

  • Android permissions handling
  • Android back button behavior (Not tested as not used in app)
  • Android share intent(Not tested as not used in app)
  • Various Android versions (API 21+)(Not tested as user should be on newest version)

12.3 Responsive Design

  • Tablet layout (if supported)
  • Landscape orientation handling
  • Different screen sizes

13. Edge Cases & Error Recovery

13.1 Network Errors

  • Request timeout handling
  • Server 500 errors
  • Server 404 errors
  • Authentication expiration (401)
  • Rate limiting (429)

13.2 Data Integrity

  • Corrupt cache recovery
  • Invalid server response handling
  • Version mismatch handling

13.3 App State Recovery

  • Crash recovery
  • Force quit recovery
  • Low memory recovery
  • Process death recovery

14. Accessibility

14.1 Screen Reader Support

  • VoiceOver (iOS) navigation
  • TalkBack (Android) navigation
  • All interactive elements labeled

14.2 Visual Accessibility

  • Sufficient color contrast
  • Text scales with system settings
  • Touch targets are sufficiently large (44x44pt minimum)

15. App Update & Data Migration (Gemini Addition)

_### 15.1 Version Migration

  • Test app update from previous version
  • Verify cached data migrates correctly (credentials, device lists, settings)
  • No data loss during update
  • No re-authentication required after update (unless intentional)_(Not tested as app has not had an update)

15.2 Server-Side Token Revocation

  • API token revoked on server while app is running
  • App gracefully logs out on next authenticated request
  • Clear error message displayed to user
  • Cached data cleared on forced logout

16. Environmental & Device Interference (Gemini Addition)

(Do not have devices to test these)

16.1 Sensor Quality

  • Barcode scanning on lower-quality cameras
  • Scanning with smudged/dirty lens
  • Scanning in various lighting conditions (bright sunlight, low light)

16.2 System Interruptions

  • Incoming phone call during scanning
  • Incoming phone call during image upload
  • Alarm notification during critical process
  • Low battery notification during upload
  • App resumes correctly after interruption

16.3 Long-Term Stability

  • App running for extended period (24-48 hours)
  • No memory leaks during extended use
  • WebSocket reconnects properly after backgrounding
  • Battery drain is reasonable with WebSocket active

18. Localization (If Applicable)

(Not applicable)

18.1 Text Display

  • All text strings localized
  • Date/time formats localized
  • Number formats localized

18.2 RTL Support

  • Layout adapts for RTL languages
  • Icons flip appropriately

Test Execution Summary

Category Total Tests Passed Failed Blocked
Authentication
Devices
Scanning
Rooms
Notifications
Settings
Speed Test
Offline
WebSocket
Navigation
Performance
Platform
Edge Cases
Accessibility
TOTAL

Sign-Off

Role Name Date Signature
QA Lead
Dev Lead
Product Owner

Automated Test Status

Status: 806 tests passing, 0 tests skipped

Completed Migrations

  • rest_image_upload_service_test.dart - Fully migrated from http.Client to Dio mocking (18 tests)
  • ✅ Timer management resolved with NoopWebSocketService and NoopBackgroundRefreshService in test harness
  • ✅ Full-app integration tests moved to integration_test/ directory (7 tests)
  • ✅ Redundant skipped widget tests removed after integration test validation

Integration Tests Setup

Full-app tests that require the complete FDKApp widget use Flutter integration tests:

IMPORTANT: Integration tests require iOS or Android devices/emulators. They will NOT work on macOS desktop due to SharedPreferences plugin limitations.

Run integration tests with:

# With iOS simulator
flutter test integration_test/app_test.dart -d <iphone_simulator_id>

# With Android emulator
flutter test integration_test/app_test.dart -d <android_emulator_id>

# Using flutter drive (recommended for CI)
flutter drive --driver=test_driver/integration_test.dart --target=integration_test/app_test.dart -d <device_id>

Integration test coverage:

  • Development environment navigation with mock data
  • Development environment device list loading
  • Staging environment auto-authentication
  • Production environment authentication requirement
  • Production auth screen input fields
  • Splash screen display
  • Bottom navigation functionality

Technical Note

The FDKApp widget uses ref.listen inside initState via WidgetsBinding.instance.addPostFrameCallback. This is incompatible with UncontrolledProviderScope used in widget tests, which is why full-app tests are run as integration tests instead.


Notes

  • Tests marked with blocking issues should be documented in issue tracker
  • All failed tests require a linked bug report
  • Performance tests should include metrics (load time, memory usage, etc.)
  • Platform-specific issues should note affected versions
  • Skipped automated tests shift burden to manual QA - prioritize re-enabling them

Review Consensus

This checklist has been reviewed and approved by:

Reviewer Status Key Feedback Incorporated
Claude ✅ Approved Created initial comprehensive checklist
Codex ✅ Approved Added image deletion failure paths, cache refresh, deep-link handling
Gemini ✅ Approved Added app migration, system interruptions, long-term stability

All three reviewers have reached consensus that this checklist provides comprehensive coverage for pre-release QA testing.


Document generated with consensus from Claude, Codex, and Gemini AI reviewers - 2026-01-27

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions