# ui-testing

UI testing is the practice of automating interactions with an application's user interface and checking its resulting behavior and state.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Automating App Store Screenshots

DevFeed: [Automating App Store Screenshots](<https://devfeed.tech/articles/automating-app-store-screenshots-27367.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/automating-app-store-screenshots.htm>)

Author: Khan Academy

Published: 2017-03-27T22:00:00Z

Content type: tutorial

Language: en

Sources: [Khan Academy](<https://devfeed.tech/sources/khan-academy.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [Sketch](<https://devfeed.tech/topics/sketch.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [app-store](<https://devfeed.tech/tags/app-store.md>), [design](<https://devfeed.tech/tags/design.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [fastlane](<https://devfeed.tech/tags/fastlane.md>), [ios](<https://devfeed.tech/tags/ios.md>), [iphone](<https://devfeed.tech/tags/iphone.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [news](<https://devfeed.tech/tags/news.md>), [screenshots](<https://devfeed.tech/tags/screenshots.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

A tutorial describing how Khan Academy automated App Store and Play Store screenshots with Xcode UI tests, Fastlane, a Snapfile, and a homegrown Sketch file. The team reduced screenshot update time from about a week to about an hour.

### Source excerpt

By Bryan Clark One of the more tedious design tasks is keeping your App Store promo images up-to-date. ... Read more

## Everything You Need to Know About Patrol in 2026

DevFeed: [Everything You Need to Know About Patrol in 2026](<https://devfeed.tech/articles/everything-you-need-to-know-about-patrol-in-2026-23049.md>)

Original publisher: [Read original article](<https://medium.com/flutter-community/everything-you-need-to-know-about-patrol-in-2026-097c09ce8a7e?source=rss----86fb29d7cc6a---4>)

Author: LeanCode

Published: 2026-07-24T02:52:52Z

Content type: tutorial

Language: en

Sources: [Flutter Community - Medium](<https://devfeed.tech/sources/flutter-community-medium.md>)

Topics: [Flutter](<https://devfeed.tech/topics/flutter.md>), [Mobile Testing](<https://devfeed.tech/topics/mobile-testing.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Web](<https://devfeed.tech/topics/web.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [android](<https://devfeed.tech/tags/android.md>), [automation-testing](<https://devfeed.tech/tags/automation-testing.md>), [ci](<https://devfeed.tech/tags/ci.md>), [e2e-testing](<https://devfeed.tech/tags/e2e-testing.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [flutter-app-development](<https://devfeed.tech/tags/flutter-app-development.md>), [ios](<https://devfeed.tech/tags/ios.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-testing](<https://devfeed.tech/tags/mobile-testing.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

This article explains Patrol, an open-source multiplatform end-to-end UI testing framework for Flutter apps. It describes how Patrol combines Flutter testing APIs with native Android and iOS UI automation to test Flutter widgets alongside system dialogs, biometric prompts, notifications, and other native interfaces, while integrating with CI pipelines and device farms.

### Source excerpt

Author: Katarzyna Szulc from LeanCode Patrol has come a long way from being "just another Flutter testing tool." Today, it powers end-to-end testing across Android, iOS, and Web, integrates with native testing infrastructure, runs on cloud device farms, offers AI-powered testing capabilities, and continues to push the boundaries of what's possible in the Flutter ecosystem. No matter if you've been following Patrol for a while or you're simply looking for the best way to handle Flutter E2E testing, this article is the perfect place to catch up. What exactly is Patrol? Let's break it down Developed by LeanCode, Patrol is a powerful, open-source, multiplatform E2E UI testing framework for Flutter apps that overcomes the limitations of integration_test by handling native interactions. Let's dig deeper into that. Flutter's greatest strength also creates one of its biggest testing challenges. Unlike native apps, Flutter renders its entire UI using its own graphics engine instead of platform-native components. This enables a consistent, pixel-perfect experience across devices, but it also means that native UI automation tools often see a Flutter app as little more than a single canvas. They simply cannot interact with Flutter widgets. The official solution is the integration_test package, which gives tests direct access to the Flutter widget tree. As long as everything happens inside Flutter, it works well. But real apps rarely stay there. System permission dialogs, biometric prompts, notifications, WebViews, and other native UI all exist outside the Flutter runtime, making them inaccessible to integration_test. Patrol bridges this gap. It lets tests interact with both Flutter widgets and native UI elements in a single test. Because Patrol builds on native frameworks such as JUnit and XCTest, it also integrates seamlessly with existing CI pipelines, device farms, and the broader mobile testing ecosystem. If you are new to automating E2E testing in Flutter, you can start by

## Android Journey Tests with Gemini: CI Setup & 11-Week Review

DevFeed: [Android Journey Tests with Gemini: CI Setup & 11-Week Review](<https://devfeed.tech/articles/android-journey-tests-with-gemini-ci-setup-11-week-review-40090.md>)

Original publisher: [Read original article](<https://www.rea-group.com/about-us/news-and-insights/blog/android-journey-tests-with-gemini-ci-setup-11-week-review/>)

Author: Swapnil Gupta

Published: 2026-06-19T03:27:13Z

Content type: opinion

Language: en

Sources: [REA Group](<https://devfeed.tech/sources/rea-group.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [adb](<https://devfeed.tech/topics/adb.md>)

Tags: [adb](<https://devfeed.tech/tags/adb.md>), [android](<https://devfeed.tech/tags/android.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [ci](<https://devfeed.tech/tags/ci.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [qa-engineer](<https://devfeed.tech/tags/qa-engineer.md>), [quality](<https://devfeed.tech/tags/quality.md>), [tech](<https://devfeed.tech/tags/tech.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

An 11-week experiment evaluated Android Journeys powered by Gemini for AI-driven UI testing in REA Group's production Android app and CI infrastructure. The tests generally remained resilient through UI changes, but CI setup took eight weeks, Firebase Test Lab was unsupported, and manual QA hours did not decrease. The team rated the experience 8.75 out of 10 and voted to continue.

### Source excerpt

Writing AI-powered UI tests took minutes. Getting them on CI took eight weeks. Here's what we learned after 11 weeks with Android Journeys and Gemini.

## Writing interactive screenshot tests in Compose UI with Touch Robot

DevFeed: [Writing interactive screenshot tests in Compose UI with Touch Robot](<https://devfeed.tech/articles/writing-interactive-screenshot-tests-in-compose-ui-with-touch-robot-29039.md>)

Original publisher: [Read original article](<https://saket.me/touch-robot/>)

Author: Saket Narayan

Published: 2026-05-24T06:09:55Z

Content type: tutorial

Language: en

Sources: [Saket Narayan](<https://devfeed.tech/sources/saket-narayan.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [screenshot-testing](<https://devfeed.tech/topics/screenshot-testing.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [snapshots](<https://devfeed.tech/tags/snapshots.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>)

### AI overview

The article explains how Block built Touch Robot to generate fake touch events for interactive screenshot tests in Compose UI. It describes using animated PNG snapshots to verify interactions such as clicks, swipes, drawing, and pinch gestures, with deterministic frame comparisons for regression testing.

### Source excerpt

These are some examples of real issues that were happening at Block. Each of them was frustrating because we were regularly shipping broken experiences to customers despite having sufficient test coverage. We had screenshot tests using Paparazzi, but they were mostly static snapshots that verified layout correctness. We had connected device tests, but they ran [...] The post Writing interactive screenshot tests in Compose UI with Touch Robot appeared first on Saket Narayan.

## Migrating 76,000 Tests from Enzyme to React Testing Library

DevFeed: [Migrating 76,000 Tests from Enzyme to React Testing Library](<https://devfeed.tech/articles/moving-mountains-how-we-migrated-from-enzyme-to-react-testing-library-29109.md>)

Original publisher: [Read original article](<https://product.hubspot.com/blog/migrated-from-enzyme-to-react-testing-library>)

Author: Charley Pugmire

Published: 2025-11-13T18:31:47Z

Content type: tutorial

Language: en

Sources: [HubSpot](<https://devfeed.tech/sources/hubspot.md>)

Topics: [testing-library](<https://devfeed.tech/topics/testing-library.md>), [React](<https://devfeed.tech/topics/react.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [migration](<https://devfeed.tech/topics/migration.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>)

Tags: [engineering](<https://devfeed.tech/tags/engineering.md>), [migration](<https://devfeed.tech/tags/migration.md>), [react](<https://devfeed.tech/tags/react.md>), [testing](<https://devfeed.tech/tags/testing.md>), [testing-library](<https://devfeed.tech/tags/testing-library.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>)

### AI overview

The article explains how a team migrated more than 76,000 tests from Enzyme to React Testing Library over two and a half years. It describes the shift toward user-focused UI tests, the planning process, and the limits of using static analysis alone to estimate the work.

### Source excerpt

For years, Enzyme was the de facto standard for testing React applications. Originally built by Airbnb in 2015, Enzyme makes it easy to assert, manipulate, and traverse the output of React components. The last official release of Enzyme came after React 16 was launched in 2017, but even then did not fully support all React 16 features. Ongoing support for Enzyme shifted to the open source community with React 17. However, the creator of the community-maintained Enzyme adapter announced that he would not be offering an updated version for React 18. This effectively marked the end of the Enzyme project, as it would prevent users from leveraging new features like React 18's concurrent mode.

## LLM Based Android UI Testing - "Journeys with Gemini"

DevFeed: [LLM Based Android UI Testing - "Journeys with Gemini"](<https://devfeed.tech/articles/llm-based-android-ui-testing-journeys-with-gemini-25129.md>)

Original publisher: [Read original article](<https://handstandsam.com/2024/12/09/llm-based-android-ui-testing-journeys-with-gemini/>)

Author: Sam Edwards

Published: 2024-12-09T15:17:57Z

Content type: article

Language: en

Sources: [Handstand Sam](<https://devfeed.tech/sources/handstand-sam.md>)

Topics: [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Android](<https://devfeed.tech/topics/android.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [Google](<https://devfeed.tech/topics/google.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [ai](<https://devfeed.tech/tags/ai.md>), [android](<https://devfeed.tech/tags/android.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [aosp](<https://devfeed.tech/tags/aosp.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [google](<https://devfeed.tech/tags/google.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [llm](<https://devfeed.tech/tags/llm.md>), [model](<https://devfeed.tech/tags/model.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

The article examines the proposed "Journeys with Gemini" feature for Android UI testing. Based on public previews, it describes human-readable test steps stored in .journey.xml files, IDE-based tooling, and placeholder AOSP components, while presenting availability and connectivity details as predictions.

### Source excerpt

What Do We Know About "Journeys With Gemini"? "Journeys with Gemini" was first (to my knowledge) discussed publicly at Droidcon London during a segment of #TheAndroidShow by Tor Norbye of the Android Studio team. We saw a sneak peek of a new way to write UI tests for Android using Google's Gemini (AI Model) that [...]

## Demystifying Maestro's UI Testing Implementation

DevFeed: [Demystifying Maestro's UI Testing Implementation](<https://devfeed.tech/articles/demystifying-maestro-s-ui-testing-implementation-25128.md>)

Original publisher: [Read original article](<https://handstandsam.com/2024/11/18/demystifying-maestros-ui-testing-implementation/>)

Author: Sam Edwards

Published: 2024-11-18T13:59:04Z

Content type: article

Language: en

Sources: [Handstand Sam](<https://devfeed.tech/sources/handstand-sam.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [Android](<https://devfeed.tech/topics/android.md>), [Code](<https://devfeed.tech/topics/code.md>), [Git](<https://devfeed.tech/topics/git.md>)

Tags: [adb](<https://devfeed.tech/tags/adb.md>), [android](<https://devfeed.tech/tags/android.md>), [android-testing](<https://devfeed.tech/tags/android-testing.md>), [code](<https://devfeed.tech/tags/code.md>), [format](<https://devfeed.tech/tags/format.md>), [git](<https://devfeed.tech/tags/git.md>), [library](<https://devfeed.tech/tags/library.md>), [maestro](<https://devfeed.tech/tags/maestro.md>), [on-device](<https://devfeed.tech/tags/on-device.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [server](<https://devfeed.tech/tags/server.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [uiautomator](<https://devfeed.tech/tags/uiautomator.md>), [updates](<https://devfeed.tech/tags/updates.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This technical post examines how Maestro implements UI testing. It describes its YAML-based test commands, CLI-installed APKs, an on-device Netty gRPC server, UiAutomator view-hierarchy access, XML serialization, and UI interactions.

### Source excerpt

I first heard about Maestro when it was released in 2022, but I haven't played with it until now. I'm doing some work with Espresso and UiAutomator for Android testing and was curious how Maestro worked under the hood, so I cloned their git repo and dove into the code. This quick post shares what [...]

## Implementing Radial Swipes in UI Tests

DevFeed: [Implementing Radial Swipes in UI Tests](<https://devfeed.tech/articles/doing-a-radial-swipe-in-ui-test-28533.md>)

Original publisher: [Read original article](<https://www.amanjeet.me/doing-a-radial-swipe-in-ui-test/>)

Author: Amanjeet Singh Gurtatta

Published: 2024-02-20T12:36:00Z

Content type: tutorial

Language: en

Sources: [Amanjeet Singh](<https://devfeed.tech/sources/amanjeet-singh.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Android](<https://devfeed.tech/topics/android.md>), [math](<https://devfeed.tech/topics/math.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [automation](<https://devfeed.tech/tags/automation.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [maestro](<https://devfeed.tech/tags/maestro.md>), [math](<https://devfeed.tech/tags/math.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [uitest](<https://devfeed.tech/tags/uitest.md>)

### AI overview

A tutorial on implementing radial swipe gestures for UI tests. It derives points along a circular arc with parametric equations and uses JavaScript and Maestro to generate swipe coordinates for an Android clock alarm test.

### Source excerpt

Discover the intricacies of implementing a radial swipe in UI testing with a step-by-step guide. We'll unravel how to tackle this with an example of Android clock app.

## Efficient Testing with Robolectric & Roborazzi Across Many UI States, Devices and Configurations

DevFeed: [Efficient Testing with Robolectric & Roborazzi Across Many UI States, Devices and Configurations](<https://devfeed.tech/articles/efficient-testing-with-robolectric-roborazzi-across-many-ui-states-devices-and-configurations-25690.md>)

Original publisher: [Read original article](<https://sergiosastre.hashnode.dev/efficient-testing-with-robolectric-roborazzi-across-many-ui-states-devices-and-configurations>)

Author: Sergio Sastre Florez

Published: 2023-11-09T21:45:00Z

Content type: tutorial

Language: en

Sources: [Sergio's little tech corner](<https://devfeed.tech/sources/sergio-s-little-tech-corner.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [screenshot-testing](<https://devfeed.tech/topics/screenshot-testing.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [Android](<https://devfeed.tech/topics/android.md>), [Software Process](<https://devfeed.tech/topics/software-process.md>), [enum](<https://devfeed.tech/topics/enum.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [devices](<https://devfeed.tech/tags/devices.md>), [emulator](<https://devfeed.tech/tags/emulator.md>), [espresso](<https://devfeed.tech/tags/espresso.md>), [google](<https://devfeed.tech/tags/google.md>), [robolectric](<https://devfeed.tech/tags/robolectric.md>), [roborazzi](<https://devfeed.tech/tags/roborazzi.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [screenshots](<https://devfeed.tech/tags/screenshots.md>), [software](<https://devfeed.tech/tags/software.md>), [software-process](<https://devfeed.tech/tags/software-process.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>)

### AI overview

This tutorial explains how to use Robolectric and Roborazzi for screenshot testing across many UI states, devices, and configurations. It introduces parameterized tests, enum-based UI states, and device qualifiers for generating screenshots efficiently.

### Source excerpt

Robolectric is a popular UI testing tool from Google that enables running UI tests without a physical device or emulator. It supports most androidx.test APIs, like Espresso, ActivityScenario & FragmentScenario as well as ComposeTestRule. Robolectric ...

## Screenshot Tests Are Manual Tests

DevFeed: [Screenshot Tests Are Manual Tests](<https://devfeed.tech/articles/screenshot-tests-are-manual-tests-30605.md>)

Original publisher: [Read original article](<https://ryanharter.com/blog/2023/10/screenshot-tests-are-manual-tests/>)

Published: 2023-10-17T16:00:00Z

Content type: opinion

Language: en

Sources: [Blogs on Ryan Harter](<https://devfeed.tech/sources/blogs-on-ryan-harter.md>)

Topics: [screenshot-testing](<https://devfeed.tech/topics/screenshot-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [test-coverage](<https://devfeed.tech/topics/test-coverage.md>)

Tags: [code-coverage](<https://devfeed.tech/tags/code-coverage.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>)

### AI overview

The article explains that screenshot tests validate UI appearance and can reveal visual changes, but they do not validate application behavior. It argues that screenshot-based coverage can increase coverage numbers while still requiring manual review and complementary UI testing.

### Source excerpt

When I joined Dropbox almost 2 years ago, I was asked to help improve the screenshot testing experience, resulting in Dropshots. While I'd played around with early versions of Paparazzi by that point, many of our tests were too heavily reliant on full Activities and Fragments to make use of host side JUnit tests. The more I've worked with screenshot tests, the more I've come to understand their promises and limitations. What screenshot tests offer Screenshot testing can be really helpful to validate that elements on the screen are rendered as you expect. They can help you detect visual changes that might have otherwise gone unnoticed.

## How To Ensure Exceptional Software Quality On Mobile

DevFeed: [How To Ensure Exceptional Software Quality On Mobile](<https://devfeed.tech/articles/how-to-ensure-exceptional-software-quality-on-mobile-35083.md>)

Original publisher: [Read original article](<https://novoda.com/blog/2023/09/26/how-to-ensure-exceptional-software-quality-on-mobile/>)

Author: Ben

Published: 2023-09-26T08:49:48Z

Content type: tutorial

Language: en

Sources: [Novoda](<https://devfeed.tech/sources/novoda.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Maintainability](<https://devfeed.tech/topics/maintainability.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [Unit testing](<https://devfeed.tech/topics/unit-testing.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>)

Tags: [engineering](<https://devfeed.tech/tags/engineering.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-development](<https://devfeed.tech/tags/mobile-development.md>), [mobile-devops](<https://devfeed.tech/tags/mobile-devops.md>), [mobile-engineering](<https://devfeed.tech/tags/mobile-engineering.md>), [quality](<https://devfeed.tech/tags/quality.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [unit-testing](<https://devfeed.tech/tags/unit-testing.md>)

### AI overview

This tutorial explains software quality for mobile products through the testing pyramid, performance and stability metrics, scalability, and maintainability. It emphasizes unit tests as a foundation, followed by integration and UI tests to validate component interactions and user flows.

### Source excerpt

Explore the key ways to ensure exceptional software quality on mobile including the pyramid of testing, performance and stability metrics, scalability and maintainability. The post How To Ensure Exceptional Software Quality On Mobile appeared first on Novoda.

## Write Once, Test Everywhere: Cross-Library Screenshot Testing with AndroidUiTestingUtils 2.0.0

DevFeed: [Write Once, Test Everywhere: Cross-Library Screenshot Testing with AndroidUiTestingUtils 2.0.0](<https://devfeed.tech/articles/write-once-test-everywhere-cross-library-screenshot-testing-with-androiduitestingutils-2-0-0-25695.md>)

Original publisher: [Read original article](<https://sergiosastre.hashnode.dev/write-once-test-everywhere-cross-library-screenshot-testing-with-androiduitestingutils>)

Author: Sergio Sastre Florez

Published: 2023-09-15T15:06:04Z

Content type: tutorial

Language: en

Sources: [Sergio's little tech corner](<https://devfeed.tech/sources/sergio-s-little-tech-corner.md>)

Topics: [screenshot-testing](<https://devfeed.tech/topics/screenshot-testing.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [robolectric](<https://devfeed.tech/tags/robolectric.md>), [roborazzi](<https://devfeed.tech/tags/roborazzi.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>)

### AI overview

This tutorial explains how AndroidUiTestingUtils 2.0.0 supports cross-library screenshot tests. It describes a common interface for device configuration, the subject under test, and screenshot recording or verification, with separate modules for Paparazzi, Dropshots, Roborazzi, and Shot. It also discusses enabling Robolectric Native Graphics mode through Gradle.

### Source excerpt

As observed in the previous blog post of this series, screenshot tests have a lot in common regardless of the library they're written with, namely: Setting the device configuration (e.g. Locale, Ui Mode, Font scale...) Setting the Subject Under Tes...

## UI tests with Jetpack Compose and Appium x UIAutomator

DevFeed: [UI tests with Jetpack Compose and Appium x UIAutomator](<https://devfeed.tech/articles/ui-tests-with-jetpack-compose-and-appium-x-uiautomator-25941.md>)

Original publisher: [Read original article](<https://juliensalvi.medium.com/ui-tests-with-jetpack-compose-and-appium-x-uiautomator-5d276fb655aa?source=rss-cbfc736ddcd3------2>)

Author: Julien Salvi

Published: 2022-12-05T13:01:16Z

Content type: tutorial

Language: en

Sources: [Stories by Julien Salvi on Medium](<https://devfeed.tech/sources/stories-by-julien-salvi-on-medium.md>)

Topics: [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Instrumentation](<https://devfeed.tech/topics/instrumentation.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [appium](<https://devfeed.tech/tags/appium.md>), [compose](<https://devfeed.tech/tags/compose.md>), [instrumentation](<https://devfeed.tech/tags/instrumentation.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [uiautomator](<https://devfeed.tech/tags/uiautomator.md>)

### AI overview

This tutorial explains how Aircall adapted Android UI automation tests when migrating from View-based components to Jetpack Compose. It describes using Compose semantics and testTag values mapped to resource IDs, then locating the resulting components with UiSelector in Appium and UIAutomator.

### Source excerpt

At Aircall we are pushing a lot around quality thanks to our great QA team. Huge efforts are put on Android developer side with the unit tests and our QA engineers tackle everything around automation & UI tests. Before integrating our brand new design system made with Compose UI in production, we wanted to be sure that the transition to Compose would be painless with our automation framework and tools: Appium and UIAutomator. This article will explain how the Android team validated the move to Compose with our automation framework. Automation tests with View components The Aircall QA team has developed lots of automation tests that cover more than 90% of the use cases in the Android app. And to do so, they rely on Appium with the UI testing framework UIAutomator which is an instrumentation-based API and works with the AndroidJUnitRunner test runner. To locate a View-based component in the application, UIAutomator provides an annotation @AndroidFindBy where you need to specify the resource id of a UI element you want to identify. @AndroidFindBy(id = "myButtonId") protected WebElement myButton; But this method does work properly with Compose UI components. Indeed, when looking for a Composable with its dedicated tag, no elements are found in the screen. Now, let's have a closer look at the changes we had to make in order to smoothly add our new Compose code in the current codebase and not breaking everything on the automation side. UI tests with Compose UI and UIAutomator To unlock the UI testing with UIAutomator and Compose, we will have to take advantage of the semantics Modifier in each Composable we want to locate with the testTag property. In order to ease the migration, we are going to keep the same component IDs we were using with our View-based elements. Modifier.semantics { testTag = "myButtonId" } And at the top level Composable, we should toggle the configuration to map testTags to the resource IDs in the semantics Modifier. This will allow the automation f

## Writing Paparazzi tests for your Kotlin Multiplatform projects

DevFeed: [Writing Paparazzi tests for your Kotlin Multiplatform projects](<https://devfeed.tech/articles/writing-paparazzi-tests-for-your-kotlin-multiplatform-projects-38560.md>)

Original publisher: [Read original article](<https://msfjarvis.dev/posts/writing-paparazzi-tests-for-your-kotlin-multiplatform-projects/>)

Author: Harsh Shandilya

Published: 2022-06-26T06:30:00Z

Content type: tutorial

Language: en

Sources: [Posts on Harsh Shandilya](<https://devfeed.tech/sources/posts-on-harsh-shandilya.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Android Library](<https://devfeed.tech/topics/android-library.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-library](<https://devfeed.tech/tags/android-library.md>), [compose](<https://devfeed.tech/tags/compose.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>)

### AI overview

A tutorial on working around Paparazzi's lack of direct Kotlin Multiplatform support by placing Paparazzi tests in a separate Android library Gradle module. The approach enables JVM-based UI tests for public Compose composables, with additional guidance for CI build types, JDK 12+ compatibility, and testing multiple themes.

### Source excerpt

Paparazzi enables a radically faster and improved UI testing workflow, and using a small workaround we can bring that to our multiplatform Compose projects

## Android UI screenshot testing across locales, font sizes, orientations, and UI modes

DevFeed: [Android UI screenshot testing across locales, font sizes, orientations, and UI modes](<https://devfeed.tech/articles/design-a-pixel-perfect-android-app-25689.md>)

Original publisher: [Read original article](<https://sergiosastre.hashnode.dev/design-a-pixel-perfect-android-app-with-screenshot-testing>)

Author: Sergio Sastre Florez

Published: 2022-03-30T05:29:19Z

Content type: tutorial

Language: en

Sources: [Sergio's little tech corner](<https://devfeed.tech/sources/sergio-s-little-tech-corner.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [screenshot-testing](<https://devfeed.tech/topics/screenshot-testing.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [User experience (UX)](<https://devfeed.tech/topics/ux.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [arabic](<https://devfeed.tech/tags/arabic.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [design](<https://devfeed.tech/tags/design.md>), [language](<https://devfeed.tech/tags/language.md>), [layout](<https://devfeed.tech/tags/layout.md>), [pixel](<https://devfeed.tech/tags/pixel.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [test](<https://devfeed.tech/tags/test.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [ux](<https://devfeed.tech/tags/ux.md>)

### AI overview

This tutorial explains how Android screenshot testing can verify UI correctness across configurations such as locales, font sizes, orientations, and light or dark modes. It also discusses localization concerns including right-to-left layouts, mirrored drawables, and numeral systems.

### Source excerpt

The success of your app depends heavily on its UI/UX. The more popular your app becomes, the more you should care about the diversity of your users. They might speak different languages, suffer from some sort of visual impairment, or feel too much ey...

## UI tests vs. snapshot tests on Android: which one should I write? 🤔

DevFeed: [UI tests vs. snapshot tests on Android: which one should I write? 🤔](<https://devfeed.tech/articles/ui-tests-vs-snapshot-tests-on-android-which-one-should-i-write-25694.md>)

Original publisher: [Read original article](<https://sergiosastre.hashnode.dev/ui-tests-vs-snapshot-tests-on-android-which-one-should-i-write>)

Author: Sergio Sastre Florez

Published: 2021-12-15T21:03:56Z

Content type: tutorial

Language: en

Sources: [Sergio's little tech corner](<https://devfeed.tech/sources/sergio-s-little-tech-corner.md>)

Topics: [screenshot-testing](<https://devfeed.tech/topics/screenshot-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>)

### AI overview

This Android testing article explains that UI tests and snapshot tests serve different purposes and should not replace each other. UI tests verify behavior and outcomes after interaction, while snapshot tests verify visual appearance across states and configurations such as themes, languages, font sizes, and screen widths.

### Source excerpt

Snapshot tests on Android have become very popular lately. They run much faster and are easier to write than UI tests if done correctly. For those who've already fought with UI tests and are new to snapshot testing, it's normal to wonder why to still...

## A View-by-View Strategy for Snapshot Testing on Android

DevFeed: [A View-by-View Strategy for Snapshot Testing on Android](<https://devfeed.tech/articles/the-secrets-of-effectively-snapshot-testing-on-android-25692.md>)

Original publisher: [Read original article](<https://sergiosastre.hashnode.dev/the-secrets-of-effectively-snapshot-testing-on-android>)

Author: Sergio Sastre Florez

Published: 2021-09-23T20:22:08Z

Content type: tutorial

Language: en

Sources: [Sergio's little tech corner](<https://devfeed.tech/sources/sergio-s-little-tech-corner.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Android](<https://devfeed.tech/topics/android.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>)

### AI overview

This tutorial presents a view-by-view strategy for snapshot testing Android UI components. It explains why testing individual views can reduce synchronization work, simplify screen-state selection, and make flaky tests easier to diagnose, using a RecyclerView as an example.

### Source excerpt

When one gets started with snapshot testing, there are not enough resources to learn from. It's no surprise to end up with snapshot tests causing a lot of headaches rather than helping improve the quality of our app. One should not snapshot test with...

## Android Library UI Tests & Firebase Test Lab

DevFeed: [Android Library UI Tests & Firebase Test Lab](<https://devfeed.tech/articles/android-library-ui-tests-firebase-test-lab-27438.md>)

Original publisher: [Read original article](<https://jdvp.me/articles/Test-Lab-For-Android-Libraries>)

Author: JD Porterfield (jd.porterfield@alumni.rice.edu)

Published: 2021-09-06T00:00:00Z

Content type: tutorial

Language: en

Sources: [JD Porterfield | Articles](<https://devfeed.tech/sources/jd-porterfield-articles.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [Android Library](<https://devfeed.tech/topics/android-library.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-library](<https://devfeed.tech/tags/android-library.md>), [apk](<https://devfeed.tech/tags/apk.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [test-lab](<https://devfeed.tech/tags/test-lab.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This tutorial explains how to run Android library module UI tests with Firebase Test Lab. Because Test Lab requires separate test and application APKs with different package names, it presents a method for building the androidTest APK twice with different package names.

### Source excerpt

Firebase Test Lab generally requires 2 .apk files for testing, how can we test library module UI tests in Test Lab?

## An introduction to snapshot testing on Android in 2021 📸

DevFeed: [An introduction to snapshot testing on Android in 2021 📸](<https://devfeed.tech/articles/an-introduction-to-snapshot-testing-on-android-in-2021-25686.md>)

Original publisher: [Read original article](<https://sergiosastre.hashnode.dev/an-introduction-to-snapshot-testing-on-android-in-2021>)

Author: Sergio Sastre Florez

Published: 2021-08-09T20:07:20Z

Content type: tutorial

Language: en

Sources: [Sergio's little tech corner](<https://devfeed.tech/sources/sergio-s-little-tech-corner.md>)

Topics: [screenshot-testing](<https://devfeed.tech/topics/screenshot-testing.md>), [Android](<https://devfeed.tech/topics/android.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [espresso](<https://devfeed.tech/tags/espresso.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [uiautomator](<https://devfeed.tech/tags/uiautomator.md>)

### AI overview

This introduction explains snapshot testing on Android, also known as screenshot testing. It describes how snapshot tests compare rendered views with stored reference images, how they complement interaction-focused UI tests, and how they can detect visual regressions across commits.

### Source excerpt

Snapshot testing (also called screenshot testing) has been in the Android world for a while, since 8th October 2015, when Facebook open sourced the first version of their snapshot testing library. They are a special type of UI tests that inflate a vi...

## Lessons Learned from Removing Android UI Tests from the CI Pipeline

DevFeed: [Lessons Learned from Removing Android UI Tests from the CI Pipeline](<https://devfeed.tech/articles/do-androids-dream-of-ui-testing-29356.md>)

Original publisher: [Read original article](<https://arturdryomov.dev/posts/do-androids-dream-of-ui-testing/>)

Author: Artur Dryomov

Published: 2018-05-26T00:00:00Z

Content type: article

Language: en

Sources: [Artur Dryomov](<https://devfeed.tech/sources/artur-dryomov.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [Android](<https://devfeed.tech/topics/android.md>), [ci](<https://devfeed.tech/topics/ci.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [automation](<https://devfeed.tech/tags/automation.md>), [ci](<https://devfeed.tech/tags/ci.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>)

### AI overview

This article shares lessons learned from removing Android UI tests from a continuous integration pipeline. It discusses the testing pyramid, the maintenance cost and flakiness of UI tests, and the role of unit tests and abstractions in creating maintainable tests.

### Source excerpt

Automation is a foundation stone of the software development. People didn't like counting numbers themselves, so they invented calculators. Calculators went to be computers and here we go, waiting for AI to take over, watching movies about transhumanism on our way here. Automation related to UI testing seems to be a Holy Grail from that standpoint. Sure thing, it can replace manual QA procedures with automated ones! Like, completely! You just need to have a local backend... And maybe disable animations. And... you know, somehow wait for backend responses. And don't forget about the infrastructure.

## Painless UI Testing

DevFeed: [Painless UI Testing](<https://devfeed.tech/articles/painless-ui-testing-25369.md>)

Original publisher: [Read original article](<https://kau.sh/ppt/painless-ui-testing/>)

Author: Kaushik Gopal

Published: 2015-08-28T00:00:00Z

Content type: opinion

Language: en

Sources: [Kaushik Gopal's Site](<https://devfeed.tech/sources/kaushik-gopal-s-site.md>)

Topics: [ui](<https://devfeed.tech/topics/ui.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Framework](<https://devfeed.tech/topics/framework.md>)

Tags: [framework](<https://devfeed.tech/tags/framework.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [state](<https://devfeed.tech/tags/state.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [view](<https://devfeed.tech/tags/view.md>)

### AI overview

This talk discusses practical ways to make UI tests faster and less burdensome. It covers deciding which parts of a UI need testing and using patterns such as supervising controllers, presenters, and view model state.

### Source excerpt

What if you could get your UI tests to run as fast as your unit tests? you would write more tests you would feel happy writing the tests your managers would be pleased with you not goofing around with that new testing framework around the corner Using patterns of yore (like Martin Fowler's supervising controller, effective use of presenters and view model state) we're going to tackle everyday-real-annoying impediments to UI testing. We'll address what parts of the UI need testing and effective ways of testing them. The objective of the talk is to prove to the world that the title of this talk is not an oxymoron. Slides ##