What software do you use for UI testing automation? For that matter, how did you come to choose the solution that you’re currently using?

Making lists is always handy, so let’s do exactly that. Below, you will find a list of requirements that we deem must-have for every modern tool used for automated user interface testing. When working on it, we’ve used the feedback from our customers — and from our competitors as well.

Besides, the checklist below pretty much mirrors our roadmap for Screenster, our very own platform for UI testing automation. Without further ado, read on.

1. Speed

Higher speed equals higher ROI. This is why it’s paramount that the solution you’re using for UI testing automation allows you to quickly create, edit and debug your suites. So if creating a basic test suite takes more than 30 minutes, you should probably start looking for another tool.

2. Codeless UI tests

Don’t get me wrong, coding is fun — but we think the real fun is to code features, not tests. And let’s face it, there’s really no such thing as a robust suite of hand-coded UI tests that covers the whole user interface, not just its separate elements. Unlike scripted tests, codeless IDEs offer a complete coverage of UI, UX, and customer journeys — and isn’t that the actual purpose of UI testing automation?

3. CSS testing

CSS is the single best reason why the automation of UI testing can be such a pain in the neck. Rewriting CSS rules often leads to visual bugs that aren’t covered by typical tests. So either you have a tool that captures CSS-related regressions automatically, or you end up making your end-users do the job of your QAs.

4. Beginner-friendliness and short learning curve.

In case with 99% of startups that launch on a budget, UI testing falls on the shoulders of manual QAs or even non-QA staff. So wouldn’t it be great to have a tool that’s simple enough for non-techies to pick up?

5. Test reuse

I’m sure you know that no problem should ever have to be solved twice. In real-life projects, however, you’ll sometimes find yourself having to create the same tests for different web pages or UI states. Given this, it’s a must for modern UI testing automation tools to provide you with a user-friendly way of reusing tests or test steps.

6. User-friendly parameterization

This one is actually related to the previous point. Duplicate test steps or code often contribute to the maintenance burden, which raises the need of smart parameterization.

7. Smart handling of dynamic areas.

The UI testing automation of websites and web apps often involves working with UI areas that have dynamic content. Dates, banner ads fetched from a third-party server, sections with related items… you name it. If the tool you’re using doesn’t handle these, you’ll be working with dozens of false positives during every test run.

8. Smart handling of timeouts

No matter how great you are at coding your tests, no sane person can possibly like to hand-code workarounds for test timeouts. So it’s pretty much a must for any tool used for UI automation testing to handle timeouts.

9. Collaboration

For many QAs, lack of decent collaboration features is a major pain-point of old-school UI testing automation solutions. By default, any cloud-based UI testing platform is bound to have a shared portal that allows team members to access and collaborate on test suites.

10. Support of coding whenever it matters

The ability to import and export scripted test seems like a neat functionality that can make any IDE-like solution more flexible (and hence more useful).

11. Minimal installation and setup pain

Setting up huge enterprise-grade QA automation solutions often takes days — and you often need a dedicated professional to do just that. No one likes to waste this much time, which makes it crucial for a UI testing automation to minimize installation pains.

12. CI support

Continuous integration is inherent to the modern software development process. In this context, it’s a bit surprising that only few modern-day automated user interface testing tools prioritize CI support.

Bottom line: let’s stop testing 5% of UI and move on to a more comprehensive solution

At this point, I guess it’s pretty obvious that the list above reflects our own vision of a modern tool for UI automation testing. Sure, you could argue with some of the points — specifically the one that states UI testing should be codeless. Yet, I’m sure we’re not the only ones who think that code-based solutions aren’t exactly suitable for UI testing automation.

If you have any experience working with Selenium, in particular, you know that it doesn’t verify anything but itself. Basically, all verifications are hand-coded, and usually, only the key elements are verified.

Having to hand-code you UI tests also implies targeting separate UI elements instead of covering UI as a whole. And we all need to admit it, writing tests for just a part of your UI was only okay when ‘lean UIs’ were still a thing. Today, in the era of rich logic-driven interfaces written in React and Angular, you need to test the whole UI, not just its parts.

