I’ve been a software tester for a little over a year and a half now. In that period the number of times I had to test something manually can be counted on one hand. Yet every time I Google something related to testing I come across these references that many people are still testing manually. I also hear from Colleagues that they are testing manually regularly.
That baffles me. To me, testing something manually feels like time wasted, and not the good Netflix kind. In this article, I’ll talk about why you should feel like you’re wasting time if you’re testing manually.
In thinking about testing I’ve adopted the following mantra:
If it’s worth testing, it’s worth automating.
This comes from the very basics of testing. We test to make sure that the application under test is what the business wants and that it’s of a certain quality level. In other words: Testing is a quality assurance tool.
When doing quality assurance on a new feature we generally want to ensure all of the following:
- The feature is built according to the specification (provided by the business).
- The implementation & specifications of the feature make sense.
- The feature can’t be abused (input validation, security, etc.).
- All other features remain of the same quality (no regression).
Three of these things (numbers 1, 3, and 4) we can ensure effectively in a technical way with automated tests. The last one (number 2) is done by you as a human during the process of writing the tests. Writing automated tests is not solely a technical task; you are the last line of defense for any mistakes made by others.
Manual testing is a waste of time
It is undeniable that doing a single manual test is quicker than writing and executing an automated test. However, there is an important redeeming quality for automated tests: They can be repeated over and over again at a negligible time cost.
A test done yesterday is outdated and should be executed again. Executing an automated test the second time is much quicker than a manual one. Because of this, an automated test can be executed every day, while a manual test can’t due to time constraints and other priorities. This means that an automated test ensures quality every day; today and in the future. A manual test only ensures quality today.
When I’m writing an automated test I’m not only doing it to prevent today’s issues, but also to prevent tomorrows bug.
As testers, our job is one of quality assurance. If you’re testing manually you’re only doing quality assurance on the application as it is today, not the way it will be tomorrow. It’s just not feasible to manually test everything daily. With automated tests, you can test everything every day preventing future quality assurance issues.
If you, as a software tester, are not actively preventing future issues, you are not doing the job you have been hired to do and as such are wasting your time.