There are no lemon laws for bad software, but that doesn’t mean bad software doesn't matter. The QA role is one of the last chances to stop from shipping bad software. Contrary to what many think, the fact that it comes near the end of the development process doesn't mean it has little importance; it makes it crucial to producing quality products that boost a company's reputation, as well as its sales.
QA analysts develop test plans, execute tests, and evaluate a product's readiness to ship – but they can do so much more. QA can take on role that goes beyond verifying code quality to perform functions that ensure the product addresses the underlying user needs.
Involve the QA Team During Requirements
This means involving QA during the requirements phase, not waiting to bring them in until coding is complete. Like business analysts, QA staff understand both technology and business needs. They can help address developers' questions when the business isn't available. They also have a comprehensive view of what the application needs to do, keeping in mind some of the less common scenarios business users tend to omit. By reviewing the requirements early in the development process, QA can help ensure that important scenarios are identified prior to testing.
Involve the QA Team to Extend the Testing Process
Although test-driven development relies on developers to keep testing as each piece of functionality is created, QA can build an environment that reduces the likelihood of defects slipping through. Automating the test process and maintaining a library of regression test cases are critical to ensuring that comprehensive testing is performed. QA also brings focus to testing issues that can't be effectively tested without viewing the application as a whole, such as performance and security.
Involve the QA Team to Shape Future Development
QA should also remain involved after testing is complete. The output from the QA testing process shouldn't simply be a signoff that the application is ready to ship. QA should provide feedback to the application owner to help identify issues that extend beyond problems in a single test case. Because they look at the entire application and the business process, QA can identify failings in the development process that are resulting in defects.