The Partnership of Testing and Checking

This is a guest post by Nishi Grover Garg.

I recently met software testing consultant James Bach on his visit to India, and I got a chance to talk with him and listen to his opinions and ideas about the art of testing. Not only did it bring me a deeper understanding of the psychology of testing, but it also reinforced the notion of automation only performing checking. The creative and human aspects of testing lie with the tester, which I had experienced as well as written about a few years back as a hands-on tester myself.

Human Testing

Testing is a craft that is more than executing a bunch of tests, performing clicks and actions. A tester has a unique understanding of the system and ways to critique it. Over time, the tester develops a deeper comprehension of the application and its intricacies, integrations, weak points, and history. This makes them the best judge to find out the failure points of the system and comment on its health.

The Product Risk Knowledge Gap is the difference between what we know about the product and what we need to know. The purpose of testing is to close or at least reduce this gap.

While automated checks can help in determining problems in what we know (and have scripted as checks), it may not help as much in the risk areas of what we do not know about the product. That requires exploration, creativity, intuition and domain knowledge. This is the human aspect of testing.

Automated Checking

Test automation scripts typically follow this flow:

TR inline graphics partnership of testing

Automated scripts have some built-in steps in the form of test data that we pre-define and verifications that we add. These steps are helpful for areas of the application that we need to check, double-check or re-check a number of times, and because these types of checks can be made explicit, they can be automated. Since the same steps will be performed the same way over and over again, it is better called “checking” rather than “testing.”

The skill of test automation has garnered much interest in the testing industry, so much so that it is now considered an in-demand skill without which a tester may become irrelevant. Many testers are scared of the fact that not being able to write code or test scripts would render them useless to their teams. But this is actually not the case. Testers are not defined by their tools, just like developers are not defined by their programming languages or IDEs.

While being able to write and understand code or create automated scripts are useful skills for a tester, we must look at the differences in the mindset of a coder vs. someone who does not code.

They think differently and perceive the same software in a different way. Non-coders have a user-centric mindset and usually a higher level of empathy for the users. So, while we do value being able to read, understand and analyze code, the human aspect of testing cannot be negated.

Modern Test Case Management Software for QA and Development Teams

Putting Them Together

Testing needs tacit social competencies, human experience, and the ability to make sense of situations, so these skills cannot be fully encoded. Testing is the process of evaluating a product by learning, through exploration and experimentation, which also includes checking.

Creating a balance of human testing plus automated checks is the best way to get ROI on our test automation efforts. Here’s how we can make an effort to strike that balance:

  • Understanding what needs to be automated instead of running behind a coverage percentage or numbers.
  • Automating only what is really needed and using human testing for exploration.
  • Making conscious decisions rather than struggling with technical debt.

Testing and checking work best together, with automated checks acting as a way to supplement the tester’s efforts toward evaluating the product.

Testing and checking are truly a partnership, and we must explore both in order to achieve the most out of our efforts. This partnership can yield the maximum results if it’s utilized in a well-balanced manner.

All-in-one Test Automation Cross-Technology | Cross-Device | Cross-Platform

Nishi is a corporate trainer, an agile enthusiast and a tester at heart! With 11+ years of industry experience, she currently works with Sahi Pro as an Evangelist and Trainings Head. She is passionate about training, organizing testing community events and meetups, and has been a speaker at numerous testing events and conferences. Check out her blog where she writes about the latest topics in Agile and Testing domains.

In This Article:

Sign up for our newsletter

Share this article

Other Blogs

General, Agile, Software Quality

How to Identify, Fix, and Prevent Flaky Tests

In the dynamic world of software testing, flaky tests are like unwelcome ghosts in the machine—appearing and disappearing unpredictably and undermining the reliability of your testing suite.  Flaky tests are inconsistent—passing at times and failin...

General, Continuous Delivery

What is Continuous Testing in DevOps? (Strategy + Tools)

Continuous delivery is necessary for agile development, and that cannot happen without having continuity in testing practices, too.Continuous delivery is necessary for agile development, and that cannot happen without having continuity in testing practices,...

General, Business, Software Quality

DevOps Testing Culture: Top 5 Mistakes to Avoid When Building Quality Throughout the SDLC

Building QA into your SDLC is key to delivering quality. Here are the mistakes to avoid when building quality throughout the SDLC.