The myth of totally automated testing

Every time I hear about test automation and the reduction of manual effort in software development, I want to hear something new and clever. Sadly, more often than not I hear the same old story about all manual activities being useless and automation testing is going to save us all. But why? Why again?

By

min read

Automated testing article

Automated testing is amazing. I really love it. Like everything else, it has its upsides and downsides, and of course, automating regression suites is essential for efficient testing teams.

Where does manual testing excel?

While many of us have come to accept the indispensability of manual testers, certain IT professionals advocate for total automation—an idea that is not only flawed but downright misleading.

This stance shows how little people know about the complexities and nuances of software quality assurance. It fails to acknowledge the contributions of manual testers in areas such as test planning, test design, exploratory testing, or bug investigations etc. These activities that cannot be replicated or replaced by a test script.

Additionally, the push for total automation disregards the human element of testing—the creativity, intuition, and critical thinking skills that manual testers bring to the table. These qualities enable testers to uncover hidden defects, identify usability issues, and advocate for the end user.

Deciding to forego manual testers doesn’t mean the elimination of manual testing. Rather, it redistributes the responsibility to other team members, such as developers or managers. Adopting an automation-first strategy without manual testers might give the illusion of being cutting-edge and efficient, but is it genuinely enhancing productivity?

The answer is a resounding no. This approach is counterproductive, ultimately incurring greater expenses for equivalent outcomes. It overlooks the essence of true efficiency and fails to capitalize on the strengths of both manual and automated testing methods.

Even for agile?

Yes, even within Agile methodologies, manual testers play a crucial role. Agile emphasizes flexibility, continuous improvement, and less formality. Here’s why manual testers are still essential in an Agile context.

  1. Testing with limited documentation. Agile projects often work with minimal documentation, and features can be developed based on user stories or brief descriptions. Manual testers, through their experience and understanding of the project’s goals, can effectively test these features without extensive documentation.
  2. Adapting to changes quickly. Agile projects evolve rapidly, with frequent changes in requirements and scope. Manual testers can quickly adapt to these changes without the need for updating or rewriting automated test scripts, ensuring testing keeps pace with development.
  3. Filling the gaps in automated testing. Given the short iterations it’s unlikely that your automated testing suite is comprehensive.There will always be gaps that only manual testing can fill.

Where does automated testing excel?

Automated testing is valuable primarily for its ability to avoid repetition. It’s ideal for regression testing which involves re-running previously executed test cases to ensure that new changes to the software do not inadvertently introduce defects in existing functionality. This process can be extremely time-consuming and laborious when performed manually, especially for large and complex software systems.

By automating regression tests, software testers can significantly reduce the time and effort required to verify the stability and integrity of the system after each code change. This allows us to focus our time and attention on more critical and value-added tasks.

Furthermore, automated tests can be integrated into CI/CD pipelines. There they are executed automatically as part of the software delivery process. This ensures that regression tests are run consistently and reliably with each code change, providing immediate feedback to developers and stakeholders on the impact of their changes.

Repetition in testing isn’t that common

Now, let’s consider the functional testing activities that are part of any software development life cycle and see which are repetitive.

  • Spec validation – not repetitive.
  • Test case design – not repetitive.
  • Regression testing – repetitive.
  • Acceptance testing – not repetitive.
  • Bug fix validation – not repetitive.

I left out a lot of testing activities on purpose. These five are the most essential and basic parts of the testing process that are unavoidable.

So, we can solve one out of five basic testing activities with automated testing. It’s not that bad, actually, especially if your regression suite is big and bloated. But what about the rest? Luckily, humans will test manually for as long as humanity exists, looking into each case and resolving it one after another. With their fallacies, imperfections, and biases, people are still and will be irreplaceable.

Can we automate all parts of the fundamental testing process?

I’d like to see how test planning, analysis, and design can be automated. I know very few people who perform test planning properly. This isn’t due to incompetence but because it’s really hard. It’s hard even for folks who have decades of QA experience because the number of things to consider is enormous.

The notion that these fundamental activities are either irrelevant to the overall success of the software development life cycle or can be automated deserves to be debunked.

By recognizing the importance of manual testing expertise, organizations can make informed decisions and prioritize efforts to enhance the effectiveness of their testing processes. It’s imperative that we address these challenges head-on and invest in the development of robust methodologies and tools that empower software testers to excel in their roles and contribute to the delivery of high-quality software products.

Leave a Reply

Your email address will not be published. Required fields are marked *