One of the most vital steps before a product launch is ensuring the quality of your product. Companies that have a large-scale product launch without first conducting thorough quality assurance testing put themselves at risk for cyberattacks, dissatisfied customers or the product being used for an unintended purpose.
Developers play a key role in ensuring that the product being released has been properly tested and vetted before widespread use. Below, 13 Forbes Technology Council experts share the most important quality assurance steps that should be taken before a large-scale deployment and how these strategies help ensure an excellent finished product.
1. Assessment Of Product Value
Most companies focus only on defects as a measure of quality. The product also needs to be fit-for-purpose. It doesn’t matter how few bugs are in the product or how secure it is if no one wants to use it. Are you actually creating something of value? Testing how much value your customers perceive in the new product is key to adoption by users. - Laureen Knudsen, Broadcom
2. Developer Testing
A very important step is testing by developers. This often gets overlooked. Developers need to test their own work before it is submitted. With test-driven development, you have to first write the test case that your code will need to pass before you write any line of code. That is a great way to get developers thinking about the corner cases and exceptions they need to code for. - Mercedes Soria, Knightscope
3. Vulnerability Testing
In today’s world of constant and sophisticated cyberattacks, vulnerability testing is arguably the most vital component of any QA process for public-facing applications. This includes testing code from every possible attack vector and at every layer of the stack to ensure your team hasn’t inadvertently introduced a hole that could be exploited by cybercriminals. - Husein Sharaf, Cloudforce
4. Review Of Epics And User Stories
QA comes down to two things: functionality and usability. Go through the epics and user stories that your team implemented. Do the features function correctly? Can a consumer understand how to use them? This may seem basic, but it’s a step that’s often missed, leading to buggy software and a poor user experience. Further, test your integrations and ensure data security is maintained throughout. - Nicholas Domnisch, EE Solutions
5. Deployment To The Staging Environment
Before making an official release or update, a product has to be deployed to the staging or beta environment. In this environment, available to a certain number of external users, final user testing can be conducted without bias or pressure from internal and external stakeholders. Based on feedback, the product can then proceed to production or be returned to the development team. - Milan Dordevic, Proctorio Incorporated
6. Cross-Platform Testing
Ensure comprehensiveness: The testing needs to be done across the most meaningful platforms, covering typical use cases, different geographies and stressful conditions. For example, with mobile apps, testing must be done for both iOS and Android on a few versions of each major model, as well as across the main telecom providers in multiple markets. Testing should also be done with cellular data and Wi-Fi. - Blair Currie, Snibble Corp.
7. Assessment Of Both Functionality And Security
Quality includes both security and functionality. Ensuring a system only does what it’s designed to do relates to both quality and security. We are all guilty of separating functional QA from security, which should not be the case given that poor code quality is the root cause of security weaknesses. That said, integrate functional anti-patterns and negative use cases into quality assurance. - Eoin Keary, Edgescan
8. Expansion Of Testing To Fringe Use Cases
It’s simple enough to deliver a product in the digital space that functions properly under baseline use cases. However, once that product is delivered to the real world, fringe use cases can create unintended behavior. Extending tests to unanticipated fringe cases is a great way to get ahead of unintended behavior and even patch security risks that are uncovered during these adverse events. - Marc Fischer, Dogtown Media LLC
9. Risk Assessment
In the case of a major release, risk assessment is important. Investigate the places and ways where and how it might conceivably fail. Failures are a normal part of releases. They must be expected to happen. But it’s important to be ready and to learn a lesson from them. - Agur Jõgi, Pipedrive
10. Development Of A Disaster Recovery Plan
Prepare for failure. Build a disaster recovery plan, and test it. Restore from your backups before the deployment, and update your documentation and scripts to make it easier if it happens in production. Everyone is hesitant to abort a deployment when only minor issues arise, but you’ll avoid a lot of stress knowing you have a proven fallback plan if enough minor issues occur. - Luke Wallace, Bottle Rocket
11. High-Availability And Disaster-Recovery Testing
High-availability and disaster-recovery tests are often overlooked or not executed. When a new large-scale (or even small-scale) launch is scheduled, it is paramount to test how the system, product or service behaves in a disaster-recovery or high-availability scenario. Organizations must involve the relevant parties in conducting quality assurance steps and course-correcting as needed based on the results. - Spiros Liolis, Micro Focus
12. Staged Release
Make sure your devs are writing unit tests. Perform a manual full regression on staging before the release. Automation tests are really helpful, but there are always one or two bugs that are not covered. Release the application in stages: 30% of the users will see the result, then 60% of the users, and then 100% of the users. This approach will help to minimize hot fixes in production after a big release. - Margarita Simonova, ILoveMyQA
13. Writing Automated Tests
Writing automated tests is critical to the long-term success of the dev team. Quality assurance is a continuous process that does not end after a product has shipped. Cloud products are updated on a weekly or daily basis. Having a robust automated testing framework results in fewer issues and not missing the big launch deadline. - Jason Gong, Firezone
Originally published on Forbes.