I’m a little OCD.
I’m a little exacting, and precise.
I blame it on my background.
I’ve got an engineering degree where I was taught to define and measure systems. To improve performance, reduce risk, to evaluate alternatives and measure results. I spent a quarter century in a ballet studio, perfecting the nuances of both small and large movements, where every tiny detail counts, from the specific lift of a pinky to balancing your entire body weight perfectly centered on a single toe.
It made me an awesome software tester. Quality assurance and me are like peas and carrots. It’s part of who I am now. I can’t visit your site without automatically thinking about ways to break it. I can’t look at your form without wondering how much testing you’ve done to improve conversions.
And I get a little frustrated when things don’t work. Especially stuff that I consider pretty basic.
I get even more frustrated when I see you trying to fix those things without any regard to testing, or to quality. Just code the fix, cram it in, and move on. And when I run into the exact same problem after you’ve told me it’s been fixed? Lather, rinse, repeat, I guess.
Testing has always been the red-headed step child. No one likes it, no one wants to do it. No one wants to implement testing systems at the same time they start development. So by the time anyone starts testing and running any kind of quality control, it’s already too late. Your testers will find problems you should have fixed years ago. And while your dev staff wants to move on to the next fun new feature, those pesky testers keep shouting about the same old stuff that still doesn’t work.
If your development staff is running your testing? If they’re checking the same code they just wrote? You’re screwed. Not only does your developer hate testing, but they’re not objective anyway.
I used to test the software that runs traffic lights. I did that for 5 years, banging away on the same thing, running through the same battery of tests over and over and over again. And then I’d do it all over again on multiple operating systems. For each iteration of the software. Because if the developer missed something, and I didn’t catch it, there was potential for huge danger. Putting an entire city of street lights into flashing red, simultaneously. Not making the light at a railroad crossing change fast enough when there’s an oncoming train. Some major safety issues.
Now, maybe it isn’t life or death if your little widget doesn’t go blinky-blinky at the right time when I enter a properly formatted phone number. But if you haven’t implemented independent, iterative, consistent testing for whatever it is you’re doing?
Then you’re creating a sub-par product. Simple as that.