Applitools: an intelligent platform for automated visual UI testing

Automated user interface (UI) testing is an essential part of any software development process. It helps developers and testers ensure that their web and mobile apps are high quality and bug-free.

Applitools is a cloud-based automated UI testing platform that uses machine learning to compare screens and identify bugs. Thanks to this, Applitols is able to identify even the smallest changes in the user interface that the human eye might miss.

What is UI testing

In UI testing, you test the function of your web application through simulated user input. For example, using the Cypress.io testing framework, you can simulate user actions such as opening a web browser, finding and clicking a button on a page, or even typing text into an input box. It works perfectly and can be a great tool to help test the UI side of your app by verifying the functionality of the pages and how they will work in production.

However, functional testing of the user interface is only one aspect of testing and this alone is not sufficient to perform a full visual test of the application. We have to take into account things like changes in the layout, size or placement of components on the page, changes in the formatting of text or content, and many other visual changes that are harder to detect in traditional functional testing. This is especially true for responsive web applications that change the layout based on the size of the display area.

That’s why visual UI testing is essential! Otherwise, unintentional UI changes (changing CSS, content, etc.) will go unnoticed during testing and affect users.

Visual UI testing

Automated visual UI testing is a form of regression testing that follows certain steps to verify that screens or pages have not changed unexpectedly from one test run to the next. The following figure shows a typical test case that simulates the actions of a user opening the “Wikipedia” website and searching for the keyword “Software”.single test case scheme

The process of visual UI testing starts by creating a typical integration test case using the same tools and test suites that are commonly used to perform integration tests. An integration test is a series of actions performed on application screens/pages that simulate a real user.

For visual UI testing, you follow the same steps as above, but with a twist:

  1. Open your browser and go to the “Wikipedia” website.
  2. This step creates a new state “Browser opens Wikipedia web page”.
  3. Take a snapshot of this state. If the test case is being run for the first time, save this snapshot as the “baseline state” for this step within the test case. This also applies to the other captured steps listed below.
  4. Enter the keyword “Software” in the search box.
  5. The above step will create a new status “Wikipedia English website and the search-box field filled with the keyword Software”.
  6. Take a snapshot of this state.
  7. Then the “Wikipedia” Software page opens.
  8. The above steps will create a new state “Wikipedia Software page displayed for user”.
  9. Take a snapshot of this state.

The next time you run the same test case after taking a snapshot, you compare the snapshot to the baseline and report the results. The results could be as follows:

  • No change: in this case, the new snapshot is equivalent to the base snapshot.
  • Change: in this case, the new snapshot has some UI changes compared to the base snapshot.

The visual UI tester is now responsible for comparing the images, analyzing them and deciding how to address any differences. They can accept the differences, save the new snapshot as a baseline, and use it for upcoming regression tests. Or they can reject the differences and inform the developers of the bugs and problems that the results have pointed out.

Applitools takes the same approach as above by providing tools that you can use to create snapshots, send the snapshots to the Applitools cloud, and run AI logic to compare the snapshots against the appropriate baselines.

Applitools features

  • Applitools Eyes: An automated UI testing tool that uses machine learning to compare screens and identify bugs.
  • Applitools Visual AI: A service that enables developers and testers to automate UI testing using artificial intelligence.
  • Applitools Test Manager: A tool for managing and automating UI testing.
  • Applitools Eyes SDKs: SDKs for different programming languages that allow developers to integrate Applitols into their applications.

What is Applitools and how does it work?

Applitools is designed for automated visual testing by capturing the application screen and analyzing its changes. It uses advanced algorithms to detect visual differences and anomalies, even when the changes are subtle or complex. The first time you run the test, Applitools Eyes uploads the initial snapshot to the cloud as a baseline snapshot. Then, every time the test is run again, Applitools captures a fresh snapshot, called a control snapshot, and uses cloud Visual AI to detect any significant differences.

Applitools advantages

Applitools is a powerful visual testing tool that has several advantages over traditional testing methods. The main advantages of Applitools include:

AI-based visual testing

Applitools uses advanced artificial intelligence and machine learning algorithms to detect visual differences and anomalies, even in complex and dynamic web and mobile applications. This allows more accurate and efficient visual testing to identify even the most subtle defects.

Cross-browser and cross-device testing

Applitools makes it easy to test applications across multiple browsers, devices and resolutions. This saves time and effort and ensures that applications work properly for all users.

Integration with popular testing frameworks

Applitools integrates seamlessly with popular testing frameworks such as Selenium, Cypress, Robot Framework, Playwright, WebDriverIO and Appium. This makes it easy for teams to integrate visual testing into their existing workflows and processes.

