Shift Left Testing: A Key for Improving Your QA Strategy
It is said that it is practice.
It is said that it is an approach.
It is said that it is a movement.
It is said that it is a principle.
“Shift left,” a term meaning to ‘test early and test often,’ has taken over the SDLC.
Regardless of the chosen term, the Shift Left means to test early and test often. It intends to identify and resolve bugs, thus, reducing costs, as early as possible in the Software Development Life Cycle.
Reasons to Shift Left.
We all know that Software Development Life Cycle has phases of Analysis, Design, Development, Testing, Deployment, and Maintenance. You can see that the Testing phase is “on the right” side of the cycle, and testing is done just before releasing an increment or a product into production.
Imagine working on a project, and you are agile for the development stage, but you are testing a feature after it is developed.
The possible consequences are
- Time is wasted while waiting for the development to be done entirely.
- The release delay – Once identifying a defect (bug), it takes time to fix it. Most often, that kind of work would postpone the deployment into production.
- Here we can mention the customer’s satisfaction as well. They would not be happy after learning that the release is delayed and must wait for the improvement or new functionality.
- The code quality could be decreased: fixing many bugs in a short time often means that developers must create patches.
- The general cost could be increased: the cost of fixing bugs at such a late phase is exponentially higher than resolving them in the early stages. (especially if it is during the release into the production).
- Should we even mention the stress and the pressure the whole team was having while encountering those mentioned above?
After going through all those reasons, it is pretty easy to explain why the testing should not be left to the end of the process. The risks are too high, and the benefit is just not worth it.
Considering that working on a project always has more than one goal, high quality, low costs, and satisfied customers can be singled out as the primary. So, we can clearly see why the Shift Left was introduced.
As such a critical phase, testing should literally be shifted to the left in Software Development Life Cycle. This approach addresses potential issues by involving testing early in the process – it is, in a way, issue prevention rather than issue detection.
What steps should be taken to shift left?
Testers should be included in the earliest phase possible, including the validation of requirements and design.
Developers should test their code before pushing it to the main branch. Here we could discuss the Test Driven Development, as well.
Unified guidelines for testing should be defined.
It should be a team effort – Collaboration is key!
What are the advantages and benefits of Shift Left Testing?
- Reduced time and money costs. Discovering bugs and bottlenecks early in the development process increases efficiency in the software development process.
According to Capers Jones’ analysis, “Applied Software Measurement: Global Analysis of Productivity and Quality” (2008), the coding process without testing could be the cause of about 85% of defects delivered to the users when using traditional software development methods.
The same study says that these defects were more likely to be found during the system testing process. The connection between coding and testing makes a radical change.
- It is all about continuous testing, and it goes well with Agile methodology (also trendy).
- Product quality is improved because more bugs are detected in earlier stages.
- Time to market is reduced.
Shift Left Testing could give you answers, but, at the same time, new questions and concerns arise:
“If the developers can do the testing by themselves, why should they need a tester in a team? Are they (we) redundant now?”
The answer is: “No.”
In fact, testers will work with the developers even more. It is a quid pro quo situation: developers will be more familiar with testing. On the other hand, testers will have more information about what and how (for curious and eager-to-learners) it is being developed. Working together and more closely can give better results.
Marina Vuković, BrightMarbles – Outstanding test engineer with over six years of experience working on complex projects and a deep understanding of the end-users behavior.
Bojana Šatara Anić, BrightMarbles – Test Engineer & certified Scrum Master with over five years of experience in black-box testing, with excellent communication skills. Philomath and epic and high fantasy books lover.