By Andréia Ribeiro
As I study software testing, I’ve been exposed to ideas that are changing the way I see this field.
There are many techniques and structured ways to think about testing. Recently, during a mentorship program with Júlio de Lima, I learned something that really changed the way I see this area: the difference between checking and testing.
What is Checking?
According to James Bach and Michael Bolton (from the Rapid Software Testing approach), checking is when we verify something based on predefined rules.
In other words:
There are expected results.
There are requirements or specifications.
The system must follow those rules.
We compare the actual result with what was expected.
If the software doesn’t follow the rule, we have a defect.
Checking is:
Mechanical
Based on rules
Repeatable
Objective
Because of that, checking can be done by humans or by machines. This is where automation fits perfectly. Automated tests are great at checking if the system still behaves according to what was defined.
For a long time, I thought this was “testing”. But now I see it’s only part of the picture.
What is Testing?
Testing, in the definition from Bach and Bolton, is different.
Testing is a human activity.
It’s when the tester:
Explores the system
Tries to understand how it works
Asks questions
Creates hypotheses
Thinks critically
Uses curiosity
Here, the defect is not always written in a document. Sometimes, we discover problems based on experience, context, and interaction with the system.
Testing is more about learning.
It’s less about confirming rules and more about discovering risks.
And because it depends on human thinking, creativity, and analysis, it cannot be fully replaced by tools or automation.
Another Perspective
It’s also important to say that not everyone defines it the same way.
For example, Elizabeth Hendrickson, in her book Explore It!, explains that checking and exploration together form testing. So the discussion is still open in the testing community.
And I think that’s interesting, testing is not only about techniques, but also about how we think.
What This Changed for Me
Before learning this, I used to mix everything and call it “testing”.
Now I try to ask myself:
Am I checking something?
Or am I really testing?
This question helps me decide:
When automation makes sense
When I need to explore more
When I should slow down and think
For me, this learning was an important step. It made me see that testing is not just execution, it’s investigation, reflection, and continuous learning.
I’m still learning, but this distinction helped me see software testing in a more structured and meaningful way.
How do you see the difference between checking and testing?
References and inspiration
This reflection was inspired by what I learned during the Mentoria 2.0 with Júlio de Lima.
The distinction between checking and testing comes from the work of James Bach and Michael Bolton (Rapid Software Testing), especially James Bach’s article “Checking vs Testing” (2009).
I also found Elizabeth Hendrickson’s book Explore It! helpful for offering another perspective on the topic

Comments
Post a Comment