16 Jun Managed Services DevOps Series Part 3—Testing and Release
by Tara Heavner
High-performing teams not only use DevOps, but they use DevOps with purpose. One of the biggest benefits of and motivations to employ DevOps is to streamline and speed up deployment processes. Teams that have dynamic, experienced DevOps report deployments that are 46 times faster (and more reliable) than the industry average.
But these speedy, accurate deployments don’t just happen like magic after starting DevOps. Quality assurance, unit testing, UAT, and pre-production releases are all part of the crucial “test and release” stage to the overarching DevOps journey.
Let’s review the different facets of testing and release, the best strategies for them, and how this impacts the final outcome of a DevOps project.
Quality Assurance and Unit Testing
Quality assurance, or QA, is an important next step in the overall DevOps process. It may sound simple on the surface, but this actually involves multiple important steps. Early and frequent collaboration is key to making QA successful. From the very beginning, we are building our understanding of your business processes, integrations to other systems, and expected outcomes. This foundation is what informs our QA processes down the line and ensures everyone involved is working towards the same end results.
As we develop, unit testing begins. Unit testing is conducted to ensure things are running smoothly and that there are no obvious issues. During this time, user stories (first drafted in the early planning stages) are expanded into test scripts. We use these test scripts to guide our testing of the full end-to-end processes encompassing the new functionality. We collaborate on the scripts with you to ensure all pertinent scenarios are covered and determine if any edge cases must be evaluated. Once test script development is complete, we run the scripts and document all results along the way. A good rule of thumb during this QA stage is to check if we can “break the system” in any way. Then, if we do find possible breaks and should changes be necessary, the next steps are to discuss, update documentation, and repeat the process again.
Release and UAT
Once QA is complete, and you are satisfied with the result, it’s time to prepare for release. Releases are not just about moving items into production. In fact, Simplus Managed Services’ best practice is to move from a development environment to at least one other sandbox before final production, and in many cases, there are several steps along the way, including SIT (systems integration testing) and Staging environments. This final pre-production environment is where your team conducts user acceptance testing (UAT).
To guide UAT and prepare for eventual release, we create release approval documentation (RA). This document will include all of the steps necessary to make a release successful. This means it not only includes the data and metadata to be moved, but it also considers all of the pre- and post-steps to release, and who owns which piece of the release. If UAT does not meet expectations or does not yield the desired results, we look into alternatives to mitigate the issues identified by UAT or deliver a patch deployment.
The RA is also submitted to our Managed Services Technical Arch team for review. Our technical architects will review the build documentation, release requirements, and more technical details to ensure everything is accounted for. They also peer review all code to ensure best practices are being followed.
Once UAT is completed, and the RA approved, the documentation is passed on to our Deployment team. This team works with our automated release tools to validate and schedule deployments, roll back any work if necessary, and monitor the release. We have found that DevOps projects that leverage automation tools like Gearset for continuous integration have over a 90 percent success rate when releasing to production, and they deploy 17 times more frequently than others. The best part? There’s no additional cost to you for leveraging this technology with Simplus Managed Services!
The biggest overall benefit of the testing and release process is that all the pre-production releases serve as test runs for the final, live deployment. It’s a great stage in the DevOps process where both your team and our team can thoroughly review the developed code, its effects, and how well it’s achieving business goals. If potential issues are identified, we’re able to catch them early, address, and modify the release plan accordingly, ensuring a smoother production deployment later on.
Stay tuned for next week’s installment, when my colleague Michelle Brown will review the deployment and monitor stages of a DevOps project and strategies for long-term success with DevOps.
Until then, you can learn more about Simplus Managed Services’ current special promotion: Quick Wins. And, if you missed the first two installments of this series, you can find them below:
Tara is a Senior Service Delivery Manager here at Simplus, and she learns and makes herself invaluable quickly. Throughout her 7+ years as a CPQ consultant, she has worked with a variety of clients, from small to enterprise level. Tara has implemented process improvements to refine user adoption by making data easily accessible through Salesforce. She is a certified Salesforce Administrator and a 4x certified Salesforce Consultant.