There is a high demand for speed to market while maintaining quality in today's business world. Many businesses face a variety of challenges when it comes to faster release and deployment to production. Several organizations encourage their teams to receive continuous feedback from the manufacturing environment.
One "shift-right" testing method is becoming more popular, even though many believe testing in production is risky. From my experience, I have seen this approach working in various domains like Retail, Health Insurance, etc. For example, while I was working for a global retailer, we had our testers visiting stores before they were open to test the new Point of Sale release by executing transactions on the Point of Sale Terminals. By doing this, we got real-time feedback about any potential issues with the build before it went live in all stores. Not only did this help ensure a higher quality release, but it also saved time and resources by catching potential issues early on.
I've also witnessed testing teams run automated tests in production to perform smoke tests. Another use case was executing the test cases that were not covered as part of your SIT and UAT due to test environment constraints. Still, one must-do practice: ensuring that manual or automatic checks do not modify existing data or create new records. This means they should only cover read-only activities like searching for customers, opening screens, etc. Also, as you might get limited time to carry out the tests in a production environment, one should be looking at automating the testing to the maximum extent possible.
Several "shift right" testing techniques have emerged in recent years that aim to shift the responsibility for testing from developers to users. Synthetic user monitoring, real user monitoring, code instrumentation, dark launching, feature flags, canary release, blue-green release, and A/B testing are all examples of shift-right testing techniques that can be used to improve the quality of software products. We will be covering each of these techniques in detail in subsequent posts.
There are several benefits to shift-right testing, including:
1. Real-time feedback: As mentioned above, one of the most significant benefits of shift-right testing is that it allows you to get real-time feedback from your target audience. This is especially beneficial for time-sensitive or mission-critical releases, as it can help ensure a smooth deployment with fewer issues.
2. Increased collaboration: Another benefit of shift-right testing is that it increases collaboration between various teams, such as development, QA, and operations. By involving all stakeholders in the testing process early on, you can ensure that everyone is on the same page and that there is a clear understanding of the release goals.
3. Faster deployments: Shift-right testing can also help speed up your deployments by catching potential issues early on. This saves time and resources, helps reduce risk, and increases confidence in the final release.
4. Improved quality: Last but not least, shift-right testing can help improve the overall quality of your releases by detecting potential issues early on. This saves time and resources, helps reduce risk, and increases confidence in the final release.
In conclusion, shift-right testing is a beneficial way to test in production and should be considered as part of your strategy. This testing helps catch defects early on and prevents them from going into production. If your business is looking for a way to improve its release and deployment process, shift-right testing is worth considering.
Engineers, what are your thoughts on testing in production? Have you been able to do it before? What were your results? Please share your experience below!