From 28c3cb7c81617028f633ef381e46bdee293d7782 Mon Sep 17 00:00:00 2001 From: <> Date: Wed, 20 Jul 2022 13:54:48 +0000 Subject: [PATCH] Deployed 58189fb with MkDocs version: 1.3.1 --- .nojekyll | 0 404.html | 767 ++ adoption/companies_experience/index.html | 1126 +++ adoption/where_to_begin/index.html | 782 ++ assets/images/favicon.png | Bin 0 -> 1870 bytes assets/javascripts/bundle.6c7ad80a.min.js | 29 + assets/javascripts/bundle.6c7ad80a.min.js.map | 8 + assets/javascripts/lunr/min/lunr.ar.min.js | 1 + assets/javascripts/lunr/min/lunr.da.min.js | 18 + assets/javascripts/lunr/min/lunr.de.min.js | 18 + assets/javascripts/lunr/min/lunr.du.min.js | 18 + assets/javascripts/lunr/min/lunr.es.min.js | 18 + assets/javascripts/lunr/min/lunr.fi.min.js | 18 + assets/javascripts/lunr/min/lunr.fr.min.js | 18 + assets/javascripts/lunr/min/lunr.hi.min.js | 1 + assets/javascripts/lunr/min/lunr.hu.min.js | 18 + assets/javascripts/lunr/min/lunr.it.min.js | 18 + assets/javascripts/lunr/min/lunr.ja.min.js | 1 + assets/javascripts/lunr/min/lunr.jp.min.js | 1 + assets/javascripts/lunr/min/lunr.multi.min.js | 1 + assets/javascripts/lunr/min/lunr.nl.min.js | 18 + assets/javascripts/lunr/min/lunr.no.min.js | 18 + assets/javascripts/lunr/min/lunr.pt.min.js | 18 + assets/javascripts/lunr/min/lunr.ro.min.js | 18 + assets/javascripts/lunr/min/lunr.ru.min.js | 18 + .../lunr/min/lunr.stemmer.support.min.js | 1 + assets/javascripts/lunr/min/lunr.sv.min.js | 18 + assets/javascripts/lunr/min/lunr.th.min.js | 1 + assets/javascripts/lunr/min/lunr.tr.min.js | 18 + assets/javascripts/lunr/min/lunr.vi.min.js | 1 + assets/javascripts/lunr/min/lunr.zh.min.js | 1 + assets/javascripts/lunr/tinyseg.js | 206 + assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++++++ .../workers/search.b97dbffb.min.js | 48 + .../workers/search.b97dbffb.min.js.map | 8 + assets/stylesheets/main.1d29e8d0.min.css | 1 + assets/stylesheets/main.1d29e8d0.min.css.map | 1 + assets/stylesheets/palette.cbb835fc.min.css | 1 + .../stylesheets/palette.cbb835fc.min.css.map | 1 + basics/index.html | 782 ++ basics/instrumented_testing_basics/index.html | 1051 +++ basics/screenshot_testing/index.html | 1125 +++ basics/testing_theory/index.html | 1050 +++ basics/ui_testing/index.html | 1096 +++ basics/ui_tests_vs_snapshot_tests/index.html | 1048 +++ home/contribution/index.html | 906 +++ home/index.html | 828 ++ home/roadmap/index.html | 903 +++ images/basics/green_arrow.png | Bin 0 -> 35450 bytes images/basics/junit_runner.png | Bin 0 -> 100307 bytes images/home_header.svg | 472 ++ images/network_goal.svg | 4 + images/orchestrator.png | Bin 0 -> 47773 bytes images/package_clear.png | Bin 0 -> 1290986 bytes images/page_object_example.png | Bin 0 -> 20106 bytes images/playback.svg | 4 + images/practices/design_system.svg | 4 + images/practices/design_system_modules.svg | 4 + images/practices/header_flakiness.svg | 3 + images/pyramid.png | Bin 0 -> 18965 bytes images/pyramidE2E.png | Bin 0 -> 128174 bytes images/record.svg | 4 + images/snapshotTesting.png | Bin 0 -> 302744 bytes images/snapshotVsUiTests.gif | Bin 0 -> 2863742 bytes images/test_sharding_scalation.png | Bin 0 -> 37039 bytes images/ui_testing/ui_testing_button.png | Bin 0 -> 20917 bytes .../ui_testing/ui_testing_button_clicked.png | Bin 0 -> 25147 bytes images/ui_testing/ui_testing_cheat_sheet.jpeg | Bin 0 -> 161433 bytes images/ui_testing/ui_testing_results.png | Bin 0 -> 64266 bytes practices/emulator_setup/index.html | 1100 +++ practices/emulator_vs_real_device/index.html | 916 +++ practices/flakiness/index.html | 1337 ++++ practices/network/index.html | 1074 +++ practices/obfuscated_build/index.html | 1154 +++ practices/page_object/index.html | 1056 +++ practices/shared_test_components/index.html | 1054 +++ practices/state_clearing/index.html | 1126 +++ practices/test_runners_review/index.html | 1129 +++ search/search_index.json | 1 + sitemap.xml | 103 + sitemap.xml.gz | Bin 0 -> 210 bytes 81 files changed, 29299 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 adoption/companies_experience/index.html create mode 100644 adoption/where_to_begin/index.html create mode 100644 assets/images/favicon.png create mode 100644 assets/javascripts/bundle.6c7ad80a.min.js create mode 100644 assets/javascripts/bundle.6c7ad80a.min.js.map create mode 100644 assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 assets/javascripts/lunr/min/lunr.th.min.js create mode 100644 assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.zh.min.js create mode 100644 assets/javascripts/lunr/tinyseg.js create mode 100644 assets/javascripts/lunr/wordcut.js create mode 100644 assets/javascripts/workers/search.b97dbffb.min.js create mode 100644 assets/javascripts/workers/search.b97dbffb.min.js.map create mode 100644 assets/stylesheets/main.1d29e8d0.min.css create mode 100644 assets/stylesheets/main.1d29e8d0.min.css.map create mode 100644 assets/stylesheets/palette.cbb835fc.min.css create mode 100644 assets/stylesheets/palette.cbb835fc.min.css.map create mode 100644 basics/index.html create mode 100644 basics/instrumented_testing_basics/index.html create mode 100644 basics/screenshot_testing/index.html create mode 100644 basics/testing_theory/index.html create mode 100644 basics/ui_testing/index.html create mode 100644 basics/ui_tests_vs_snapshot_tests/index.html create mode 100644 home/contribution/index.html create mode 100644 home/index.html create mode 100644 home/roadmap/index.html create mode 100644 images/basics/green_arrow.png create mode 100644 images/basics/junit_runner.png create mode 100644 images/home_header.svg create mode 100644 images/network_goal.svg create mode 100644 images/orchestrator.png create mode 100644 images/package_clear.png create mode 100644 images/page_object_example.png create mode 100644 images/playback.svg create mode 100644 images/practices/design_system.svg create mode 100644 images/practices/design_system_modules.svg create mode 100644 images/practices/header_flakiness.svg create mode 100644 images/pyramid.png create mode 100644 images/pyramidE2E.png create mode 100644 images/record.svg create mode 100644 images/snapshotTesting.png create mode 100644 images/snapshotVsUiTests.gif create mode 100644 images/test_sharding_scalation.png create mode 100644 images/ui_testing/ui_testing_button.png create mode 100644 images/ui_testing/ui_testing_button_clicked.png create mode 100644 images/ui_testing/ui_testing_cheat_sheet.jpeg create mode 100644 images/ui_testing/ui_testing_results.png create mode 100644 practices/emulator_setup/index.html create mode 100644 practices/emulator_vs_real_device/index.html create mode 100644 practices/flakiness/index.html create mode 100644 practices/network/index.html create mode 100644 practices/obfuscated_build/index.html create mode 100644 practices/page_object/index.html create mode 100644 practices/shared_test_components/index.html create mode 100644 practices/state_clearing/index.html create mode 100644 practices/test_runners_review/index.html create mode 100644 search/search_index.json create mode 100644 sitemap.xml create mode 100644 sitemap.xml.gz diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..86159c2 --- /dev/null +++ b/404.html @@ -0,0 +1,767 @@ + + + +
+ + + + + + + + + + + +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.
+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 custom OkReplay
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.
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
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
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.
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
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.
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
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
\n {translation(\"search.result.term.missing\")}: {...missing}\n
\n }\n