According to CIO Magazine, testing (after requirements) is the most overlooked, most under funded, most rushed, yet most critical aspect of the software development cycle. I'd have to agree. I'd even argue that software testing is in worse shape than requirements. The article lists 11 ways to boost testing success, but I'm only posting the 3 that really resonated with my experiences.
Respect Your Testers
In most companies I've been with, testing is considered an entry-level job. That means you end up with entry-level results. Testers should also have some basic coding skills. This will earn them some respect from the software developers, but equally important is they'll have the necessary abilities to build ad-hoc tools and scripts as needed.
Set Up an Independent Reporting Structure<
When testers report to the same group that the developers report to, it eliminates a lot of their power to push back. As a deadline approaches, it's usually the testers that are forced to scale back their efforts or skip testing entirely. And since they're being evaluated by the same people responsible for hitting the deadlines, there isn't much the testers can do about the situation. Instead, the testers should report to another group. Perhaps the same group that does business analysis. This will also foster better communication between the project requesters and the testers while also helping the testers get involved in the software development process sooner.
Develop Tests During the Requirements Phase
This is one of those ideas that is great in theory, but really hard to do in practice. Aside from getting testers involved early in the process, creating requirements up front also helps people think about the problems they're trying to solve. If you're forced to walk through the workflow steps so that you can create a test plan, you're much more likely to discover things you missed and even come up with entirely new productivity-enhancing ideas.