This past Friday, May 21st, 2021, was exactly 34 years since my first day at Apple Computer as a tester. Before that I was a dev, but I have been a tester ever since. This has put me in a retrospective mood.
The industry has gone through changes, yes, but it seems to me there has been a constant throughout my entire time observing this field: almost everyone in the software world thinks they understand testing, yet almost no one makes an effort to study it. Testing was not taken seriously in the 80’s, even though there were a lot of people called testers and money was being spent on it. For the most part, testing is not taken seriously today, either. It is the fashion, today, to say “quality and testing is everyone’s job!” (and then treat that as license to do testing in a shallow and amateurish fashion).
When I joined the craft, the dominant idea was to formalize testing by writing procedures, then automate those procedures if you can. It was thought that testing specialists were needed to create those procedures and to operate the automation. We had test teams and test managers. Testers were always under pressure because everyone except testers wanted to ship the product ASAP.
I and a few colleagues took up arms (metaphorically) against the idea that formalizing testing is always good and that informal testing is not good. We claimed testing is about people who learn and think and question, not about procedures and factory assembly lines. We pushed for testing craftsmanship, and respect for those who dedicated themselves to that.
The coming of Agile, which is at least overtly humanist in its outlook, seemed supportive at first. But it quickly became another would-be oppressor. Agile was not created by testers, nor by people who had worked with good testers. As Cem Kaner liked to say “Agile fired the testers” because they had only known the kind who hid behind their fortresses of written procedures. Ultimately, Agile and DevOps put a new, hip, turtleneck sweater-wearing, Lean Coffee-drinking, millennial face on the exact same problem that we suffered through in the 80’s. Some of the details have shifted around. Now there is pressure to dismantle the whole idea of having people who call themselves testers. Testing craftsmanship, which had previously been undernourished, is now under active attack by people who want to appear cool and evolved. Some of my old friends, once testers, now have become “quality coaches.” Some of them have even convinced themselves that testing is passé.
What is that same old problem that we have today just as we had in the 80’s? Managers who believe that all testing should be formalized and automated.
Why do they believe this? Because they do not know and never have understood what good testers actually do and how they do it. They don’t even want to learn, in most cases, because learning that would take away the only excuse they have (i.e. ignorance) for treating testing like a crisp algorithmic process instead of a fuzzy social process.
Is anything really different today? Today there is much less protection and nurturing for testers (a lot fewer test managers and smaller test teams), while the pressure to ship is much greater (because of instant delivery). Today organizations such as the ISTQB are happy to take your money and exploit your fear and doubt to give you crappy advice and recycled myths in the name of testing. On the good side, there are fantastic resources to learn testing available online that I never had… but the good resources are swimming in a sea of bad ones.
Why can’t testing be something that everyone does? Everyone can help testing. That’s good. What I’m saying is that it takes special dedication and focus to analyze the need for testing and to prepare oneself to do what should be done for deep testing– to find every problem that matters. Anyone can test, just as anyone can defend themselves in a court of law. Not just anyone can test responsibly, or be an effective lawyer in their own defense.
If the dominant culture regarding testing is so backward, how come it doesn’t change? Because testing is the sort of activity, like management and teaching and politics, in which it is easy to do a bad job, then blame anyone and anything other than yourself for the problems that ensue.
Why doesn’t the testing field grow up? Because testers keep leaving the field before they attain wisdom and learn to assert themselves. Also, ambitious, smart people tend not to want to get “stuck” in testing.
Why are you still in testing, James? Because I became a teacher of testers. I developed a system of teaching and doing testing that people seem to find helpful. And that gives my career meaning, despite the perpetual attacks on the culture of excellence to which I aspire.
Michael Bolton wants me to add something hopeful. He wants me to suggest a solution to this. Of course I have a solution. This website is full of useful knowledge about testing. I also teach testing. There’s a link to my classes on this website, somewhere. If you want it, you can find it. Really, all the rest of this website is about solutions.
Given what I’ve experienced since I first walked into 10500 De Anza Blvd. as Apple’s newest tester, I think there will never be a general solution to the problem of bad testing. But any one of you, reading this, can decide to make your own small part of the testing world a little better.