I’m a guy who is no stranger to coding and automation on one hand, and have a lot of experience with testing on the other hand. I understand automation upsides and its limitations. I’m fine with automation, I coded / fixed a lot of it myself. But automation is not a substitute for testing. Automation scripts, however sophisticated they are, do not do what humans do, do not perceive products as humans perceive them. Knowing what I do, as a user and as a tester, and what automation does, it makes me angry to see sales pitches that some automated products “do testing”. Again, automation has its upsides and it’s good to use them. But…
Automation does what it is programmed to do. It does not what it is not programmed to do. Imagine a search field. A programmed check may check if it is on a page. Mays send some input to it. That’s fine.
But automation may be not programmed to check that the field is:
- in the right place
- of the right size
- set to some good font size
- set to some good font type
- set to correct color
- does appear on time but not 3 seconds later
- does not produce any “Easter eggs” when clicked
- does preserve the text I pasted
Quite a few things can go wrong with something as simple as an input field.
I know a thing or two about automation – but also I know how many things can go wrong for me as a user, and automation does not check it if not programmed for that specifically.
As a user, I perceive complicated reality, in which many unpleasant thing can happen with the application. As a guy who can code automation, I know that simple automation does not check all what I perceive.
That’s a kind of the differences between testing and checking which many people don’t realize – or don’t _want_ to realize.
And, of course, automation can’t fix problems of all-rounded testing coverage and of proper testing in general. It does not have brain to think for you, your stakeholders and users.
It’s okay to use automation, but one needs to know and bear in mind its limitations.