Schools of testing
There are various schools of thought or approaches to testing; Factory testing; Agile; Context-driven; Rapid Software Testing to name a few and there are various certification programs for testers that are aligned to some of these.
There’s the ISTQB who have “…created the world’s most successful scheme for certifying testers”; The ISQI “Certified Agile Tester “, a “Certified program includes internationally recognized standards”; BBST founded by Cem Kaner, one of the founders of the Context-driven approach to testing.
These certificates should be an indicator to companies that the person they are hiring is competent. But are they?
Certification does not guarantee excellence.
Certified Scrum Master is something I see alot of testers touting nowadays. It has supplemented the ISTQB Foundation as the certificate to have.
However, the Agile Alliance directs people towards skill based certificates, such as the Certified Scrum Practitioner instead. So why are testers taking the Certified Scrum Master certificate?
This quote below highlights a key idea behind certification:
The Agile Advanced Practitioner Examination addresses the needs of those working in an Agile project environment who want to attain formal recognition of their knowledge, understanding and application of Agile Leadership practices.
Certifcates, in IT at least, are predominantly about recognition, not competence. This is something you can sell, either for yourself, or your company.
And this recognition is eternal. Once you’ve passed, it’s yours forever. Most certificates in the IT industry aren’t ever retaken. So a certificate from 7 years ago is just as valid as someone that took theirs yesterday, regardless of whether the industry, techniques or methods have changed, moved on, or been updated since then.
Compare this to the Gas Safe certificate (A UK based certificate for Gas Engineers, required by law). It has both a practical and theory test. But the industry changes, regulations change. To ensure you are competent, up to speed and safe, this has to be retaken every 5 years to stay certificated.
This is good practice.
Context-driven testers reject the notion of best practices, because they present certain practices as appropriate independent of context. Of course it is widely accepted that any “best practice” might be inapplicable under some circumstances.
’Best Practice’ as a concept really bothers me. It is a panacea, an excuse not to think. ‘Good Practice’ is fine but ‘Best’ is too final.— Colin Eberhardt (@ColinEberhardt) December 24, 2013
So we should use what works using the best knowledge and resource available, then if something comes along later that performs better, adopt that, or refine current practices to include it. Best practices restrict that change. It has always been done this way. It works. Why should we change?
Certifications seem to reinforce that inflexible nature.
How to test the testers
Testers have often been pigeon-holed, defined by one model from one viewpoint. But testers are flexible and shouldn't be defined so narrowly. A tester can be a developer, many testers produce great code. Or a tester can have studied design patterns or user experience. A user interaction model is one that testers should be very familiar with. A tester could also be a product expert, well versed in multiple business models.
Having a diversity of ways of mapping, based on how we look at something, we will have different ways of controlling it, which leads to better outcomes
A tester is a generalist. They have a broad knowledge base, different models and different viewpoints. They may be able to perform an alternative singular job competently, but they may never be the virtuoso that others are. They can provide valuable input to those areas where they do have knowledge.
So how do you certificate for a non-specialist specialist? How do you determine that someone is qualified to test software when one testers panacea is another’s hellstew.
You can teach examination questions, of which some ideas or terms may be useful or have commonality. But this is isn’t teaching competence. It’s teaching to pass an exam.
Testers need to be taught to think critically. Which brings me back to the approach of Rapid Software Testing. It doesn’t certificate. It teaches. And that’s a good thing.