Skip to content

Android test matrix generator ​

In short: The Android test matrix generator turns the Android versions you support and conditions such as screen size, language, dark mode, font size and network into the rows to test. Pairwise mode covers every pair of values in a few dozen rows instead of every combination, counts the phone setups you need, and exports the matrix as CSV, all in your browser.

Rows
Other factors (values separated by commas)

37 rows instead of 1,944 combinations, covering every pair of values. They need 36 phone setups (Android version, screen); the other factors are settings you change on the same phone.

#AndroidScreenLanguageThemeFont sizeNetwork
1API 28small phoneEnglishlight100%Wi-Fi
2API 28large phoneGerman (long words)dark130%mobile data
3API 28foldableArabic (right to left)light200%offline
4API 28tabletEnglishdark200%Wi-Fi
5API 29small phoneGerman (long words)light130%offline
6API 29large phoneEnglishlight100%mobile data
7API 29foldableEnglishdark100%offline
8API 29tabletArabic (right to left)light100%Wi-Fi
9API 30small phoneArabic (right to left)dark130%mobile data
10API 30large phoneEnglishlight200%Wi-Fi
11API 30foldableGerman (long words)light100%Wi-Fi
12API 30tabletGerman (long words)light130%offline
13API 31small phoneEnglishlight130%Wi-Fi
14API 31large phoneArabic (right to left)dark100%offline
15API 31foldableGerman (long words)light200%mobile data
16API 31tabletEnglishlight100%mobile data
17API 32small phoneEnglishlight200%Wi-Fi
18API 32large phoneGerman (long words)dark100%mobile data
19API 32foldableArabic (right to left)light130%offline
20API 32tabletEnglishlight100%Wi-Fi
21API 33small phoneEnglishlight100%Wi-Fi
22API 33large phoneGerman (long words)dark130%mobile data
23API 33foldableArabic (right to left)light200%offline
24API 33tabletEnglishlight100%Wi-Fi
25API 34small phoneEnglishlight100%Wi-Fi
26API 34large phoneGerman (long words)dark130%mobile data
27API 34foldableArabic (right to left)light200%offline
28API 34tabletEnglishlight100%Wi-Fi
29API 35small phoneEnglishlight100%Wi-Fi
30API 35large phoneGerman (long words)dark130%mobile data
31API 35foldableArabic (right to left)light200%offline
32API 35tabletEnglishlight100%Wi-Fi
33API 36small phoneEnglishlight100%Wi-Fi
34API 36large phoneGerman (long words)dark130%mobile data
35API 36foldableArabic (right to left)light200%offline
36API 36tabletEnglishlight100%Wi-Fi
37API 29small phoneEnglishlight200%Wi-Fi

The same choices always give the same matrix. Nothing leaves your browser.

Running the rows is the slow part. BenchFleet shows every phone on one screen, and on Pro a workflow's Device conditions step sets language, dark mode, font size and other settings for a run and puts them back afterwards, on many phones at once. See workflows and schedules and managing a bench of Android test devices.

Free for up to 3 phones, with no account. Pro adds workflows, schedules and AI for up to 25 phones from £12 a month + VAT.

How to use it ​

  1. Choose the lowest and highest Android versions you support: usually your app's minSdkVersion and targetSdkVersion. Every API level between them becomes a value.
  2. Tick the other factors that matter for your app and edit their values; add one of your own, such as an account type.
  3. Pairwise gives the shortest list that pairs every value with every other value at least once; every combination lists them all, up to 5,000 rows.
  4. Export the rows as CSV for your test tracker, or print them.

How the matrix is built ​

Each new row starts from the first pair of values no row has yet, then gives every other factor the value that adds the most new pairs, taking the first on a tie. That greedy all-pairs construction is not always the smallest possible matrix, but it is close, it always covers every pair, and it gives the same rows for the same choices. The tests check the coverage for each preset.

The values for versions come from the Android API levels list. The mobile app testing checklist has the checks to run on each row, and Android's guidance on testing across screen sizes explains which screen classes matter.

Questions ​

What is pairwise testing?

Choosing test rows so that every pair of values from any two factors appears together at least once, such as Android 14 with dark mode or a tablet with Arabic. Most bugs that depend on settings depend on one or two of them, so pairs catch most of them in far fewer rows than every combination.

Why does the matrix count phone setups?

The Android version, the screen and the density belong to the phone, so each different combination needs another phone or emulator. Language, theme, font size and network are settings you change on the same phone between rows.

Does the same input always give the same matrix?

Yes. The construction is deterministic, so a matrix you export today is the one a colleague gets from the same choices tomorrow.

Is pairwise enough?

For broad coverage of settings, usually. Add rows by hand for combinations you know are risky, such as the oldest Android version with the largest font size, and test new features on every phone you support.

Does it send my factors anywhere?

No. It works in your browser, and nothing leaves your browser.

Start with the Free plan

Free for up to 3 phones, with no account. Pro adds workflows, schedules and AI for up to 25 phones from £12 a month + VAT.