The new Shift Left Testing, a Dev Ops mantra in Software Development:
A quick Recap of all the video tutorials in Dev Ops was explained in our earlier tutorial. Now, we will see about Shift left testing.
When I use the term ‘Shift Left’, you might be wondering what am I referring to Shift Left in a software??
2+ decades ago, when I started my career as a software tester there was no separate ‘Testing Phase’ for Software development and Testers Role never used to exist at all. Developers used to develop the software, test themselves and make a software release.
The concept of Software Testing got introduced gradually when defects from the production started hitting the budget of the project and hence ‘Functional Testing’ came into effect with a very lean team of Testers. At that point of time, we were just two Testers against a team of 20 Developers.
The IT Industry started following the waterfall model for the software development where-in we all know the Software development lifecycle goes sequentially in the order of Requirements => Design => Coding => Testing. So if you start from left to right, The testing phase is to the extreme right of the Software development lifecycle
Introduction to the Concept of Shift Left
Over the period of time people started to realized the importance of Software Testing and the impact of keeping Testing Phase extreme right or at the end of the Software development lifecycle. This realization happened because the cost of the bug identified towards the extreme right at the end was very high and enormous effort & too much time to fix them.
There were cases where after spending so much time and effort on a software, due to the crucial bug identified at the end, the mission critical software could not be released to the market there by resulting in the huge loss.
Hence because of identification of the bug during the last stage the release was delayed or at times, the software was scrapped by considering the effort to fix them, which was not really worthy.
‘Defects are less costly when caught early’.
This realization and the big lesson learned, introduced a great revolution in the software industry and gave birth to a new concept called ‘Shift Left’, which means shift the ‘Testing Phase’ to the Left from Right or involve Testing at every stage and involve testers throughout.
Shift Left testing also means that just don’t test in the end but test continuously.
What is Shift Left Testing?
Firstly, the principle of ‘Shift left’ supports the Testing team to collaborate with all the stakeholders early in the software development phase. Hence they can clearly understand the requirements and design the test cases to help the software ‘Fail Fast’ and enable the team to fix all the failures at the earliest.
Shift Left approach is nothing but involving the testers much earlier in the software development life cycle, which in turn would allow them to understand the requirements, software design, architecture, coding and its functionality, ask tough questions to customers, business analysts, and developers, seek clarifications, and provide feedback wherever possible to support the team.
This involvement and understanding will lead the testers to gain complete knowledge about the product, think through various scenarios, design real-time scenarios based on the software behavior which would help the team in identifying the defects even before coding is done.
How does Shift Left Influence Software Development?
Shift Lift Approach influences Software Development in several ways.
Given below are few key points about Shift Left:
- Shift Left approach focuses on involving testers in all and most importantly the critical stages of the program. This enables the testers to divert their focus from defect detection to defect prevention and to drive the business goals of the program.
- Shift Left approach provides, high importance to Testing with which the roles and responsibility of the testers increase immensely.
- With the responsibility being increased for the Testing team, the team just does not focus on ‘Testing the software to identify the bugs’, but proactively works with the team right from the initial stages to plan and build a robust and effective testing strategy by providing a great Test leadership and guidance to the team by focusing on the long-term vision of the product, rather than just taking the responsibility of the testing work.
- Shift Left approach gives the opportunity for the Testers to design the tests first, where the tests are completely focused on the customer experience and their expectations which in turn will enable the developers to develop the software based on these tests and hence meet the customer needs.
- Shift Left approach just does not end with the Testers alone. Moving to the let and carrying out the testing activities continuously will also allow the Developers to take more ownership of their code and increase their responsibilities on testing.
- Shift Left approach also encourages Testers to adopt Behavioral driven development BDD and Test-driven development TDD, which helps in preventing the defects induction into the software.
- Shift Left Testing in Agile: Shift Left approach supports forming Agile Scrum Teams which mandatorily includes Testers along with the other roles and includes Testers in regular stand up calls, other interactions, review meetings which has made the testers to have more information related to the program and hence has allowed them to indulge and involve in the detailed analysis of the software and provide rapid feedback which would help in preventing the defects grounded in the software.
Overall Shift Left testing calls for the testers to ‘Get Involved Early’, as early as possible and engage in the discussion and collaborate on ideas, requirements at every stage where the outcome of the stage has a bearing on the value of the final deliverable and also help the project to identify the risks and mitigate it in advance.