Why you need Shift Left testing?
If you think, recruiting a QA early on SDLC is a waste of money, instead plan on recruiting one during implementation phase to get the whole application tested, you’re making a Himalayan blunder!
Many projects run past their deadlines, due to not planning enough time for testing and due to delaying testing till the end-of-life cycle.
I am working with a team of 10 developers, in a fast-growing application (already in production), where I’m the only QA. You can imagine how the test column in the Project Management board can get bottlenecked, when 10 people are releasing 10 different features. But that was hardly an issue.
I strongly believe shift-left testing is the key.
What is Shift Left testing?
Shift left testing is woven around the idea,
By testing early and often, a project can reduce the number of bugs and increase the quality of the code.
Before late 1990s, SDLC followed Waterfall method, i.e. sequential development. Quality was considered only at the Testing phase, which came towards the latter part of the cycle, after deployment phase. We all know most project don’t go according to estimates and developers end up taking up extra time reducing the allocated testing time. So quality is compromised, while we try to stick to the promised deadline.
There will be issues that goes undiscovered in testing phase and even if you found them developers will be reluctant to change code as it is a quiet cumbersome task. In a worst case it might need a redesign. So from end users, clients, POs, QAs to Devs, all are frustrated.
Shift Left testing means moving the Test phase further left/earlier in SDLC. This goes hand in hand with agile methodology.
How I included Shift Left Testing in our process?
I followed the four steps;
- Groom the user story with PO and developer and added detailed acceptance criteria.
- Derive test cases from acceptance criteria.
- Once the developer has a working feature deployed in his/her machine, run some tests with him/her (Pair testing) and suggests Bugs fixes and UI/UX enhancements.
- Once the code is deployed in Dev environment, Reviewer has to review the code as well as do a functionality test based on the acceptance criteria.
So when a Task reaches the testing column, it has already being tested by Dev, QA, and Reviewer (Dev). The importance of multiple people testing is that the same functionality is being tested in different perspectives. Also, there are no surprises as I already know the feature and there are hardly any bugs. Hence, at this stage instead of functionality, I will be more focused on doing exploratory testing.
It also has the added advantage of improving the quality mindset of developers as they are actively engaged in testing activities. This will have a long-term benefit, as Devs tend to identify and fix bugs and improvements even before the Pair testing session.
Benefits
1. Reduced costs, as bugs are identified and fixed at an early stage.
The Systems Sciences Institute at IBM states that it cost 6x more to fix a bug found during implementation than to fix it during design phase. Furthermore, according to IBM, the cost to fix bugs found during the testing phase could be twice of the cost of fixing those found during implementation.
2. Easy to meet a deadline.
No need to waste time on rework since bugs are identified at and early stage.
3. Quality is preseved.
Software is tested multiple times before being deployed.
4. Requirements are clarified at an early stage.
Developer has a clear idea what needs to be done ,QA and Reviewrs know what needs to be tested and client knows what to expect.
Shift left testing is a proactive testing approach that will reduce cost and time to market. It’ll be your best companion, if you want to break the traditional QA boundaries.