I should call out that I have never worked in a company where there wasn’t some form of manual QA team (although in one company they were eventually all let go and we had no QA team at all). I should also call out that every manual QA person I’ve ever worked with has been an invaluable partner in building quality products. They care deeply about the user experience, hunt down & find bugs and make sure we fix them. I’ve never regretted working with these people, and in many cases wonder if they’d make good product managers.
But.. I still have a philosophical problem with manual testing. Even if we ignore the Agile part of it, and the not entirely unfounded allegations of waterfall thinking, there’s still the fact that human beings are really bad at doing repetitive tasks. And there’s nothing more repetitive than having to manually regression test an entire site to make sure the latest changes didn’t break anything.
In situations like this, I’m always massively in favour of automating as much as possible. Part of that’s down to test driven development and having good unit tests across your codebase. That’s definitely something teams should strive for, but it’s also a bit like marking your own homework. Having a robust suite of end-to-end tests is a really, really good idea. It enables you to
programmatically define user journeys, clicks, navigation etc and run them via real browsers. You can even run them across multiple browsers and mobile operating systems if you want and get a variety of artefacts including videos, usability & accessibility reports. I strongly recommend QA teams upskill in this area if they don’t have the skills already. This allows any necessary manual testing to be by exception, and allows teams to concentrate on exploring the new stuff.
But do we need QA people at all? Agile fundamentalists will say no. I don’t agree with that because I think having external arbiters of quality is A Good Thing™. It’s very true that developers should care about writing quality code, and ideally write some of those functional tests themselves, but having strong, quality-obsessed partners constantly working to keep everyone on top form is something I encourage. They just need to be given the tools & training to concentrate their admirable talents on the areas that need them, and ideally brought as far up the development funnel as possible. That’s to say, don’t just throw them a work package at the end of the sprint and say “check this”! They need to know what’s coming, why it’s coming, help with acceptance criteria, check it in flight and be considered true partners in developing a quality product.