Shift Left Approach: Why Do You Need to Perform Early Software Testing?
In this post, we take a look at the reasons why performing early software testing makes more sense than ever these days. Read on for the details.
Join the DZone community and get the full member experience.Join For Free
The 911 system glitch has not just been a malfunction, but a catastrophe to remember. It happened in Seattle in 2015 when the systems went down and it resulted in a national outage caused due to too much traffic on the number. Recently an incident occurred in Anderson County’s communication center when a call came in and the dispatcher started typing notes for recording an incident. It could have been a medical emergency, house fire, or a theft. As the information was sent to paramedics, firefighters or Anderson County Sheriff’s Office deputies; the system froze and computer screens stopped operating due to an unforeseen software glitch.
Software glitches can not only cause damage to the brands, economic activity, and government organizations, but also lead to serious damage to the safety and well-being of human life. Disruption in the services provided by the county’s computer-aided dispatch system can be disastrous, as every second counts.
Marc Andreessen’s article in the WSJ in 2011 ‘Why Software Is Killing the World’ is definitely a piece to remember, but today it’s time to have an alternate perspective: ‘How to save your software from being killed by a bug?’ Testing early, and frequently is the solution.
While early testing has been highly recommended by software testing and QA experts, there has been a special emphasis on this agile approach of Shift Left testing that recommends reversing the testing approach and involving system/software testing earlier in the lifecycle. Practically, move the testing approach on the left end on the project timeline.
How Does Shift Left Testing Approach Enable Software Development Life Cycle?
In an Agile development scenario, it is required to deliver faster and cut down the span of the delivery cycle. In a scenario such as this, it is absolutely critical to ensure the quality of the release while delivering at speed. It also implies that along with testers and their varying skillsets, the testing process will also involve the developers, where software testing will begin way ahead in the development cycle. This movement is referred to as shifting-left, and has become a preferred approach by many enterprises for better and faster results.
There are various stages that need to get covered in the software testing process – Test Requirement Analysis, Test Planning, Test Design, Test Execution, and Test Reporting. Every stage has its inherent benefits and contributes towards the testing activity. With the Shift Left approach, these activities start way ahead in the development cycle.
Let’s understand the impact of Shift Left on the various stages in the software testing cycle.
- Test Requirement Analysis – As it suggests, this stage involves scoping and estimation, requirement analysis, and testing scope. This process helps reduce test process delay and dependency, ensuring better quality of test data for faster and effective test execution.
- Test Planning – This stage defines the acceptance criteria and builds the Requirement Traceability Matrix (RTM) with the required inputs. It helps in setting up the Test Environment, as various components pertaining to the test environment are defined.
- Test Design – Here the final test scenario is defined and the Test Automation requirements are decided. In this way, an end-to-end, non-functional test scenario is created. This offers better clarity for Test data preparation.
- Test Execution – It comprises a whole string of factors pertaining to test execution such as Test Data preparation, development, and execution of Automation and Performance Scripts, test data preparation, and much more. This helps to minimize requirement slippage.
- Test Reporting – The reporting stage involves development and execution of scripts for functional and non-functional requirements, defect management, and metrics reporting.
Application of Shift Left approach reverses and speeds up the testing process, where there is more collaboration between Testing and Development, and the automation data can be gathered in the earlier phases of the Test Life Cycle. It further enables teams to detect bottlenecks early, reduce development costs, and improve time-to-market for products. It offers a stable and robust methodology to test unstable builds, where teams can also employ accelerators such as cloud-based load generation for both performance engineering and performance testing processes.
Why is it Critical to Effectively Enable a Shift Left Approach?
The Shift Left testing strategy emphasizes on the aspect of involving testing as early as possible in the development process. This enables both testers and development with diverse skill sets to unanimously focus on quality from day one of the project, instead of uncovering defects later in the development lifecycle. However, it can be a phenomenal task to make this possible and might involve shifts in team dynamics.
This agile testing approach shifts the entire testing process way earlier in the development cycle, which was traditionally placed at the end of the process. This implies that testers and developers collaborate and perform tasks which might not even be their primary responsibility. While Shift Left works to resolve bugs and issues on an ongoing basis, it is important to ensure that it is effectively implemented and enabled.
Here are some key principles to consider while enabling the Shift-left strategy.
- Make quality as shared responsibility
The fundamental premise of Shift Left is to bring in more collaboration between testing and development. So, it is important that the entire responsibility of ensuring quality doesn’t fall only with the testing team. It should be shared; which means that developers might assume the role of testers, and testers learn coding and take on the role of developers in the development cycle.
- Shift automation to the developers
In a Test Automation scenario it is important to create reusable, maintainable code. Hence, another school of thought also recommends to shift this task to the developers and let them build the automation framework. This enables the testers to focus on finding bugs and not get deviated into programming the framework.
- Harness the testing mode
Testing and quality can be achieved only with team effort, irrespective of the role. It cannot be an activity conducted towards the end of the sprint. It has to be a unified effort that blends with development. Automation is an enabler for teams who have decided to dive into early testing. Early automation helps teams to cut down the testing efforts and detect bugs early in the cycle. Whether it’s a developer or a tester, testing and quality has to be a constant thought. This will help teams to identify issues that can cause unreliable tests in case of loopholes in application testability code design.
A software glitch can result in a plane crash, a significant disruption of the economy, a major data breach or a cyber-attack. The year 2016-17 has witnessed some major setbacks and turmoil in the cyber world. We know that cyber war and attacks will not stop, but adoption of early and frequent testing can help identify gaps in the software and build more resilience. Shift Left testing approach enables the Agile methodology, which has been increasingly adopted by global enterprises.
Cigniti’s Advisory and Transformation Services help organizations understand and improve all QA focus areas – people, tools, and infrastructure across the delivery lifecycle. The key takeaways of an Advisory engagement include assessment report & recommendations and a detailed implementation roadmap on how to achieve the target maturity and testing capability.
Published at DZone with permission of Subhendu Pattnaik, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.