awesome-regression-testing

repository·master·Indexed 25 days ago

https://github.com/mojoaxel/awesome-regression-testing

A curated list of resources for visual regression testing, including tools, frameworks, online services, tutorials, and educational videos. It covers browser automation frameworks like Cypress and Selenium, specialized tools such as BackstopJS and Playwright, and cloud-based services like Applitools and Percy.io, as well as a directory of deprecated tools.

Tokens
5.1K
Snippets
2
Records
7
Agent score
32%

What's inside awesome-regression-testing

  1. Explore Online Visual Regression Testing Services

    master

    This repository maintains a curated list of online services for visual regression testing. These services range from cloud-based screenshot comparison platforms to full-scale automated testing environments.

    Key categories include:

    • Cloud-based visual testing: Services like applitools, Chromatic (for component libraries), percy.io, and Happo provide managed environments for visual reviews.
    • No-code/Low-code automation: Tools like BugBug.io, Meticulous.ai, and Diffy (for Drupal/WordPress) allow creating tests without extensive coding.
    • Cross-browser/Device testing: Platforms such as BrowserStack, LambdaTest, and TestingBot provide access to thousands of real browsers and operating systems.
    • Open Source/Self-hosted: Options like Argos, Micoo, and Visual Regression Tracker allow for local or self-managed infrastructure.
    • Specialized tools: Sherlo for React Native Storybook, VRTs for WordPress, and Keploy for API-driven regression testing.
  2. Explore visual regression testing resources

    master

    This repository is a curated list of resources for visual regression testing, which verifies that software still performs as expected after changes. The resources are categorized into:

    • General information: Surveys and foundational concepts.
    • Browser automation: Frameworks for driving browsers (e.g., Cypress, Selenium, Playwright).
    • Tools and frameworks: Specific libraries and platforms for capturing and comparing screenshots (e.g., BackstopJS, Playwright, Puppeteer).
    • Online services: Hosted platforms for managing visual diffs.
    • Blog posts, slideshows, and videos: Educational content.
  3. Watch videos and presentations on Visual Regression Testing

    master

    A collection of video resources is available for learning through demonstrations and talks:

    • Tool Introductions & Demos: Screencasts for wraith (screenshot comparison), Screenster (automated tests), CSS critic (CSS testing framework), and Shoov setup.
    • Conceptual & Process Talks: Presentations on converting visual testing from a tool into a process (e.g., integrating PhantomCSS into CI) and scaling screenshot testing in mobile environments.
    • Quick Overviews: High-level introductions like Cypress in 100 Seconds and demos of Chrome extensions like Look-alike.
  4. Find tutorials and guides for Visual Regression Testing

    master

    The repository provides a collection of blog posts and tutorials covering various implementation patterns and tools:

    • BackstopJS Tutorials: Guides for general visual regression, CSS regression, Angular applications, and Hugo integration with GitHub CI.
    • Puppeteer & Headless Chrome: Tutorials on automatic visual diffing with Puppeteer, using Puppeteer with Jest, and running comparison tests in Bitbucket pipelines.
    • Framework-specific guides: Tutorials for React (using Percy and Jest Puppeteer), Angular, and React Native (using Sherlo).
    • Tool-specific deep dives: Guides for PhantomCSS, Differencify, WebdriverIO with WebdriverCSS, and Chromeless with jest-image-snapshot.
    • Manual/Plugin approaches: Using the PerfectPixel Chrome plugin for manual visual regression.
  5. Browser automation frameworks for visual testing

    master

    The following browser automation frameworks can be used as a foundation for building visual regression tests:

    • Cypress.io: An automation framework that runs in-browser.
    • Selenium: A comprehensive browser automation framework and ecosystem.
    • SlimerJS: A scriptable browser based on Firefox (similar to PhantomJS).
    • Webdriver.io: Node.js bindings for the W3C WebDriver protocol.
    ### Browser automation
    
    - [Cypress.io](https://www.cypress.io/) - An automation framework that runs in-browser.
    - [Selenium](https://github.com/SeleniumHQ/selenium) - Browser automation framework and ecosystem.
    - [SlimerJS](https://github.com/laurentj/slimerjs) - Scriptable browser like PhantomJS, based on Firefox.
    - [Webdriver.io](https://github.com/webdriverio/webdriverio/) - Node.js bindings implementation for the W3C WebDriver protocol.
  6. Identify deprecated visual regression testing tools

    master

    The following tools are listed as deprecated or no longer actively maintained. Use them with caution as they may lack support for modern browsers or security updates:

    • CasperJS: Navigation scripting and testing utility for PhantomJS and SlimerJS (archived 2018).
    • Chromeless: Chrome automation (archived 2018).
    • DalekJS: Automated cross-browser testing with JavaScript (no longer maintained since 2017).
    • dpxdt: End-to-end testing with Python.
    • Gemini: Feature-rich framework supporting Selenium and CasperJS. Note: Use hermione instead of Gemini.
    • Huxley: Python framework based on Selenium Webdriver.
    • Navalia: Browser Automation based on headless Chrome and GraphQL (archived 2018).
    • OcularJS: Uses PhantomJS.
    • PhantomCSS: Visual/CSS regression testing with PhantomJS or SlimerJS (no longer maintained since 2017).
    • PhantomFlow: Experimental UI testing based on Decision Trees.
    • PhantomJS: Scriptable Headless WebKit (no longer maintained since 2018).
    • trifleJS: Headless automation for Internet Explorer (last update 2016).
    • Visual Review: Tool for testing and reviewing visual regressions.
    • WebdriverCSS: Sits on top of Webdriver.io and hooks into Selenium.
  7. Visual regression testing tools and frameworks

    master

    A collection of specialized tools for visual regression testing. Notable entries include:

    • BackstopJS: Config-driven automated screenshot test framework.
    • BitDive: Zero-code regression testing for Java/Kotlin applications using Live Context Replay.
    • Creevey: Cross-browser visual testing with UI Runner and Storybook integration.
    • Differencify: Visual regression library using Puppeteer.
    • jest-image-snapshot: Jest matcher for image comparisons using pixelmatch.
    • Loki: Visual regression testing specifically for Storybook using Chrome in Docker.
    • Playwright: Node library for automating Chromium, Firefox, and WebKit.
    • Puppeteer: Headless Google Chrome Node API.
    • reg-suit: Suite that compares images, stores snapshots, and notifies GitHub of differences.
    ### Tools and frameworks (a-z↓)
    
    - [AET](https://github.com/Cognifide/aet) - Scalable testing tool providing visual regression testing, accessibility and performance validation, markup analysis and more.
    - [AyeSpy](https://github.com/newsuk/ayespy) - 44 image comparisons in 90 seconds.
    - [BackstopJS](https://github.com/garris/BackstopJS) - Config-driven automated screenshot test framework.
    - [basset](https://basset.io) - Open source platform for generating and reviewing visual differences. Supports multiple browsers, integrations for github and slack.
    - [BitDive](https://bitdive.io/) - BitDive is a zero-code regression testing tool for Java/Kotlin applications. It captures real runtime behavior (methods, SQL, HTTP) and enables Live Context Replay with automatic mocking to detect semantic drift between versions.
    - [BFFless](https://bffless.app) - Self-hosted platform for hosting and viewing visual regression screenshots from CI/CD pipelines with GitHub Actions integration.
    - [Chimp](https://github.com/xolvio/chimp) - Develop acceptance tests & end-to-end tests with realtime feedback.
    - [CodeceptJS](https://github.com/codeception/codeceptjs/) - Modern Era Acceptance Testing Framework for NodeJS.
    - [Creevey](https://github.com/wKich/creevey) - Cross-browser visual testing with magic. Feature-rich tool with UI Runner, Tests Hot Reloading, Docker and Storybook integration.
    - [CSSCritic](https://github.com/cburgmer/csscritic) - Lightweight CSS regression testing.
    - [Differencify](https://github.com/NimaSoroush/differencify) - A library for visual regression testing using [Puppeteer](https://github.com/GoogleChrome/puppeteer).
    - [DiffGoblin Action](https://github.com/neg-0/diffgoblin-action) - GitHub Action that screenshots two URLs and posts a visual diff as a PR comment. Zero config, no external service needed.
    - [ember-visual-test](https://github.com/Cropster/ember-visual-test) - Simple visual regression testing for [Ember](https://emberjs.com/).
    - [FuncUnit](https://github.com/bitovi/funcunit) - A functional test suite based on jQuery
    - [Frostbyte Screenshot Action](https://github.com/OzorOwn/frostbyte-screenshot-action) - GitHub Action for automated website screenshots in CI/CD. API-based (no local browser), supports 5 viewports, full-page capture, dark mode.
    - [Galen](https://github.com/galenframework/galen) - Java framework based on [Selenium](https://github.com/SeleniumHQ/selenium).
    - [gatling](https://github.com/gabrielrotbart/gatling) - Integrated visual RSpec matcher which makes real visual testing easy (Ruby).
    - [grunt-photobox](https://github.com/stefanjudis/grunt-photobox) - Plugin to prevent your project of broken layout via screenshot photo sessions of your site.
    - [Happo](https://github.com/happo/happo.io) - Visual diffing in CI for user interfaces.
    - [Hardy](https://github.com/thingsinjars/Hardy) - Selenium-driven, cucumber-powered CSS testing.
    - [jest-image-snapshot](https://github.com/americanexpress/jest-image-snapshot) - Jest matcher that performs image comparisons using [pixelmatch](https://www.npmjs.com/package/pixelmatch)
    - [jest-puppeteer-react](https://github.com/Hapag-Lloyd/jest-puppeteer-react) - Visual regression testing with Jest and puppeteer for React components
    - [Karma](http://karma-runner.github.io/latest/index.html) - A test runner by the AngularJS team, that fits all our needs.
    - [Lastest](https://github.com/las-team/lastest) - Visual regression testing platform built on Playwright with screenshot diffing, baseline review, and AI flake triage. Self-hostable via docker-compose or k8s.
    - [Loki](https://github.com/oblador/loki) - Visual regression testing for Storybook using Chrome in docker et al.
    - [Look-alike](https://github.com/kdzwinel/Look-alike) - Chrome Extension for taking and comparing screenshots.
    - [Lost Pixel](https://github.com/lost-pixel/lost-pixel) - Holistic visual regression testing for full pages, components (via Storybook and Ladle integration), and custom shots (e.g. via Cypress).
    - [Muppeteer](https://github.com/HuddleEng/Muppeteer) - Visual regression testing framework for Chrome using [Mocha](https://mochajs.org/) and [Puppeteer](https://github.com/GoogleChrome/puppeteer).
    - [Needle](https://github.com/python-needle/needle) - Needle is a tool for testing visuals with Selenium and nose (Python).
    - [Nightmare](https://github.com/segmentio/nightmare) - High-level browser automation library based on Electron.
    - [Nightwatch](https://github.com/nightwatchjs/nightwatch) - Automated testing and continuous integration framework based on Node.js and using the Webdriver protocol.
    - [OSnap](https://github.com/eWert-Online/osnap) - The speedy and easy to use Snapshot Testing tool for your project (1200 snapshots will run in under 3 minutes).
    - [Playwright](https://github.com/microsoft/playwright) - Node library to automate Chromium, Firefox and WebKit with a single API.
    - [Protractor](https://github.com/angular/protractor) - E2E test framework for Angular apps.
    - [Puppeteer](https://github.com/GoogleChrome/puppeteer) - Headless Google Chrome Node API.
    - [qd_screenshottests](https://www.drupal.org/project/qd_screenshottests) - CasperJS-based UI regression and functional testing focused on Drupal 8 sites.
    - [reg-cli](https://github.com/bokuweb/reg-cli) - Visual regression test tool which output easy-to-read single file html report.
    - [reg-suit](https://github.com/reg-viz/reg-suit) - Visual regression testing suite which compares images, stores snapshots, and notifies the difference to your GitHub repo.
    - [ResembleJS](https://github.com/Huddle/Resemble.js) - Analyse and compare images with Javascript and HTML5.
    - [Selenide](https://github.com/selenide/selenide) - Framework powered by Selenium WebDriver for writing easy-to-read and easy-to-maintain automated tests in Java.
    - [Shoov](https://github.com/shoov/shoov) - UI regression and functional testing focused on Drupal 7 sites.
    - [Spectre](https://github.com/wearefriday/spectre) - Provides image comparison capabilities and an admin interface for managing screenshots.
    - [test-crawler](https://github.com/apiel/test-crawler) - Visual regression testing, by crawling a website and providing snapshot comparison reports.
    - [TestCafe](https://github.com/DevExpress/testcafe) - Automated browser testing for the modern web development stack.
    - [Touca](https://github.com/trytouca/trytouca) - Open source continuous regression testing without the hassle of managing snapshot files.
    - [vrtest](https://github.com/nathanmarks/vrtest) - JavaScript library for running visual regression tests on your components cross browser via selenium.
    - [wdio-visual-regression](https://github.com/ennjin/wdio-visual-regression) - Visual regression tool for webdriver.io
    - [Wendigo](https://github.com/angrykoala/wendigo) - Test-oriented browser automation library based on Puppeteer.
    - [Wraith](https://github.com/BBC-News/wraith) - Easy to use ruby tool with docker support.
    - [Zombie.js](http://zombie.js.org/) - Insanely fast, headless full-stack testing using Node.js.