There have been a few posts by the great and the good of the testing world over the last few days about Testing vs. Checking, which was further broken down in to Human Checking and Machine Checking.
Before we go any further I thought I would give a little background about me. I am not a great or good. I am just a career tester making my way in this world. I would like to think however that I have gained a bit of valuable experience in the last 15 years that I have been in this industry. I take my profession seriously, am passionate about it, and I have an opinion on most things. Therefore I thought what the hell, I might as well make my opinions/thoughts and views known on this particular topic for my first (and maybe last) blog post. As this is my first ever post, and I am not the most prolific writer in the world, I apologies in advance if this post is either poorly written or a little bit choppy in its direction.
OK so back to the point. I want to make it clear that I am in support of the refined definitions of testing vs. checking that as been put forward by James Bach and Michael Bolton in the post Testing and Checking Refined. It makes a lot of sense to me and I have seen both human checkers and testers during my career. However, the one thing that stood out to me when I read this post, and others in response to it from the Iain McCowatt (Human and Machine Checking) and Paul Holland (Reply to Human and Machine Checking), was how the focus was on what happens during the execution of a check. There was no discussion or thought given to the process of defining that check in the first place from what I could tell.
If I have interpreted what these guys are saying, then checking, whether human or machine comes from a pre-scripted testing approach, as opposed to an exploratory one and as such this would mean that someone had spent time analysing the system to be tested prior to the execution and will have applied some knowledge to that process. Therefore could it be possible that although at the time of execution the script is a check, due to the process of the defining of that check a wider element of testing has been applied and as such makes the check at the time of execution stronger (or weaker if the tester doing the analysis has not done well in this task)? or more correctly, the set of checks be stronger?
In my experience the analysis phase of testing is as much of a minefield as execution when it comes to the test vs. check debate. Test analysts can fall into a similar categorisation where they either “check” by identifying the requirements and then define a test to prove/disprove that requirement or they “test” the analysis done by the designers by analysing the requirements and then by using there knowledge are able to read between those requirements to identify questions or hypothesizes about what has not been explicitly stated in the design/requirements. If they have done the latter then they are adding more value to the set of checks that they produce than if they just apply the former. In my opinion this will make the list of checks to be executed stronger than than if they have just “ticked” of the requirements that had been presented to them. This leads me to believe that although checks (in the execution phase term) are only part of testing, there strength will be based on the type of test anaysis / Design that was performed during the generation of those checks. .
So in conclusion I believe that applying the testing vs checking view at the test analysis phase means that at the time of execution not all checks are equal. You can have a strong list of checks or a weak list of checks depending. If you then have a human executing these checks, then as has been mentioned you will add further value.
This is my views that I wanted to put out there. As I stated at the beginning I am not one of the greats or goods, but I have views. I thought long and hard about putting this first blog out, can be very daunting to a newbie, putting your thoughts out there to be analysed and pulled apart, but even if no one agrees I hope that people will explain constructively why they feel I am mistaken or talking rubbish so that I can learn more. …. all I ask is be gentle 🙂