Day 197: Same same, but different

Came across two test automation platforms today and I’m so, so impressed by the solutions out there.

It’s relevant because although I’m explicitly not targeting test automation, automating end-to-end tests and automating tasks work using the same underlying mechanism: You specify a sequence of actions that should be performed in a deterministic manner.

A bunch of companies have basically built out the infrastructure that I want to build with Browserflow, except instead of using it for helping people automate their tasks, they’re using it to help developers automate their tests.

But I can learn from their solutions!

The two that I came across today are Reflect and Testim, and looking at how they help people create their tests was really instructive for seeing how I can help people create flows.

Two things I learned today:

\1. Making selectors more robust

A major challenge with both testing and automation is that selecting elements can be brittle. You might want a particular button to be clicked, but if the button changes, suddenly .signInButton stops working and the whole thing breaks.

The way that Reflect solves this is by storing multiple selectors for the same element when recording the test:

If the initial selector doesn’t work, they try all the other ones before returning a failure. That means even if an element’s class or id changes, they’ll likely still be able to identify the element using one of other selectors. How clever!

Testim’s approach is even more sophisticated:

You read that right. They use machine learning to select the element based on what was selected in previous runs. Wow. (Yeah, this is not coming to Browserflow anytime soon.)

\2. Making flows more friendly to non-developers

Both Reflect and Testim support recording tests rather than writing tests using code.

Reflect records actions using a streamed browser running in the cloud much like ClickDiv, and Testim records actions using a browser extension much like Browserflow.

I’m really impressed by both their solutions and how seamlessly everything works. I feel like they could spin off another company using the same infrastructure and do extremely well in the task automation space.

One aspect of their recording experience that I liked was how they put their recorded commands in plain English as much as possible.

For example, here’s Reflect (the part I’m talking about is the “Click on ‘About’ link”, etc.):

And Testim (e.g. “Click ‘Blog’”, “Scroll to element”):

In contrast, Browserflow exposes selectors which is intimidating to non-coders:

The takeaway I had was to spend more time studying solutions in the test automation space because they’ve solved many of the same problems I’ve run into.

On a more personal note, seeing the level of sophistication and polish in these products is simultaneously inspiring and intimidating 😬