During my previous job, I remember seeing our QA Engineer’s gloomy expression when he got told he had to perform a complete regression test on a Friday afternoon. Imagine doing it every day, for months if not even years. It’s not even funny anymore.
I tried to suggest that we could do some automation; the answer was quite blunt.
“There are already unit-tests. We don’t have time for more tests!”.
Little did the team know we were wasting valuable time on manual effort and being less efficient in the long run. Behaviour Driven Development seemed to be still a distant blur. Without question, the unfortunate tester would carry on repeating the same steps over and over again to the point of not caring anymore if they’d pass or not. He just wanted to go home and call it a day.
When I joined my new engineering team, I pitched for automation once again. Running a complete regression test with one click was the dream.
At the time, nobody got assigned solely for quality assurance. Developers and end-users did the testing, often under a lot of pressure. There was indeed a missing link between development and production.
Writing good test cases
How do you automate testing then? — Like any other automation! You write down the manual steps in detail first.
If you ever worked in an agile environment, you might be familiar with user stories and acceptance criteria. You would be writing test cases against them. Knowing how something is supposed to work is half the job done. You’d be outlining the test cases in code to complete it.
Having a well-written test case can be very straightforward to automate. You’d be converting human-friendly steps into code to run through. So, don’t neglect your test cases! Invest some time in writing them correctly. It will pay off in the long run, especially for your test reports. Involve end-users in the process, if you can. It’s compelling.
E2E Testing Frameworks
So, you’ve written your test cases now. What’s next? — You’ll need to have an End to End Testing framework to run your code through.
Historically I’ve been using Selenium which is quiet robust but can be challenging to get up and running. I prefer Cypress as it’s much easier to set up with a lower learning curve. Cypress supports Mocha JS, which makes the code very easy to read and write for anyone, even non-developers.
We had some reservations regarding cross-browser testing, but the most recent version of Cypress has got it covered! My crew has been using it for the past year successfully. We’ve been sharing our reports directly from the dashboard for every release.
The change has been tremendous. Confidence has risen with every test report, not only within the organisation but also for customers. We managed to identify defects instantaneously, way before deploying to production and with high precision. The team saved precious time by adding test automation as an integral part of our pipeline.
Of course, you’ll have to invest some initial effort to have a granular testing suite. The benefits are cumulative as you’re essentially saving time on repetitive tasks.
The more you automate, the more time you save. Having more time means you’ll be able to focus on the more meaningful things that create real value. I’d recommend any development team to consider adopting test automation in their daily workflow.
Next time you’ll be testing your code, ask yourself: “Can a machine do it for me?”. If the answer is yes, then give automation a try! You won’t regret it.