QA is a big part of software development. Whether there is a specific role on the company or it's just some testers trying the builds.
In my opinion QA has two main goals:
- Help the product
- Help the developers
The first one is easy, it's what most people on QA does. Test the new builds, try to find edge cases and report bugs.
And that's the start of the second part, the point wich some poeple forget. Reporting bugs is easy, most of the software today automatically reports crashes. But reporting bugs it's not easy, as it's not easy to solve them.
For many groups at Apple, Radar was religion. An issue regarding a product was not considered to exist until it was in Radar. If someone asked me, “Have you seen this bug in your product?” My immediate response was, “Is this in Radar?” “No.” “We’re not talking until you’ve filed Radar.” Case closed. For now.
When you find a bug on a peace of software, it's not enoight to say "This doesn't work". First of all you have to reproduce the bad behaviour more than once, write down the steps that end to the problem. Then think about what can be wrong, is the problem caused by some strange data? Is a bug on the client? Maybe I can check if the API is returning what everyone expects. There are so many things that a QA person can do to help the developers. Every little peace of information can help a lot in the hunting of a bug.