Internal Testing in Google PlayStore

Anirban Mukherjee
6 min readJul 15, 2022

Internal Testing tracks in Play Store are meant for testing out software builds within your testing teams.

Internal testing is meant for exactly that -> testing software builds within your development or testing teams. It requires you to register every tester in Play Store and the “tester” is also required to make some changes to their phones before they are able to commence testing.

Each type of testing in PlayStore is a track; each track can have multiple releases in them. So, internal testing (like open or closed testing) is a track, and it can have multiple releases on it. Release names are “strings” so you can name it as you wish and has no correlation to the versionName defined in the app’s Manifest file.

Every release on any track can be “promoted” (similar concept like Build Promotion) to another track with a single button click. So once you are done with Internal testing a particular app version, you can easily “promote” the build to open testing to make it available to all beta testers.

How it works

Once you have a software build that is meant for testing within your development / testing team, you can create a new release in the Internal Testing track of your app. Add in the APK or App Bundle, put in some release notes, add the testers that you want to test out the app version and “rollout” to the testers. The app version is available only to those that you select as testers for the app in internal testing tracks

In this track, Play Store does not send any sort of notification / email to the testers when a new app release is ready.

How to register testers to Internal Testing

To have someone gain access to an app release in Internal testing track, they must be registered in PlayStore as a tester for that release. Testers are registered in groups / lists; a list of testers has access to all releases in the testing track that they are associated with.

Testers need to be registered using their Google account email ID that is logged in on the Android phone / tablet that they wish to access the app from. To add a new tester, you need to “create email list” if you do not already have one and add in the email address of the tester(s) there.

In a typical app development organisation, that will mean you will need to first get the Google email addresses logged in on each tester’s phones/tablets, add them into the testers list for the internal testing track and only then your testing team members will be able to access the app.

You can have multiple testers list(s) associated with a track. So if your product managers and testers both want to test out app releases in the internal testing track, you can create 2 separate lists for them and associate them in to the Internal Testing track (you can do so from the “Testers” tab next to “Releases” tab in the Internal testing page).

How do testers access the Internal testing app releases

For testers to be able to access app releases from the Internal testing track, being registered (as mentioned above) is a pre-requisite. After this, on first access, they need to first do 2 things before they can actively start testing:

  1. On their Android device logged in with the same Google ID, they need to enable “developer mode” in Play Store app. (Note: this is different from Developer Mode of the phone used USB debugging, etc). Open Play Store app on the same Android device where the app will be tested. Navigate to Settings, and click on “Play Store version” 7 times. You will then see a toast message saying “You are now a developer!”. Then in the Settings page, expand “General” and enable the toggle for “Internal app sharing”.
  2. They need to accept your invitation to join the internal testing track. First, on the Internal Testing page, find the link that says “join on the web”. The format of the link is typically “https://play.google.com/apps/internaltest/…”. The tester (after having their Google ID registered as mentioned above) needs to open this link in a browser on the same Android device where they wish to test the app. On opening the link, they will be asked to “Accept Invitation” to the internal testing program of your app. On accepting it, they will be provided a download link in the next web page. Clicking this download link, they will be redirected to the download page on their Play Store app.

After the tester has performed the above steps, they will be able to access all subsequent app releases from the Internal testing track.

Accessing new app version releases

When you rollout a new app release in the Internal Testing track, the app version is almost immediately available to all “testers” associated with the Internal testing track. To get the download link of the particular app release, click on “view release details” > click on the arrow on the right side of the app bundle listed > navigate to Downloads tab > click on the “copy shareable link” to get the download link of the specific app release. Pass this link on to the testers registered for Internal testing. They will be redirected to the download page of Play Store app, when they open this link in a webpage on the registered Android device.

Downloading the app releases

When an app is in Internal testing phase, the app’s name as defined in the App Listing page in Play Store or in the app’s Manifest xml may not be displayed in the download page that testers view in their Play Store app. Instead the application ID (reverse domain name format) is displayed along with a label that the app is in “Early Access” and has not been reviewed for publishing by Google.

These steps visually makes the testers aware that the Internal testing app releases are meant for “internal use only”

Google PlayStore does not necessarily review each app release before making it available for download for the testers, unlike other tracks like open or closed testing (which I will talk about in other posts). But I found this to change on a case-by-case basis.

App review

There is no official documentation I could find that mentions that PlayStore will review the app’s build (artifact) for compliance to their policies before it is made available to internal testers.

My experience however has been that a review is done before making the app release available to testers for the first release in the Internal testing track. For subsequent releases in the Internal testing track, the release is mostly made available to testers right away and reviews of the build artifact is run later. Review times officially can be upto 1–2 weeks, but for Internal testing releases, I have typically seen them to be done and rolled out within days, in most cases in hours !

Pre-launch report

For any app release that you rollout in Internal testing track, Google runs an extensive set of UI tests on the app bundle / apk. For Internal testing track, this happens after the app has been made available to the testers.

Pre-launch tests are essentially an extensive set of Espresso-based UI tests that Google runs on the app artifact (app bundle / apk), and makes the results available for you with screenshots, videos, crash reports, and a lot more. Depending on the types of devices (phones/tablets from different manufacturers) that you want to release your app to, Google runs these tests on a variety of devices with varying screen sizes, Android OS versions, different manufacturers. Most of these devices are emulators, but some are real Android hardware devices too.

In personal experience, I found this to be “free gold”. The tests extensively tests out each UI component, and presents a report about stability , performance, accessibility , security issues found in the app version. For crashes detected in these tests, you even get a sizeable logcat dump with the stacktrace. The tests are executed automatically, for free, and the results are available to you forever.

You can also customise these tests by integrating Firebase Test Lab into your project.

Summary

As you might have understood by now, the Internal testing track is intended for use by internal testing teams. It is not meant to be used by external parties/greenfield testers, particularly due to the requirement of having to register their Google ID in PlayStore before they can access the app releases.

For alpha or beta testing of apps, PlayStore provides Closed and Open testing tracks, which I will talk about in upcoming posts.

With the Internal Testing track, Google PlayStore provides a simplified app distribution system right from the development phase. This way you are not only able to reach and get feedback from targeted segments of testers, product managers, and designers but also be able to seamlessly integrate into policy checks, take advantage of free services like Pre-Launch reports, and also create a build and deploy pipeline using simple build promotion techniques.

I regularly write about different topics in tech including career guidance, the latest news, upcoming technologies, and much more. This blog was originally posted in my blogs at anirban-mukherjee.com

--

--

Anirban Mukherjee

Loves writing code, building projects, writing about tech stuff, running side hustles; Engineering leader by day, nerd builder by night.