The Firebase Test Lab team is kicking off 2017 with some new features that make it easier for you to customize the testing of your Android apps. The following two enhancements are designed to save you time and money, so you can get the most out of Test Lab for your daily testing routine.

Sparse Device Matrix Selection

Previously, when selecting the combination of device and API levels, you were obliged to run against every possible valid combination of selected device and API level. For example, to run a test on a Nexus 5 and Nexus 7 on both API levels 19 and 21, the device selection matrix used to look like this: 

The above selection would have scheduled the test on a matrix with a total of four combinations of device and API level. But what if I want to test against only two configurations: a Nexus 5 with API level 21, and a Nexus 7 with API level 19? With the old UI, that was not possible. However, with the new UI, you can easily get this behavior:

The above selection will only schedule the two selected combinations of device and API level. You are no longer obliged to test on every possible combination of selected device and API. With this new UI, you can now be much more specific about the configurations you want. This makes it faster and less expensive to retry tests on only those configurations where your app previously encountered errors.

Saved Matrix Templates

If you use Test Lab frequently and are tired of entering the same device matrix information repeatedly, you can now save a matrix configuration as a template, and refer to that template when running a test. There is a new templates tab available on the Test Lab feature home screen:

Here, you can create and manage your device matrix templates. Then, when you go to run a test, you can select from a list of your templates to apply to the test:

Custom Text Input for Robo Test

If you're already using Firebase Test Lab for Android to run its automated Robo test, you've probably already gotten a lot of mileage out of its ability to intelligently crawl your app running on our devices. But for some of you, Robo wasn't a very useful option, because it was unable to bypass a custom login screen, or enter some specific text at the right place.

Now, you can configure a Robo test to use specific strings at key locations in your app. Here's an example of the Firebase console UI that specifies both a credential for a custom login form, and a search term to be used in a search box:

This UI is available as an "advanced option" when running a test
This UI is available as an "advanced option" when running a test

This UI is available as an "advanced option" when running a test.

This configuration is telling the Robo test to type the string test_lab_user into every EditText widget with the Android resource ID named tv_username. It will do similarly for the tv_password and tv_search EditText widgets. This type of customization will make it easier for Robo log into your app and perform a search where those named widgets are observed. You can have text prepared for any EditText in your app that has a resource ID, as long as you're able to provide its name. However, this does not work for WebView elements.

Keep thinking about app quality!

The Firebase team wants your app to be successful, and a great way to make that happen is by using features provided by Firebase. So make 2017 a year of high quality for your app!