Quite the contentious title, deliberately so.
The role of a software tester as we know it today is a relatively young discipline, much younger than that of the software developer. What that says about the software industry is left as an exercise for the reader. However the role’s existence may turn out to be a transitory phase in the software industry’s history, as we’re superseded by developer quality evangelists and greater use of automated systems, including today’s paper tiger of artificial intelligences.
Allow me to elaborate. There was a time (and in some companies this is still true), where a software tester was/is a warm body who can follow a script and raise a defect when something went awry. Nothing outside the scripts, just doing what was asked and not a whit more. But some testers started to chafe, get creative, talk to developers and start to explore the product in new and unscripted ways. Now this is the norm and we’re seeing the rise of a new breed of tester one who lives closer to the code and spends more time helping the devs test than actually doing testing themselves. It appears to only be a matter of time before the role of the tester is to write code, participate in code review and help the developers on the team to design and test their code. A “T shaped” developer who specialises in quality, rather than a dedicated tester. Every team has specialisations, the GUI expert, the person who knows networking back to front and soon, the developer who knows testing better.
I fear we’re soon to be on the scrapheap of history and left as a short-lived blip on the history of programming as the ideas of testing and exploration become embedded in the next generation of developers. I also don’t think it’s a bad thing at all. Quality being everyone’s responsibility means this is the natural progression.