Setting up real device testing via Firebase Test Lab

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
Setting up real device testing via Firebase Test Lab
Medium
~2-3 business days
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1050
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Setting Up Testing on Real Devices via Firebase Test Lab

Emulator lies. Not maliciously, but systematically: GPU rendering different, Bluetooth unavailable, camera simulated, memory behavior differs from real device. Firebase Test Lab provides access to physical devices — Pixel 8, Samsung Galaxy S24, tablets, old Xiaomi with custom ROMs. A test passing on emulator may fail on Samsung One UI due to custom WebView or changed permission system.

What Firebase Test Lab Does

Two testing modes:

Instrumentation Tests — runs your Espresso / XCUITest tests on selected devices. Full control what's checked.

Robo Test — automatic crawler. Run APK without single written test, Robo itself crawls interface through Accessibility tree, taps buttons, fills fields with random data, searches for crashes. Useful for quick validation of new builds before release.

Platform support: Android (Espresso, UI Automator, Appium) and iOS (XCUITest). Firebase Test Lab for iOS — separate story with smaller device fleet, but real iPhone and iPad still more valuable than simulator.

Setup: From Build Upload to Results

Android

APK and test APK build:

./gradlew assembleDebug assembleAndroidTest

Upload and execution via gcloud:

gcloud firebase test android run \
  --type instrumentation \
  --app app/build/outputs/apk/debug/app-debug.apk \
  --test app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk \
  --device model=Pixel8,version=34,locale=en,orientation=portrait \
  --device model=a54xnsxx,version=13,locale=en,orientation=portrait \
  --results-bucket gs://my-project-test-results \
  --results-dir "run_$(date +%Y%m%d_%H%M%S)"

model=a54xnsxx is Samsung Galaxy A54. Available models list: gcloud firebase test android models list.

Device Matrix

Choosing matrix — separate analytical task. No point running tests on 50 devices. Principle:

Criteria What to Include
Top 5 devices from analytics From Firebase Analytics / Crashlytics data
Minimum supported OS version minSdkVersion / deployment target
Current OS version Android 14 / iOS 17
Samsung (One UI) Separately — due to customizations
Tablet If form-factor supported

Realistic matrix for most projects: 3–5 devices. More — costlier and longer, but not necessarily more informative.

iOS

For iOS need .ipa with development signature (not distribution). Upload:

gcloud firebase test ios run \
  --test MyAppTests.zip \
  --device model=iphone15pro,version=17.4,locale=en_US,orientation=portrait

MyAppTests.zip is archive with .xctestrun file and test products. Built through xcodebuild build-for-testing.

Robo Test with Custom Script

Pure Robo crawler sometimes gets stuck on login screen — doesn't know credentials. Robo Script allows setting initial actions:

[
  {
    "eventType": "VIEW_TEXT_CHANGED",
    "replacementText": "[email protected]",
    "elementDescriptors": [{"resourceName": "com.example.app:id/email_input"}]
  },
  {
    "eventType": "VIEW_CLICKED",
    "elementDescriptors": [{"resourceName": "com.example.app:id/login_button"}]
  }
]

After authorization Robo continues crawl of already authorized app. Fast way to check regressions without writing tests.

CI Integration

GitHub Actions:

- name: Set up gcloud
  uses: google-github-actions/setup-gcloud@v2
  with:
    service_account_key: ${{ secrets.GCLOUD_SERVICE_ACCOUNT_KEY }}
    project_id: my-firebase-project

- name: Run tests on Firebase Test Lab
  run: |
    gcloud firebase test android run \
      --app app-debug.apk \
      --test app-debug-androidTest.apk \
      --device model=Pixel8,version=34 \
      --timeout 10m

Service account needs role Firebase Test Lab Admin. Results auto-saved to Cloud Storage — screenshots, video, logcats, XML report.

Results Analysis

Firebase Test Lab console shows for each run:

  • Video recording of test execution
  • Logcat with tag filters
  • Screenshots at key points
  • Coverage report (if jacoco enabled)
  • XML results in JUnit format (for Allure / Jenkins)

Timeline

2–3 days — Firebase Test Lab setup, device matrix configuration, CI integration, Robo Script setup for authorization. Plus time for first results analysis and fixing device-specific issues. Cost is calculated individually.