Blog Infos
Author
Published
Topics
, , , ,
Published

Image credit: Google Play Console Logo (2023) by Google, licensed under CC BY-SA 4.0

Introduction

Releasing an Android app to production always comes with risk — especially when the update involves database migrations or internal logic changes. Over time, I’ve learned that testing in a realistic environment is essential for catching issues that won’t appear in development builds.

That’s why I rely on Google Play’s Internal Testing track as a core part of my release process.

I follow the same workflow both at work and in my personal projects. Even when I’m working alone, I don’t skip steps or take shortcuts. Each release goes through internal testing, is installed through Google Play, and is verified on a real device — just like it would be in production.

In this article, I’ll walk through that process step by step — and explain how it helps me ship production-ready Android apps with more confidence and fewer surprises.

Internal Testing in Practice

Even in my personal projects, I follow the same internal testing workflow I use in production environments. This section outlines the full process — from uploading a build to promoting it — step by step.

Step 1 — Google Play Console: Entry Point

Everything starts in Google Play Console. Under the Test and release section, there are several release tracks available: internal, closed, and open. For pre-production validation, I use the Internal Testing track.

It simulates the real user flow while keeping the release limited to selected testers.

Step 1 — Google Play Console: Entry Point

Step 2 — Uploading the Release Build

Next, I upload the new app bundle to the Internal Testing track. This is the same build that will go to production — no debug-only configurations, no test flags.

Starting internal testing with the actual release artifact helps ensure that the upgrade path and runtime behavior match what users will experience after the rollout.

Step 2 — Uploading the Release Build

Step 3 — Adding a Tester

After the upload, I add testers to the internal track — in my case, it’s just me.

Even when working alone, I go through the full process: joining the tester list, accessing the app via Google Play, and testing the update as a regular user. This helps eliminate inconsistencies that can occur when installing manually.

Step 3 — Adding a Tester

Step 4 — Installing the Update on a Real Device

The internal build is delivered through Google Play, just like a production release.

In this case, I’m testing my personal app, MovieLand, using the same flow I follow for team projects. The update is installed over the existing version on my device — not as a clean install.

Most production issues related to migrations or state restoration show up specifically during upgrade flows, and this step helps expose them.

Step 4 — Installing the Update on a Real Device

Step 5 — Promoting the Verified Build

After the update is tested and verified, I don’t create a new build or make any changes.

Instead, I promote the exact same bundle from the internal track to production. This avoids discrepancies between tested and shipped versions and makes the release process more predictable.

Step 5 — Promoting the Verified Build

Job Offers

Job Offers

There are currently no vacancies.

OUR VIDEO RECOMMENDATION

, ,

Cutting-Edge-to-Edge in Android 15: Using Previews and Testing in Jetpack Compose to Manage Insets.

With the advent of Android 15, edge-to-edge design has become the default configuration. Consequently, applications must be capable of accommodating window insets, including the system status bar and navigation bar, as well as supporting drawing…
Watch Video

Cutting-Edge-to-Edge in Android 15: Using Previews and Testing in Jetpack Compose to Manage Insets.

Timo Drick
Lead Android developer
Seven Principles Mobility GmbH

Cutting-Edge-to-Edge in Android 15: Using Previews and Testing in Jetpack Compose to Manage Insets.

Timo Drick
Lead Android develop ...
Seven Principles Mob ...

Cutting-Edge-to-Edge in Android 15: Using Previews and Testing in Jetpack Compose to Manage Insets.

Timo Drick
Lead Android developer
Seven Principles Mobility ...

Jobs

Conclusion

This process has helped me avoid issues that are often missed in development or debug environments — especially those related to upgrades, state migrations, or configuration mismatches.

Using Google Play’s Internal Testing track allows me to test each build in conditions that closely mirror the real user experience. It also brings clarity and consistency to how I validate releases — whether I’m working in a team or on a personal app.

The setup is simple, the overhead is low, and the benefit in terms of stability and confidence is hard to ignore.

If you haven’t yet used internal testing as part of your workflow, it’s worth trying.

If you found this helpful, feel free to leave a few claps — it helps others discover the post.

Many of my articles focus on practical case studies and real development insights, with clear explanations and hands-on examples.

If you’re looking to grow through useful, honest, no-fluff content — feel free to follow along.

This article was previously published on proandroiddev.com.

Menu