Isn't it time to automate website testing?
It doesn't matter who I talk to when it comes to building websites or software—there's never enough time to test everything. That's not to say that companies aren't testing software—because they are. But when you ask someone about coverage, that's when things start to change.
Coverage is exactly what the word sounds like—the amount of code that you've tested. And because most websites count on humans to do the testing, the notion of 100% coverage is virtually impossible.
Wouldn't it be nice if you could automate tests and store them up so you could get 100% coverage? And what if you could run all the tests in a row, to make sure that every time you made a change you still knew your site was working perfectly?
Seems like the holy grail, right?
What should you test?
The first question that comes up is how much to test? After all, there are tons of different things that people could do on a website. Do you test all of them? It seems a bit crazy.
For me, things started with an article, now famous, from Dan North almost ten years ago. It shifted the focus away from looking at the code and working on testing the code—which is not only a very code-centric way to think, but puts me in jeopardy of knowing the code works without knowing if the customer is happy.
That's not to say we're not testing code. But our perspective is the end-user and their goals. Once we're clear on that, it starts shaping the who, what and why of our testing.
Here are three tools to consider
Once you feel comfortable knowing what you're focused on, when it comes to testing, the trick is figuring out what tools can help you.
I've long been a fan of Codeception and highly recommend it to developers.
But the world isn't filled with developers. So this weekend I spent some time trying out non-developer tools that could still automate acceptance tests.
Let's start with UseTrace. Check out how easy it is to make things work.
But UseTrace isn't the only tool out there. There's also GhostInspector—though it functions primarily thru a Chrome extension (which may or may not suit your needs).
The good news—with any of the three tools—is that whether you want to write code or can't write it, you can automate website testing. Each allows you to store all your tests and run regression tests as often as you like (though different plans may have differing costs).
The Power in Automated Impact Analysis
Maybe the biggest reason I'm a fan of automated acceptance testing is because it puts the focus on the end user. And while no end user will fault you for a bug or issue, they will get really frustrated if a previously repaired issue reappears. It screams a lack of quality control, laziness, incompetence and more. And we all see it happen—far too often.
How do those previously-fixed bugs reappear? Because a current change has an impact on code we wrote before. And finding and tracking down those dependencies is really hard. It's normally called “impact analysis” when we want to know what a current change will mean to all our previously-written code.
And now you can automate it. Just store all your automated tests, and then run them in batch every time you make a change. Automated Impact Analysis. Trust me, you'll be writing songs about it.
So now that you know, there's nothing left but to check out:
Let me know what you think.