I hear the idea a lot that anyone can test. And therefore we donât need âprofessional software testersâ.
I think itâs an argument that even I often struggle with and would like to get better at responding with something better than âyeah, but no butâ.
How do you respond with this idea as a software tester?
How can we kindly argue the case for âprofessional testingâ?
I guess anybody can and everybody should do testing of some sort, quality should also be a concern of the whole team and Iâd hope regardless of a persons role theyâd do some sort of type of testing though I know this isnât always the case. Whether thats a designer maybe who will carry out user research and validate wireframes maybe, or a developer who write unit tests or maybe (call me crazy) a developer who wants to do TDD (test driven development). For me even though testing and quality should be a whole team approach teams still need a dedicated tester as itâs a totally different mindset. Testers ask the difficult questions, think outside the box, where as when developers try to test in my experience they try to create tools or look at ways to fix problems with code, often attempting to automate everything, not fully understanding that testing and checking are different things.
I know I have pain in my knee. I know the cause of the pain. I know that it bothers me. I still go to a doctor to get my knees checked.
I know how to identify a rotting piece of wood. I know how to make it so that the plank that the rotting piece of wood doesnât fall. That doesnât mean that I can be a carpenter.
I know how to not spend all of my money, that doesnât mean that I can be a financial advisor.
I can kick a football, and can read the field better than most people I know, but thereâs no way I can be a professional athlete.
Yes, anyone who uses a product is testing it, but it takes a special mindset and a lot of training to know what to test, when to test it, how to test it effectively, how to communicate the results, correctly estimate how changes will affect the users, and so on.
Yes, anyone can test, but it normally takes a professional tester to test it right.
I personally call that idea the âany warm bodyâ school of software testing. Not surprisingly, itâs probably the worst school out there.
âAnyone can testâ really means âAnyone can follow a detailed set of instructions that leaves no room to explore and usually only finds surface issues.â
In the article I wrote that goes live on the Dojo tomorrow, âWhat Makes a Good Software Testerâ, I made a comment about
Testing being an activity that exists in the gaps between the creation of software and its delivery to one or more customers, and one that often focuses on gaps between expectation and reality
Being able to identify gaps and missing things is not something âanyoneâ can do. It takes skill to look at something and see what it needs to be better. Finding bugs is a side issue and very much secondary to identifying overly complex workflows, sub-optimal GUI arrangements, missing functionality and the like.
Given the right tools and training I think it is certainly possible to do an adequate job. However, businesses are looking to hire experts that do a task consistently well and continue to learn and grow. Having just anybody do the task works as well as it does for anything a business needs. Testing is not magic and customers donât only want to pay for it but they do expect to have quality products. As an industry we need to get better about teaching others why testing is important, nuanced, and communicate what it looks like done right.
You might not have someone with the job title of tester but you need someone to adopt that testing mindset and someone usually does in the absence of someone who does it professionally.
A person to ask those âwhat if?â questions.
If they (the team advocating for not having a professional tester) can find someone to do the job without the need for a person who has tester in their job title then thats not a bad thing but I would be skeptical as to whether they will find one any time soon.
I was formerly trained on how to fix a car. I got this training decades ago. Could I change the oil in my car? Absolutely. Could I do it as fast and efficiently as an oil shop mechanic? Nope. So I let someone else change the oil in my car. Same goes for changing the brakes, fixing a squeaky fan, etc.
I could do all these things but it isnât something I do all the time, multiple days a week. There are also tools a mechanic has and used on a regular basis. I could buy these tools. Ignoring the cost, I still might need practice using those tools. If you hire a professional mechanic they already know how to use those tools.
The same ideas hold for a professional software tester. I test software at least 8 hours a day, 5 days a week and I have been doing this for decades. Whenever Iâm on a project I know what works and what doesnât. I know what things to watch out for. I ask questions that constantly get the response, âThatâs a good idea. I wouldnât have thought of that.â
Additionally, for years I have seen numerous studies which attempted to categorize people (e.g. Meyer-Briggs). Many of these studies noted that some people are good at âhappy pathâ, some are good at âsad pathâ and some are good at both. However the people who are good at both are rare. So if developers are typically people good at âmaking sure it does what it is supposed to doâ and a professional tester is good at âmaking sure it doesnât do what it isnât supposed to doâ then you will still need professional testers.
I was a software developer for 17 years before I went back to university. At university there were people who wrote amazingly good code (code that did what it was supposed to do). Theyâd show off in the lab how great their software was. Iâd walk up, literally, every time and try 1 to 3 things before I found an input that would crash their application. Iâd always been able to write bullet-proof software routines but I was horribly slow compared to other developers. I always over thought things.
It wasnât until I took a job testing compilers, IDEs and micro-kernels (had to know how to program) that I found out about testing and quality assurance. I just celebrated my 20th anniversary last month as a software tester. Like Viv pointed out, some people have a mindset for being a software developer. I have the mindset for a software tester. Back that with 20 years experience and Iâll find more defects in 3 month than the average person (non-professional) will find in a year.
Anyone can do X, therefore we donât need X specialists.
The first bit:
How effectively will they do X? (An inexperienced person might just not be able to do certain parts of X, no matter how much extra time you give them.)
How time-efficient and cost-efficient will it be for a random person to do X?
The second bit:
Probably doesnât follow from the first, given the answers above.
As well as doing X itself, the experts can review the work of beginners (to help prevent mistakes), coach them (make next month better than today), and look ahead to good or bad things in the future (new legislation that will need compliance, new technology that introduces new risks, etc.) and help the company plan accordingly.
Iâm basically agreeing with what everyone else has already said.
Iâm a programmer who likes testing, not a tester. I think that this argument applies to many values of X - programming, testing, product management, marketing âŚ
Thereâs a separate conversation to be had around giving everyone an appreciation of what other disciplines in an organisation do, so people can have better conversations and so on, but deliberately getting rid of experts isnât the best way to do this.
Anyone can test. I think thatâs true. But just because anyone can test, that doesnât mean that anyone and everyone will be a good tester.
Anyone can become a tester. Indeed, I think thatâs one of the strengths of the craft: that there are as many routes into testing as there are different skills mixes and life experiences. But that has to be directed and at some point or other people will need to have some training in the art of testing.
Just because âany warm bodyâ can follow a test script, that does not mean that an app that has been subject to that approach can be said to have been adequately tested. Thereâs a world of difference between âany warm bodyâ and a professional tester, just as in any other discipline.
Nope, I love that anyone can test software, weâre just the best at it . Recently watched a great video with my team on this topic, âThe future of the Testing Roleâ by James Bach. If you havenât seen it, I highly recommend!
He says âabsolutely anyone, from little children to CEOs, can find a bugâ the distinction between everyone else and testing specialists lies in the depth and reliability of our work
I think anyone is capable of learning and becoming better at anything, so its a âyes, no, maybeâ answer the same as everything seems to be in this industry
can anyone who didnât try turn up and do our job? probably not,
can anyone learn to be good at our craft? with the right support and the right mindset, definitely.
Itâs all a matter of time and I think everyone is capable, they just need that chance and that first break to get them in and get them doing
speaking as someone who is always trying to recruit my friends to the cause
So I guess what Iâm trying to say is, it all depends on the attitude of how this was said and how it was meant.