I have noticed a shift in how companies are attempting to ensure quality and this is what has led me to write this post. Companies desperately want to achieve quality by simply creating automated tests. Why do they want this? Simple, the speed at which we need to deliver software demands it. A human tester simply cannot test all that is needed within a short Agile sprint. Test automation can seem like the ultimate tool for solving this issue but I’m afraid we are only kidding ourselves by believing truly high-quality software can be achieved with only test automation.
Imagine your company only employs test Automation Engineers or Developers In Test. Think about how these workers approach quality; their goal is to construct a test in the form of a simple script.
For example an automated test script could:
- Select a setting.
- Tap a button.
- Assert that the expected screen appears.
Testing a feature in this way is extremely basic. Often times, this is what is done when scripting automated tests. Why is this the case? Because this is how we must instruct our test software to assess quality. Automation Engineer’s primary output is a test script. The problem with this approach is the minute they start implementing an automated test they have stopped thinking about quality. When a manual tester examines this same feature noted above the verifications and logic checks executing their head are in orders of magnitude more complex than this. The manual tester gets a sense of rough performance, usability as well as the simple dumbed down check that this automation provides. Why do we want to remove this type of intelligence when trying to build quality software?
Stop trying to oversimplify software quality. Use automation but understand its strengths and weaknesses. What we want from test automation is to ensure base functionality. Base functionality means our app runs and the primary paths through the software are working. That’s it. This baseline is certainly a very important aspect of software quality. However, it’s not going to get you 5 star reviews in the app store. Ask yourself the last time you saw a review like this:
At this point, you might be thinking “whoa whoa whoa wait a minute are you saying we don’t care about crashes?” No, what I’m saying is our users expect this level of baseline quality. Guess what, your competitors most likely have basic functionality nailed already. We must use other strategies if we are to fully bring high quality to our software and beat the competition.
Now if we combine test automation with skilled QA engineers we can create brilliant software. If you are a manual tester and feel the pressure of test automation… don’t. Embrace test automation, it will help you bring real value to your team beyond verifying simple button tap functionality. Also realize one day test automation will be fully automatic and won’t necessarily need to be instructed to ensure your app simply functions. If you are a manual tester, find more important ways to bring value to your team.
- Get closer to your users and understand what the pain points are in your app.
- Work closely with development to ensure usability of a new feature works flawlessly.
- Use your test experience to flush out problem areas.
For example, I start every day reviewing the Google Play store reviews. This practice enables me to make insightful quality decisions on a day to day basis. I know in doing this I’m bringing way more value than a simple test script. Companies should keep implementing test automation but also realize a highly skilled quality expert cannot be scripted.
Users expect your app to have a baseline quality and not crash when tapping a button to navigate to another screen. They want brilliant features presented at the right time, containing actions that make sense in the current context. They also want the transitions between screens to make sense and let them know where they are coming from and where they are now. Test automation cannot think and therefore cannot ensure this level of quality in your app. I challenge all manual QA workers out there to drive quality beyond simple validation checks. If you don’t, Quality Assurance will simply become Functional Assurance for your company.