# screenshot-testing

Published articles for screenshot-testing.

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

## Android Studio Rabbit 1 Canary 3 now available

DevFeed: [Android Studio Rabbit 1 Canary 3 now available](<https://devfeed.tech/articles/android-studio-rabbit-1-canary-3-now-available-26336.md>)

Original publisher: [Read original article](<https://androidstudio.googleblog.com/2026/08/android-studio-rabbit-1-canary-3-now.html>)

Author: Android Studio Releaser (noreply@blogger.com)

Published: 2026-08-27T13:26:09Z

Content type: release

Language: en

Sources: [Android Studio Release Updates](<https://devfeed.tech/sources/android-studio-release-updates.md>)

Topics: [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [Release notes](<https://devfeed.tech/topics/release-notes.md>), [Android Gradle Plugin](<https://devfeed.tech/topics/android-gradle-plugin.md>), [bug](<https://devfeed.tech/topics/bug.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [screenshot-testing](<https://devfeed.tech/topics/screenshot-testing.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-gradle-plugin](<https://devfeed.tech/tags/android-gradle-plugin.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [bug](<https://devfeed.tech/tags/bug.md>), [compose](<https://devfeed.tech/tags/compose.md>), [preview](<https://devfeed.tech/tags/preview.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

Android Studio Rabbit 1 Canary 3 is available in the Canary channel. The release includes general fixes for Android Studio Rabbit 1 and Android Gradle Plugin 9.5.0-alpha03, along with fixes for reported issues across several development tools and features.

### Source excerpt

Android Studio Rabbit 1 Canary 3 is now available in the Canary channel. If you already have an Android Studio build on the Canary channel, you can get the update by clicking Help > Check for Updates (or Android Studio > Check for Updates on macOS). Otherwise, you can download it here. For information on new features and changes in Android Studio Rabbit 1, see the Android Studio Preview release notes. For details of bugs fixed in each previous release of Android Studio Rabbit 1, see closed issues. General fixes and features Below is a list of general fixes in Android Studio Rabbit 1 Canary 3 and Android Gradle Plugin 9.5.0-alpha03. These are a result of your bug reports, which help us to make Android Studio better. If you encounter a problem, let us know by reporting a bug. You can also vote for an existing issue to indicate that it also affects you. Fixed Issues Android Gradle Plugin Issue #550220873 AGP 9.2.0 regression: `LibraryExtension.getSourceSets()` is typed on an interface the source-set implementation no longer implements, causing ClassCastException Issue #548314106 CommonExtension.resourcePrefix has incomplete docs Compose Preview Screenshot Testing Issue #539672113 Compose Preview Screenshot Testing: false "Cyclic style parent definitions" error for a dotted-name style with explicit parent="" CPU Issue #549911097 Trace File was not parsed Device Manager Issue #541776384 Device Manager: "Add a new device..." link throws IllegalArgumentException and does nothing when the tool window toolbar is hidden Gemini Issue #549864592 Invalid StreamExperience Request. Violations: contents[18].parts[0].text: Text part must not be empty. Profilers Issue #545999552 Mouse cursor not showing full symbol name when you hover over them in Profiler's Stack Sample

## Handling Asynchronous Images in Android Screenshot Tests

DevFeed: [Handling Asynchronous Images in Android Screenshot Tests](<https://devfeed.tech/articles/handling-asynchronous-images-in-android-screenshot-tests-24846.md>)

Original publisher: [Read original article](<https://alexzh.com/handling-asynchronous-images-in-android-screenshot-tests/>)

Author: Alex Zhukovich

Published: 2026-08-27T07:41:23Z

Content type: tutorial

Language: en

Sources: [Alex Zhuk - Android development and testing](<https://devfeed.tech/sources/alex-zhuk-android-development-and-testing.md>)

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

Tags: [android](<https://devfeed.tech/tags/android.md>), [asynchronous](<https://devfeed.tech/tags/asynchronous.md>), [junit](<https://devfeed.tech/tags/junit.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This tutorial explains why asynchronous image loading makes Android screenshot tests unstable or inconsistent. It presents two approaches for deterministic results: injecting fake images with the coil-test library and using Compose inspection mode when the first approach is unavailable.

### Source excerpt

This article is based on a chapter from my book, Mastering Android Screenshot Testing. Modern applications frequently load images asynchronously, which is a common cause of unstable screenshot tests or confusion when you review newly generated screenshots. A test can pass locally and fail on CI, produce a different image

## Android Studio Rabbit 1 Canary 1 now available

DevFeed: [Android Studio Rabbit 1 Canary 1 now available](<https://devfeed.tech/articles/android-studio-rabbit-1-canary-1-now-available-26334.md>)

Original publisher: [Read original article](<https://androidstudio.googleblog.com/2026/08/android-studio-rabbit-1-canary-1-now.html>)

Author: Android Studio Releaser (noreply@blogger.com)

Published: 2026-08-17T14:06:36Z

Content type: release

Language: en

Sources: [Android Studio Release Updates](<https://devfeed.tech/sources/android-studio-release-updates.md>)

Topics: [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [Release notes](<https://devfeed.tech/topics/release-notes.md>), [Android Gradle Plugin](<https://devfeed.tech/topics/android-gradle-plugin.md>), [bug](<https://devfeed.tech/topics/bug.md>)

Tags: [android-gradle-plugin](<https://devfeed.tech/tags/android-gradle-plugin.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [bug](<https://devfeed.tech/tags/bug.md>), [channel](<https://devfeed.tech/tags/channel.md>), [compose](<https://devfeed.tech/tags/compose.md>), [release](<https://devfeed.tech/tags/release.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

Android Studio Rabbit 1 Canary 1 is available in the Canary channel. The release includes general fixes for Android Studio, Android Gradle Plugin 9.5.0-alpha01, baseline profiles, Compose Preview Screenshot Testing, profilers, and other components.

### Source excerpt

Android Studio Rabbit 1 Canary 1 is now available in the Canary channel. If you already have an Android Studio build on the Canary channel, you can get the update by clicking Help > Check for Updates (or Android Studio > Check for Updates on macOS). Otherwise, you can download it here. For information on new features and changes in Android Studio Rabbit 1, see the Android Studio Preview release notes. General fixes and features Below is a list of general fixes in Android Studio Rabbit 1 Canary 1 and Android Gradle Plugin 9.5.0-alpha01. These are a result of your bug reports, which help us to make Android Studio better. If you encounter a problem, let us know by reporting a bug. You can also vote for an existing issue to indicate that it also affects you. Fixed Issues Android Gradle Plugin Issue #533547933 Add a test that validate relocation does not affect task execution Baseline Profiles & ProfileInstaller Issue #543799367 Baseline profile is pulled off the device but never registered in test-result.pb, so collectBaselineProfile finds nothing and copyBaselineProfileIntoSrc deletes the committed profile Compose Preview Screenshot Testing Issue #538484834 Compose Preview Screenshot Testing (alpha15): renderer fails on all previews with IncompatibleClassChangeError: <pkg>.R and <pkg>.R$attr disagree on InnerClasses attribute Gemini Issue #540709807 S0 CRITICAL: Data Loss - AI Agent executed malformed shell command deleting drive contents Profilers Issue #347764600 TabbedToolbarTest.noCloseButtonWhenNoListener() broken

## How We Moved 1,500 Android Screenshot Tests to Roborazzi

DevFeed: [How We Moved 1,500 Android Screenshot Tests to Roborazzi](<https://devfeed.tech/articles/how-we-moved-1-500-android-screenshot-tests-to-roborazzi-24726.md>)

Original publisher: [Read original article](<https://medium.com/thumbtack-engineering/how-we-moved-1-500-android-screenshot-tests-to-roborazzi-9a5247d61340?source=rss----1199c607a13f---4>)

Author: Zachary Wander

Published: 2026-08-08T05:03:41Z

Content type: tutorial

Language: en

Sources: [Thumbtack Engineering - Medium](<https://devfeed.tech/sources/thumbtack-engineering-medium.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>), [Compose](<https://devfeed.tech/topics/compose.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Git](<https://devfeed.tech/topics/git.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [consistency](<https://devfeed.tech/tags/consistency.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [git](<https://devfeed.tech/tags/git.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [robolectric](<https://devfeed.tech/tags/robolectric.md>), [roborazzi](<https://devfeed.tech/tags/roborazzi.md>), [screenshot](<https://devfeed.tech/tags/screenshot.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [software-testing](<https://devfeed.tech/tags/software-testing.md>), [technology](<https://devfeed.tech/tags/technology.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

Thumbtack Engineering describes migrating 1,500 Android screenshot tests from Firebase Test Lab to Roborazzi, which runs locally on the JVM. The article covers porting existing suites, comparing screenshots in Git, and addressing rendering, test-data injection, and dependency-injection differences.

### Source excerpt

How we moved 1,500 Android screenshot tests to Roborazzi.Introduction If you're a mobile developer you're probably no stranger to screenshot tests. Making sure that layouts remain consistent as time goes on and code changes is important for ensuring functionality and accessibility. Since Thumbtack uses Kotlin and Jetpack Compose for its Android apps, we had historically been using Firebase Test Lab to capture and compare layouts. However, using Firebase can be slow, tedious, and error-prone, so we decided it was time for a change. Instead of Firebase, we decided to migrate to using Roborazzi, a screenshot testing framework that runs fully locally inside the local JVM instead of relying on remote emulators and devices. For more details on why we migrated and the alternatives we evaluated, check out the previous blog post from Brian. This post is going to go into the details of how we migrated, and the challenges we faced along the way. Porting Loop Because the purpose of screenshot tests is ensuring consistency over time, we wanted to bring over our existing test suites into Roborazzi. Deleting the old ones and just creating new tests as we built new layouts was a potential option, but it would wipe out a lot of our automated verification. Instead, we ported our existing Firebase Test Lab screenshot test suites over to Roborazzi. In general, the porting process was pretty simple: Delete the old screenshots. Move the test suites over from androidTest to test. Adjust the code for any API differences. Record new screenshots. Compare the old and new screenshots in the git diff to make sure nothing is broken. Fix broken screenshots. Since Roborazzi uses Robolectric, and Robolectric implements the Android API, most of the test suites needed very few changes to work, with updating the main test rule and test annotations being enough to get them running. A few, like those that relied on permission granting rules or interacted directly with the test Activity, needed some more

## 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.

## How Compose is changing UI development

DevFeed: [How Compose is changing UI development](<https://devfeed.tech/articles/new-big-challenger-in-ui-development-39255.md>)

Original publisher: [Read original article](<https://kt.academy/article/compose_new_challenger>)

Published: 2026-05-11T00:00:00Z

Content type: opinion

Language: en

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

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [React](<https://devfeed.tech/topics/react.md>), [Vue.js](<https://devfeed.tech/topics/vue.md>), [Web](<https://devfeed.tech/topics/web.md>), [wasm](<https://devfeed.tech/topics/wasm.md>)

Tags: [adaptive](<https://devfeed.tech/tags/adaptive.md>), [android](<https://devfeed.tech/tags/android.md>), [android-compose](<https://devfeed.tech/tags/android-compose.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [compose](<https://devfeed.tech/tags/compose.md>), [desktop](<https://devfeed.tech/tags/desktop.md>), [frontend-development](<https://devfeed.tech/tags/frontend-development.md>), [ios](<https://devfeed.tech/tags/ios.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [react](<https://devfeed.tech/tags/react.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This video transcript argues that Compose, a Kotlin-based declarative UI framework, is expanding beyond Android to iOS, desktop, and websites. It highlights Compose's shared tooling, adaptive layouts, previews, screenshot testing, and native animations while acknowledging weaker browser debugging support than traditional web tools.

### Source excerpt

How Compose is changing the game in UI development.

## Headless Screenshot Testing in Thumbtack's Android Apps

DevFeed: [Headless Screenshot Testing in Thumbtack's Android Apps](<https://devfeed.tech/articles/headless-screenshot-testing-in-thumbtack-s-android-apps-24725.md>)

Original publisher: [Read original article](<https://medium.com/thumbtack-engineering/headless-screenshot-testing-in-thumbtacks-android-apps-c6254f229a97?source=rss----1199c607a13f---4>)

Author: Brian Terczynski

Published: 2026-03-31T22:47:00Z

Content type: tutorial

Language: en

Sources: [Thumbtack Engineering - Medium](<https://devfeed.tech/sources/thumbtack-engineering-medium.md>)

Topics: [screenshot-testing](<https://devfeed.tech/topics/screenshot-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Android](<https://devfeed.tech/topics/android.md>), [Emulator](<https://devfeed.tech/topics/emulator.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Jenkins](<https://devfeed.tech/topics/jenkins.md>)

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

### AI overview

Thumbtack explains how it chose Roborazzi to run high-fidelity screenshot tests for its Android apps without an emulator. The article describes how emulator-based testing was slow and difficult to use for Jenkins verification, especially with more than 1,500 tests.

### Source excerpt

How we chose Roborazzi for fast, easy, and high-fidelity screenshot tests of our Android apps, without needing to run them on an emulator. As mentioned in our earlier blog post, screenshot tests are a fundamental part of our testing pyramid at Thumbtack. They validate that our UI code renders correctly. They catch UI regressions as our code evolves. They make it easy to share incremental progress with designers. In code reviews, they provide a great way for reviewers to "see" what the UI code is doing. Finally, they are very easy to write! But they were not always easy to run. Because they tested Android UI code, they had to run in a "real" Android environment so that the drawing operations would work. This meant running them on an Android device or emulator. To ensure consistent renderings, developers would have to run their tests on the same device used by our CI job. In the past, this meant having to run a script that would connect to our cloud device testing provider to generate the reference image, which would then be downloaded for inclusion in the local Git branch. Such a process would take minutes to run (not including build time). This got easier when we switched to Firebase Test Lab (FTL), because their emulators were the same as the emulators provided in the Android SDK used on developers' machines. Developers could then simply run their tests on a local emulator which sped up execution time significantly. But it still meant the emulator profile needed to match that of the device on FTL; in particular, the screen size and pixel density. Another problem was, because these were run on an emulator, they could not run with our CR verification job on Jenkins because their execution time was too slow (especially since we have over 1,500 of these tests!). This therefore meant that we had to run our screenshot tests separately, and they could not be used to gate code pushes because they were just too slow to run. So what would often happen was developers would me

## Introducing Visual Testing in Maestro

DevFeed: [Introducing Visual Testing in Maestro](<https://devfeed.tech/articles/introducing-visual-testing-in-maestro-22935.md>)

Original publisher: [Read original article](<https://maestro.dev/blog/visual-testing>)

Author: Dan Caseley

Published: 2026-03-02T07:00:00Z

Content type: release

Language: en

Sources: [mobile.dev - Medium](<https://devfeed.tech/sources/mobile-dev-medium.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [maestro](<https://devfeed.tech/tags/maestro.md>), [regression](<https://devfeed.tech/tags/regression.md>), [screenshot](<https://devfeed.tech/tags/screenshot.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [screenshots](<https://devfeed.tech/tags/screenshots.md>), [testing](<https://devfeed.tech/tags/testing.md>), [visual-regression-testing](<https://devfeed.tech/tags/visual-regression-testing.md>), [visual-testing](<https://devfeed.tech/tags/visual-testing.md>)

### AI overview

Maestro's Visual Testing compares screenshots with saved baselines to detect unexpected visual changes. The article explains assertScreenshot, takeScreenshot, cropOn, and thresholdPercentage, and describes use cases including shared design-system components, dependency upgrades, dark mode, and complex layouts.

### Source excerpt

Available in CLI v2.2.0, Maestro Studio, and Maestro Cloud

## Why Visual Testing Is Critical for Mobile App Quality

DevFeed: [Why Visual Testing Is Critical for Mobile App Quality](<https://devfeed.tech/articles/why-visual-testing-is-critical-for-mobile-app-quality-24858.md>)

Original publisher: [Read original article](<https://alexzh.com/why-visual-testing-is-critical-for-mobile-app-quality/>)

Author: Alex Zhukovich

Published: 2025-03-13T20:59:10Z

Content type: tutorial

Language: en

Sources: [Alex Zhuk - Android development and testing](<https://devfeed.tech/sources/alex-zhuk-android-development-and-testing.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Android](<https://devfeed.tech/topics/android.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [android](<https://devfeed.tech/tags/android.md>), [android-testing](<https://devfeed.tech/tags/android-testing.md>), [app-quality](<https://devfeed.tech/tags/app-quality.md>), [devices](<https://devfeed.tech/tags/devices.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [screenshot](<https://devfeed.tech/tags/screenshot.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [themes](<https://devfeed.tech/tags/themes.md>), [ui](<https://devfeed.tech/tags/ui.md>), [visual-testing](<https://devfeed.tech/tags/visual-testing.md>)

### AI overview

The article explains that visual testing can detect UI imperfections that conventional UI tests may miss. It introduces screenshot comparison in Android, using baseline "golden screenshots" to identify alignment, color, layout, localization, and accessibility issues across devices and themes.

### Source excerpt

Visual tests catches UI imperfections that traditional UI tests miss. They detect misalignments, color issues, and layout problems across different devices and themes. This article introduces visual testing concepts, explains how screenshot comparison works, and demonstrates implementation.

## Snapshot Testing Libraries for Android: Paparazzi vs Shot

DevFeed: [Snapshot Testing Libraries for Android: Paparazzi vs Shot](<https://devfeed.tech/articles/snapshot-testing-libraries-for-android-paparazzi-vs-shot-42189.md>)

Original publisher: [Read original article](<https://medium.com/astronauts-id/snapshot-testing-libraries-for-android-paparazzi-vs-shot-d3e7427ea534?source=rss----f54da6775e90---4>)

Author: Fajar Febriyan

Published: 2024-02-29T03:56:36Z

Content type: comparison

Language: en

Sources: [astronauts-id - Medium](<https://devfeed.tech/sources/astronauts-id-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [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>), [testing-library](<https://devfeed.tech/topics/testing-library.md>), [Framework](<https://devfeed.tech/topics/framework.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [compare](<https://devfeed.tech/tags/compare.md>), [comparison](<https://devfeed.tech/tags/comparison.md>), [developers](<https://devfeed.tech/tags/developers.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.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

This comparison explains snapshot testing for Android UI components and contrasts the Shot and Paparazzi libraries. It covers visual regression detection, cross-device consistency, setup, golden images, and verification.

### Source excerpt

What is snapshot testing? Snapshot testing, also known as screenshot testing, is an automated testing technique that captures screenshots of User Interface (UI) components and compares them against reference images. The idea is simple: we save a reference screenshot of a UI component in a known good state, and during testing, we capture a new screenshot and compare it to the reference. If these two images match, the test passes; if not, it fails. Comparing the golden image (real pineapple) with the image (pineapple illustration)Then why snapshot testing? According to the Testing Pyramid, UI testing, also known as, end-to-end testing is a type of testing recommended to be carried out in application development. UI testing is basically a mechanism meant to test the UI aspect of any software that users come into contact with. One way to do this is with a simple concept not requiring painful scenarios which is the snapshot testing. The image above is referenced from Martin Fowler's post regarding the Test Pyramid Snapshot testing is beneficial for various reasons: Visual Regression Detection: It helps identifying unintended visual changes introduced during development. Ease of Use: Writing snapshot tests is often simpler and more intuitive than crafting complex UI test scripts. Cross-Platform Testing: Snapshot tests can be used to ensure consistency across various Android devices and configurations. Let's dive into the libraries We chose to discuss and compare these 2 libraries because they have different methods and produce different results. Shot Shot is an open-source snapshot testing library developed by Pedro Vicente Gómez Sánchez. It integrates seamlessly with popular testing frameworks like JUnit and Espresso, making it a popular choice among Android developers. Paparazzi Paparazzi is another popular snapshot testing library developed by Cash App. It offers robust screenshot comparison and supports testing on a wide range of Android devices. How it works? Setup:

## 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.

## 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...

## A World Beyond Libraries: Cross-Library screenshot tests on Android

DevFeed: [A World Beyond Libraries: Cross-Library screenshot tests on Android](<https://devfeed.tech/articles/a-world-beyond-libraries-cross-library-screenshot-tests-on-android-25685.md>)

Original publisher: [Read original article](<https://sergiosastre.hashnode.dev/a-world-beyond-libraries-cross-library-screenshot-tests-on-android>)

Author: Sergio Sastre Florez

Published: 2023-08-23T21:23:13Z

Content type: opinion

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>), [Library](<https://devfeed.tech/topics/library.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>), [screenshots](<https://devfeed.tech/tags/screenshots.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

An analysis of Android screenshot-testing libraries, comparing JVM-based approaches such as Paparazzi and Roborazzi with on-device tools. It explains trade-offs involving rendering fidelity, emulator reliability, speed, and platform limitations, including fixes in Robolectric 4.12.1.

### Source excerpt

The state of the art of screenshot testing for Android Screenshot testing is trending in Android. Many new libraries have come up, and even Google announced at I/O 20231 that they're working on a new tool for this based on Composable Previews powered...

## 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...

## 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...

## Screenshot testing with React and Storybook

DevFeed: [Screenshot testing with React and Storybook](<https://devfeed.tech/articles/screenshot-testing-with-react-and-storybook-24570.md>)

Original publisher: [Read original article](<https://medium.com/bleeding-edge/screenshot-testing-with-react-and-storybook-19ab7e49ec92?source=rss----d8ebe85cdc0f---4>)

Author: Jesse Pinho

Published: 2018-03-19T09:18:02Z

Content type: tutorial

Language: en

Sources: [Bleeding Edge - Medium](<https://devfeed.tech/sources/bleeding-edge-medium.md>)

Topics: [screenshot-testing](<https://devfeed.tech/topics/screenshot-testing.md>), [Storybook](<https://devfeed.tech/topics/storybook.md>), [React](<https://devfeed.tech/topics/react.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [styled-components](<https://devfeed.tech/topics/styled-components.md>), [Selenium](<https://devfeed.tech/topics/selenium.md>)

Tags: [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [react](<https://devfeed.tech/tags/react.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [selenium](<https://devfeed.tech/tags/selenium.md>), [storybook](<https://devfeed.tech/tags/storybook.md>), [styled-components](<https://devfeed.tech/tags/styled-components.md>), [testing](<https://devfeed.tech/tags/testing.md>), [visual-regression-testing](<https://devfeed.tech/tags/visual-regression-testing.md>)

### AI overview

The article explains why end-to-end UI tests can miss visual regressions and explores screenshot testing with React and Storybook to check component appearance across different states.

### Source excerpt

Visual regression testing for fun, profit, and peace of mind Illustration by Marta Pucci A friend of mine recently related a scary story about the lack of automated visual regression testing where he works--a huge international tech firm that you've heard of and probably use. He'd added a CSS class to an element to hide it from the user. Unbeknownst to him, and despite using BEM-style naming for CSS classes, this class name was already being used for an important checkbox in the user settings screen of his company's web app. The result? Users could no longer change the setting represented by the checkbox, because it was invisible! I asked him why that hadn't been caught by automated tests. He explained that, although they did have end-to-end tests in place that went through the UI and tested its functionality, the tests didn't catch the bug. Selenium was still able to check the original checkbox via its selector, so its visibility had no effect on the outcome of the test. The only way this could have been caught is via visual regression testing -- or, as it is sometimes called, screenshot testing. 💅 Switching to styled-components I recalled this story recently while working on a sizable project at Clue: converting all of our "native" CSS to use styled-components. The new helloclue.com website consists of dozens of components. An article page, for example, contains at least ten different React components, all of which have accompanying CSS files. Converting all of this CSS to styled-components means there's an enormous risk of bugs exactly like the one my friend experienced. So before the project began, I investigated setting up screenshot testing for the site. 📕 Enter Storybook (Note: if you're already familiar with Storybook and @storybook/react, feel free to skip to the next section.) We use Storybook when developing simple presentational components. This way, we can test them in every possible state, without having to reproduce all the logic and so forth required t