Tuesday June 13, 2017
“Bugs are cheaper when caught young.” This was said by a popular expert - Larry Smith, in reference to ‘Shift Left Testing’ concept.
If you are working in software testing or QA field, you must have heard about the term “shift left testing” quite often. With increasing adoption of Agile, BDD, and DevOps, QA enterprises are rapidly moving towards Shift Left testing to transform their quality engineering efforts.
Shift Left testing refers to moving testing process early in the development cycle. Unlike, the traditional testing approach where testing takes place only after the completion of the development process, Shift Left testing is about involving testing right from the development stage to prevent errors rather than detecting them later. In other words, it is an approach to shift testing closer to the build process and proactively test the applications to uncover defects for faster remediation.
By adopting Shift Left testing, enterprises can accommodate releases that happen faster, usually on a weekly or daily basis. However, if not implemented properly, there are chances of defect slippages into development and then to the production phase, which can disrupt the entire SDLC. In this regards, experts put emphasis on following some standard set of practices while adopting and implementing Shift Left testing.
Listed below are the 10 steps that explain how to get started with Shift Left testing easily and effectively to reap its complete benefits:
1. Identify & Plan Testing Lifecycle
It is important for enterprises to identify and plan the entire testing lifecycle before the start of the actual development process. Doing this will help developers and testers understand the tasks, objectives and expected outcome from the project. One way of doing this is by identifying testing requirements right from project planning and requirements specification phase.
2. Integrate Development & Project Management Process with Testing
Another important step for getting started with Shift Left testing is to integrate all development, project management, and operations processes with testing. This will help understand where and at which stages testing should happen. It will also help identify the estimated time and effort to complete the testing cycle and avoid unnecessary and duplication of tasks in the process of implementing Shift Left testing.
3. Define Quality Standards & Controls for All SDLC Stages
It is also recommended to define expected quality standards and have quality controls in place for different stages of SDLC. This will help identify whether the development process aligns with QA and identify any deviations from the expected outcome. This, in turn, will help in taking corrective actions at the respective stage, which will ultimately determine the overall health of the project.
4. Plan Departmental Deployments
It is also advisable to plan departmental releases before-hand while boarding the Shift Left testing journey. This will help in understanding the possible delays as well as manage the resources required in each sprint to meet the pre-defined timeline. Planning departmental wise releases will also help the team to direct focus and manage the release cycles well.
5. Create Process & Operation driven Test Cases & Framework
To transition smoothly to Shift Left testing, experts also suggest creating test cases and frameworks that broadly cover the functional processes as well as operational patterns. This is to avoid conflicts at the time of deploying applications from the construction phase. Developing test cases and framework that is already validated as per the functional and operational process, helps in reducing the number of test cases to be created in the future and also speeds up the SDLC.
6. Engage in Test Automation
In order to avail maximum benefit out of Shift Left testing, it is highly recommended for enterprises to adopt test automation. With test automation, developers and testers can automate the entire build to test process across all the stages of the SDLC (Development, Production, Test, Deployment, etc.) which will infuse better integration between processes, boost continuous delivery and drive more confidence in each release.
7. Induce Developers to Code with Testability in Mind
Considering the shift, it is also important to induce all the developers to start the development process with testability in mind, in that, each developer should be made responsible for ensuring the quality of the code built. This will help during the creation of testing framework with reliability and also bridging the gap between developers and testers to speed up the testing cycle. Moreover, developers would be aware of the solution right from the development phase.
8. Define Continuous Feedback Mechanism
It is also advisable to define a continuous feedback mechanism so that the testers can continuously provide feedback to developers during and after the development stage. It also becomes easy to report defects and achieve desired quality since with continuous monitoring and feedback, the chances of errors tend to reduce overtime.
9. Encourage Testers to Code
It is also advisable for testers to engage in coding knowledge since when it comes to testing in sprints, knowledge of code can help in digging into deeper analysis of the defects. Also, coding knowledge can prove to be helpful if testers want to make minor changes or modifications in the code or refactor certain methods rather than depending on developers which can turn out to be a time consuming affair.
10. Audit & Inspect from Time to Time
Performing formal audit and inspection from time to time is important for success of any Shift Left testing program since it aids in early detection of errors and reduces the chances of major defects cropping up in the production and deployment phase. Audit of critical codes, tasks and inspection of various stages of SDLC helps ensure that the entire application is healthy and bug free to move to the next phase. Moreover, periodic reviews save a lot of time of testers to focus on quality rather than identifying defects.
Lastly, to get started with Shift Left testing successfully, it is advisable for all team members to play each other’s roles well since it’s a responsibility of everyone to deliver high quality software with speed.
Shift Left testing provides effective means to perform testing in parallel to development processes, enabling faster, better and quality applications and enhancing collaboration between development, operation, and testing team. If implemented properly, it can reduce costs and risks of application failure by detecting them early in the SDLC and also reduces chances of rework, allowing enterprises to be competitive and productive by 10 times.
So what do you think about implementing Shift Left testing? We would love to hear your thoughts and experiences. Feel free to share in the comments section below.