For a while now I am trying to learn scripting with in testtools like HP UFT and Selenium as there is great demand for testers who have those type of skills. Actually what most companies ask for is a programmer with knowledge about testing frameworks and testing in general. As creating a automated testsuite is more like programming than like testing. But everytime I start to code or record my scripts my spidey-sense is triggered by something I see and my manual tester’s brain takes control of my programming brain.
And that is the thing, automated testing is not testing at all, in my opinion. Automated testing, the way I see it, is a way of checking if the the current built is stable enough to be deployed to the next level. You see, testing involves a certain creative process and not just execute what you are ordered to do. The last thing is what testtools do, they execute a script and do not deviate from that plan. Hence, what testools do is not testing but checking.
When you give a human a testscript, that testscript is the start of his journey to get to learn the system and explore the system further with the testscript as his fallback. This way human tester covers way more ground than automated testscripts, which only can executed what they are told to do and never ever will deviate from the plan at hand. Where human tester’s curriosity is invoked when he witnesses something that is a non-regularity.
But why this need for testautomation with in Scrumteams, DevOps teams, etc. And I even get the reason why product owners and other constituents want to increase quality and decrease the time to market and flea to test automation is a likely one to make. Testers on the other hand have also to make a change and let go of all the testdocumentation they are making and gain control of what they are good at: right testing. And to do so you can start to learn to write code for good automated checks and use more effective methods like Rapid Software Testing or Exploratory Testing as manners for effective Software Testing.
So to end my “talk” about why automated testing is not testing. Testing is a proces of evaluating the risk that is run by the business when the system has been promoted to the next step in the release chain. And Test automation is a way to help you to get your information, but stop calling automated test execution, testing and start calling it what it is: Checking