• info@helpingtesters.com
  • helpingtesters

What is Shift Left & Shift Right in Software Testing

March 14, 2017 Types of Testing
shift left testing, shift left, shift right, shift to the left, left shift,

Software testing is an integral part of every project. While a new feature arrives, the QA team and the development team analyze the different stories and features and provide estimates. While the development team is busy in coding and sculpting these features from scratch, the QA team starts writing test cases and scenarios for testing.

Once a stable build is delivered to the QA team, testers test the application and execute the different test cases and log all defects they encounter in a defect tracking tool of their choice. Once the high priority bugs are fixed, regression testing is performed and issues retested, they are sent to production. The testing process mentioned so far seems pretty perfect and streamlined, so why should an agile testing team opt for any other testing approach?

Why is there a need to optimize Testing Strategy/ Methodology?

Even though Agile testing ensures quick releases and a pretty well-tested product, it can still be improved.

  • Every time a build is tested, testing team or DevOps need to deploy the build so that they can perform testing. And during testing, if any blockers or high priority issues are encountered, they have to wait for the development team fixes and deploy another build. Such consequent deployments take up a lot of time and hamper delivery timeline. It even robs the QA team of the testing timeline required to properly test the application.
  • Once the build is sent to production, the client and eventually actual users test the application. If they are not contented with the build they request for change requests. Catering to these change requests at such a late stage creates a lot of ruckus among the team members and can impact the product stability as the final release date approaches.
  • There are chances that the features developed might not take into account every client specification. When testers try to execute the test cases they are bound to encounter discrepancies which would result in rollback and send the feature back to the developers’ bucket.

 

What is shift-left?

shift left testing, shift left, shift right, shift to the left, left shift,

  • Even after practicing Agile methodologies, there are chances of encountering bugs with the deployed build. This results in defects, which shift the feature back to the developers’ bucket, leading to delay. For this reason, the shift-left methodology is adopted.
  • The sift-left testing technique aims at defect prevention rather than early detection of issues. For this reason, there is no need for a build to be discarded and sent back to the developers.
  • Shift-left testing makes use of TDD (Test Driven Development) and BDD (Behaviour Driven Development).¬†
  • With TDD, a test is created which defines the criteria for a stable feature. When the developers complete their development, they run the test. If the test passes, the build is sent to the QA for further testing. In the case of failure, developers make a change and keep on refactoring the code base until the test passes. In this way, by using TDD, a test defines the criteria for a successful build and helps in preventing any defect from springing up.
  • That’s not all, the project owner can make use of BDD (Behaviour Driven Development) to create user stories that define the desired outcome, while the BDD scenario can encompass the acceptance criteria.
  • On top of this, shift-left testing also encourages Continuous Integration as a part of the delivery. Using CI, all automation scenarios are run every time a build is created. This execution report provides a clear idea about the stability of the product and also points out the most stable build for production.

In short, shift-left tries to lessen the time required to create the perfect build and also optimizes deployment time.

What is shift-right?

  • The shift-right technique can be considered as a sign of approval from the client or from the user base for whom the application is created.
  • With shift-right technique, team members can get early feedback and ensure that the product delivery occurs in time.
  • With this technique, the moment QA team receives a stable build, which fulfills the specific requirements, the same is communicated to the client. The client then performs testing or asks the target audience to get a hands-on experience of the software. After such a practice feedback is sent back to the development team.
  • With the shift-right approach, such valuable feedbacks are attained in quick successions thus making the product delivery a success.
  • As shift-right technique mostly emphasizes on quick feedback, QA team can interact with the client on receipt of a stable build or notify them the moment the Acceptance test or automation regression suite passes.
  • Such practice shortens the feedback loop and increases the quality of the products considerably.

Advantages of shift-left and shift-right approach

Some of the most recognizable advantages of combining shift-left and shift-right testing are:

  • Early detections of issues – With the help of TDD principles of Shift-left technique, testers would be developers would be able to detect issue at a very early stage. In this way rather than QA sending a defective build back to developers, the development team alone would be able to justify the condition of the build. It will save a lot of developers’ time and QA efforts.
  • Saving time and overall efficiency of the project – Efficiency of the team would be improved leaps and bounds by the combined shift-left and shift-right approach. While TDD would prevent defects, fast feedback from the client would prevent change requests from coming up at a later stage.
  • Faster product delivery – Such technique would streamline the complete development process and ensure swift delivery. If would even lessen the chances of defect slippage as the QA team would be able to emphasize on regression testing, while acceptance test and continuous integrated test automation would take care of the stability of the feature being delivered.
  • Better customer experience – Clients always appreciate being in the loop. The shift-right method would provide every minute detail of the build and help them work in close coupling with the offshore development team. Even the client application would reach the test users pretty early which will eventually boost the client’s confidence for the application.

 

Conclusion

  • Shift-left technique helps the team to prevent defects rather than fixing them. TDD and BDD methodologies can be used to properly implement it.
  • The shift-right technique, on the other hand, calls for quick feedback from the client.
  • Coupling shift-left, shift-right with continuous integration provides an ideal solution for increasing the overall efficiency of the project.
  • Incorporating these techniques can help the team save a lot of time and money and increase the overall efficiency of the project.

About the author

arindam bandyopadhyay author

Arindam Bandyopadhyay is an automation tester with over 5 years of experience in software testing. While during the day he juggles between Eclipse and spreadsheets, at night he lets his fingers do the talking as he writes about anything and everything his paradoxical mind desires.

1 Comment

Carla French

February 5, 2018 at 3:05 am

Nice

Leave a Reply

Your email address will not be published.