So, if the key problems with UI test automation stem from the fact that human intelligence is more adaptable than test automation, why not try to address those problems with the next best thing: artificial intelligence. By tapping the power of AI, we can achieve UI test automation that’s as smart and resilient as a human—but as efficient and scalable as a machine.
For this to work, the technology must learn how to understand and navigate user interfaces in the same way that a human can. For example, it needs to know that a drop-down is a drop-down just by “looking” at it. With that accomplished, you—well, any human, really—can define test automation by simply providing a natural language explanation of what business process should be tested (e.g., “Enter 10,000 in the list price input, click the confirm button, then … “). AI-driven test automation can take it from there. There’s no need to deal with shadow DOMs, web assemblies, and the like. Emulated tables on SAP can be automated without any special customization. It’s not going to fail the next time there’s a minor UI tweak, and you won’t have to rebuild your tests if the application is reimplemented in a new technology.
In terms of shift left, you can start implementing your UI tests as soon as the team sketches out a rough prototype or mockup. Advanced UX designs like this are a great starting point:
You really could start anywhere though. Even more rudimentary whiteboard or napkin sketches would enable you to start on UI test automation without waiting on the actual implementation. This means less crunch time each release, and ultimately eliminates the ripple effect of testing delays, unfinished stories, and “hardening sprints.” And it enables an interesting flavor of TDD: start running these automated UI tests before implementation begins, then have developers write code that makes them pass.