We make use of a significant number of branches (a fairly traditional mainline model) for development, and it's proved extremely effective as a way of organising things and keeping developers efficient on a large team. We have QA test development branches before pushing them back to the main line, which ensures the main line is always stable.
Now there are some interesting problems related specifically to testing. The most common one is this: suppose a tester encounters a bug during testing, that's already marked as fixed. Is that because the fix failed (in which case they should reopen the bug), or because the fix hasn't reached the branch being tested?
As perforce users, we're looking at solving these issues with perforce jobs. It's quite a "raw" tool though - it more or less provides the underlying functionality for this, but not an easy interface, particularly for testers to use. So I'm wondering if there are more user-friendly methods out there, or different approaches entirely (I don't think "avoid branching" is a practical answer for us in this case though!)
What are the best practices for performing effective QA on multiple branches? Are there any good tools out there that provide automation and support for these issues?