Companies experience
Looking to how other companies implemented UI/Snapshot testing
may help you to choose proper tools for your project
and save your time.
We would be really grateful if you could contribute and share your experience directly to this page, to help other people.
Revolut
UI testing
-
Write:
Kaspresso
Who write:
Android Engineers
Runner:
Marathon locally and on the CI
Where:
Headless emulators in Docker (Avito Image)
How often:
Each 4h and before each release
Network:
Mock, by Custom OkReplay
Test report:
Allure -
Other:
We use customOkReplay
to achieve requests indexing, and the same request time as it was while recording. We're going to open-source this solution Snapshot testing
-
Tools:
Screenshot tests for Android
How often to run:
Each commit to the Design System module -
Other:
We write snapshot tests per each component in the design system in all possible states, we don't write them for screens which implemented by using that components.
Kaspersky
UI testing
-
Write:
Kaspresso
Who write:
QA and developers
Runner:
AndroidJUnitRunner locally and on CI we use Marathon + custom tooling on top
Where:
On CI: Emulators (we use custom Docker container) and real devices (custom integration with STF)
How often:
Each pull request (functional tests), before the release (e2e tests) and nightly (e2e tests)
Test report:
On CI we use custom internal solution Snapshot testing
-
Tools:
Kaspresso
How often:
Many times per new feature to check new strings and translations
Check24
UI testing
-
Write:
Kaspresso
Who write:
developers
Runner:
AndroidJUnitRunner with Android Orchestrator
Where:
On CI: real devices
How often:
at noon and at night
Test report:
Junit4 Snapshot testing
-
Tools:
Shot
Who write:
developers
Runner:
TestButler + Composer for test sharding (Shot support out of the box)
Where:
On CI: emulators
How often:
On every PR
Test report:
Shot report, which includes image diffs when tests fail
Headhunter (hh.ru)
UI testing
-
Write:
Kaspresso wrapped with custom DSL for creating a test data
Who writes:
QA with support of Android Engineers
Runner:
Marathon on the CI
Where:
Headless emulators in Docker (Custom Image) at k8s
How often:
Every night on every Portfolio branch(protected branch for each business feature) and develop; Every PR to develop.
Test data:
End2End testing with test stands
Test report:
Allure
Test stability monitoring:
Custom tool for success rate visualization of each test between CI runs; Grafana for common graphs.
Delivery Club
UI testing
-
Write:
Kaspresso
Who:
QA and developers
Runner:
Delivery Club fork of Avito Runner, Argo Workflows
Where:
Redroid AiC, Redroid in DockerHub, Fork of Avito Emulator, Fork of Avito Emulator in DockerHub
How often:
Each commit for Courier App and Consumer App, Before regress testing
Network:
MockWebServer
Test report:
Kaspresso Allure Integration + Avito Runner Integration
Other:
Run Marathon in cloud
Auto.ru
UI testing & Screenshot testing
-
Write:
Espresso, Screenshot tests from facebook
Who:
Android Developers and QA Engineers
Runner:
Custom runner based on Android Orchestrator
Where:
Emulators
How often:
Each commit, nightly and before release
Network:
MockWebServer
Test report:
Allure
Test monitoring:
Collecting allure info in Postgres db and displaying it in DataLens, finding flaky packages, common errors, alerts, etc.
CFT
UI testing
-
Write:
Kaspresso
Who:
Android Developers and QA Engineers
Runner:
Marathon on the CI
Where:
Emulators
How often:
On every PR and one time per day on Main branch
Network:
Custom mockapi server
Test report:
Allure
Test monitoring:
Using Allure reports and Grafana monitoring for stable, resources work`
Ситимобил
UI testing
-
Write:
Kaspresso
Who writes:
QA Automation and QA Engineers
Runner:
Marathon on the CI
Where:
Emulators
How often:
Each merge request
Test report:
Allure
Network:
Custom mock system
BetterMe
UI testing
-
Write:
Espresso, UIAutomator, Ultron, compose ui-test
Who write:
QA Automation Engineers
Runner:
AllureAndroidJUnitRunner
Where:
on CI: emulators
How often:
nightly and before each release
Test report:
Allure TestOps
Test monitoring:
Allure TestOps