Shift-right testing is a method of continuously testing software while it is in a post-production environment. Also known as “testing in production,” this approach helps software developers uncover new, unexpected scenarios that may not have been detected within the development environment. The goal of shift-right testing is to ensure correct behavior, performance and availability over the production use of an application.
Shift-left testing aims to incorporate testing as soon as possible with a focus on problem prevention rather than detection. Shift-right testing is the opposite of this and refers to moving testing to the right on a timeline. Software development teams employ controlled experiments towards the end of the software development life cycle (SDLC) that examine functionality, performance, failure tolerance and user experience (UX).
Techniques involved with shift-right testing can include:
- Canary releases.
- A/B testing.
- Fault injection testing.
- Destructive testing.
- User acceptance testing (UAT).
Some IT experts believe in combining shift-right testing with shift-left testing techniques to receive the best results. This works best for software development that is an infinite loop, or broken into developing and releasing small clusters of features.
Importance of shift-right testing
While some traditionalists maintain that testing should be performed before an application is released for production, this can sometimes create bigger, unforeseen issues. Advocates for shift-right testing believe that fully capturing the production environment in preproduction testing is difficult because some failures only surface once they interact with actual users.
Shift-right testing is important in ensuring that an application will work under all circumstances and environments, such as different cloud options. Additionally, testing while in production is crucial for guaranteeing the quality of the software because it allows for a continuous feedback loop from users and the analysis of use cases that cannot be anticipated, like crashes, failures and slow performance.
Benefits of shift-right testing
- Mitigates risk involved with continuous delivery.
- Ensures customers that software is production ready.
- Allows developers to add, delete or change features based on feedback.
- Boosts software efficiency.
- Encourages teamwork between developers, quality assurance (QA) professionals, user experience teams and customers.
- Supports faster product delivery.
- Catches bugs