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.