Higher testing efficiency

With Applitools, teams can automate visual testing and identify defects quickly and accurately. This saves time and effort and allows teams to focus on other important aspects of software development.

Better user experience

By identifying and resolving visual errors, Applitools helps ensure that applications work properly and provide a positive user experience. This can lead to greater customer satisfaction and loyalty.

Cooperation and reporting

Applitools provides tools that allow teams to share test results, track progress, and collaborate on visual testing. This helps improve communication and collaboration within teams and between departments.

a young man with dark hair wearing a black shirt is working on his laptop and writing in a notepad

Applitools disadvantages

Cost

Applitools can be more expensive than other testing tools for small teams or projects. The cost of Applitools can be an obstacle for teams with limited budgets or resources.

Learning curve

Applitools can have a challenging learning curve for teams that are new to visual testing or AI-based testing tools. Teams may need to invest time in training and learning to use the tool effectively.

Limited support for manual testing

While Applitools is designed for automated visual testing, it may not provide as much support for manual testing. Teams that rely heavily on manual testing may find Applitools less helpful.

Technical limitations

Applitools may have technical limitations for certain applications or environments. For example, it has trouble handling highly dynamic content that changes frequently.

Limited customization options

While Applitools offers a wide range of features, it may not allow as much customization as other testing tools. Teams that require extensive customization may find Applitools less suitable for their needs.

Applitools Test Manager

Applitools provides a Test Manager dashboard to help you manage all your running tests. You can run multiple test cases in a single run.

For each test case, you will get a list of all snapshots taken during the execution of the test case. The dashboard will alert you to any test cases that are not resolved, which means that the images produced by the test case may differ from those saved as default. The dashboard provides tools to mark these changes as accepted and update them as a new baseline snapshot, or to reject the differences and mark these changes as bugs to be addressed by the developers.

Test Manager provides a number of features that facilitate the process of checking and verifying test case results.

The powerful AI engine behind Applitools can use one of four pattern matching algorithms to compare images against their baselines. These algorithms are:

  • Exact: this is a pixel-by-pixel comparison technique that is generally not recommended due to its strictness.
  • Strict: this comparison technique compares everything, including content (text), fonts, layout, colors, and position of elements. This mode ignores rendering changes that are not visible to humans. With this comparison mode, you will generally get the best results.
  • Content: this option is similar to the Strict option above, except that it only performs content (text) comparisons.

Layout: this option is similar to the Strict option above, except that it only performs page layout and component comparisons.

You can specify the comparison strategy in the test case code or through the Test Manager when viewing the results of a frame-to-frame comparison.

Applitools Cypress

Cypress and Applitools are two tools that are often used together to automate UI testing. Cypress is simplistically a JavaScript library for automation testing of web applications. Applitools is a cloud-based automated AI testing platform that uses machine learning to compare screens and identify bugs.

Benefits of using Cypress and Applitols together:

  • Cypress and Applitools enable developers and testers to automate AI testing quickly and efficiently. Cypress provides fast test execution and Applitools provides fast screen comparison and bug identification.
  • Applitools uses machine learning to compare screens and identify errors, making it more accurate than traditional screen comparison tools.
  • Cypress and Applitools are both easy to use. Cypress provides a simple API for writing tests, and Applitools provides a simple user interface for managing tests and analyzing results.

How to use Cypress and Applitools together:

  1. Install Cypress and Applitools.
  2. Write Cypress tests for your web applications.
  3. Use Applitools Eyes to add visual controls to your Cypress testing.
  4. Run your Cypress testing.
  5. See the test results in Applitools.

Here you can find the Applitools documentation.

Conclusion

Applitools is an innovative cloud-based platform for automated visual UI testing that uses machine learning to efficiently identify even the smallest changes and errors that might be missed by the human eye. Integrable with popular testing frameworks like Cypress, this platform enables developers and testers to improve the quality and reliability of web and mobile applications through accurate and efficient visual testing.

If you are looking for an IT tester or IT automation tester job and you speak German, take a look at our employee benefits and respond to our latest job offers!

About the author

Michaela Kojnoková

Agile Test Engineer

Po štúdiu informatiky na ŽU a TUKE som sa najviac ponorila do oblasti automatizácie testovania. Okrem toho sa venujem tvorbe webov, databázam, dátovej analytike, umelej inteligencii a strojovému učeniu. Mám rada cestovanie, šport a najviac si užívam čas strávený v prírode s mojimi blízkymi. LinkedIn

Let us know about you