By Raj Kumar
Having used agile techniques since the beginning, we believe continuous exploration, research, experimentation and feedback are the foundations for value driven delivery.
Software Engineers do a great job at covering all aspects of the Test Pyramid, however they’re focused on low level unit tests, rather than full end-to-end tests. This can result in bugs being missed and discovered further down the development process. But that’s where I come in. By collaborating early, I can prevent the bug from being written in the first place.
As testers, we provide the ‘other perspective’. We anticipate the actions a user might take, actions that others might not be planning for. Testing requires an ongoing focus on the product being built — It gives quick feedback with testing being performed continuously. This way you can reduce the waste and get timely feedback.
By thinking about testing early in the development process, you can avoid the exponentially higher costs of finding bugs late in the process, from requirements definition to production. Therefore, it’s helpful to move testing activities earlier in the software development lifecycle — shifting it left in the process timeline.
The Shift-Left methodology
Shift-Left, it’s not a new term. In fact, it’s been around since 2001. It refers to shifting the testing phase to the left from right and involves testing at every stage of the software development process.
The Shift-Left approach allows testing to run in parallel with the development process. Testers collaborate with Software Engineers to create test cases and what-if scenarios before the code is written. These tests are then used to drive development. The Shift-Left approach reduces time to market and helps deliver high-quality software, faster.
When we apply Shift-Left testing on our clients projects, we collaborate early to prevent the bug from being written. When applying the Shift-Left approach in an agile delivery setting, we work on different levels, all at the same time. This includes:
- Engaging early in the development, right from project initiation
- Locking down the scope and acceptance criteria at card kickoff
- Getting visibility of the product and design a unified testing strategy
- Running a planning session and calling out any risks and analysing dependencies on test environments, third parties etc; and
- Automating tests and running them on CI/CD build pipelines.
Some of the key benefits of Shift-Left-testing, include:
Software Engineer/Tester collaboration — The Shift-Left process encourages Software Engineer and Tester collaboration early, before things get built, and this is key. Everyone quickly aligns on what a specific feature should do and importantly everyone understands how this behaviour can be verified — something that directly increases the team’s velocity.
Easier fixes — In Shift-Left testing, defects are found earlier in the development process. This means bugs are easier to fix, because there’s less context switching — saving everyone time, money and headaches.
Better test coverage — Shift-Left testing can also improve test coverage. It thoroughly checks each function of the software throughout the entire lifecycle.
Automation capabilities — By applying the test early and often ethos, it should come as no surprise that the Shift-Left process and automated testing often go hand in hand. It reduces human error and eliminates repetitive, manual tasks, giving enough time for testers to focus on exploratory testing.
Quicker time-to-release — Smaller bugs, less work, earlier fixes. All of these elements allow development teams to accelerate the software release process.
Just your average superhero
It might sound like I save the day — but that’s exactly what I don’t want to have to do. Testing is ultimately the team’s responsibility and for me, being part of that team is really important to ensure we deliver good quality software for our clients. That’s what testing is all about.