Reading Time: 2 minutes
Failed quality assurance may be standing between you and a successful product.
The key objective of quality assurance (QA) is simple: find flaws in a software application and ensure they are fixed.
Why QA isn’t always high-quality
While this sounds like a simple task, the reality is not so straight-forward. One reason? The QA process is not always taken as seriously as it should be:
- Some developers leave QA to the programmer who created the application. By definition, this strategy is not quality assurance, since the programmer is unlikely to spot his own mistakes.
- Some project managers believe QA can be accomplished without a real plan, or that hiring a well-credentialed developer will mean no QA process is even necessary.
- Some clients mistakenly assume that QA is just an opportunity for software development firms to pad their bills.
To combat these fallacies, it’s important to understand the basic tenants of a solid QA strategy:
- QA must be performed by an independent resource. An application’s developer might only test software from his or her perspective not the way an end-user or customer would view things.
- Excellent QA professionals have been trained to see a product from the user’s viewpoint and find all of the possible ways to misuse and break it.
- QA should be an integral part of the software development process, not something bolted onto the end of a project.
Finding QA best practices
When choosing a software development firm, make QA an important part of your decision-making journey. Look for these key indicators of a healthy QA process:
- Reasonable QA-to-development ratio. A good rule of thumb employs one QA professional for every two or three developers. Unless you are undertaking an especially low-risk project, don’t accept a ratio of less than one QA professional for every three developers.
- Established QA process and methodology. Your software development firm should already have a detailed QA process they follow, including checklists and milestones. At the very least, there should be testing strategies and test cases in place. It is usually not sufficient to have only ad hoc testing, where the team simply plays with an application until it breaks.
- Three-dimensional testing. The best QA strategies include three levels of QA performed throughout the software development process. First, the developer undertakes unit testing within the code. Next, an independent person outside of the development team performs functional testing of real-world scenarios. Finally, a QA professional performs integration testing to ensure the software works with other applications and systems.
- Advanced testing for certain scenarios. Based on the nature of your application, it may make sense to consider automated testing or performance testing. For example, a social media app intended to serve hundreds of thousands of users needs performance and scalability testing. On the flip side, an internal accounting app does not require this kind of advanced QA. An excellent software development firm can guide you in these decisions and offer advanced testing when needed.