The first project I ever worked on as a QA engineer was a big one, and it followed the classic software development methodology or “Waterfall” approach. Our role as testers was to wait until the development team ended their work and the code was deployed to the “QA environment” and then we started “our job in the project”. The rule was: Test and find as many issues as possible, and the bigger they were, the better, so we could prove the importance of having QA before going live.
Then, there were a couple of rounds of bugs fixing and retesting. So, the software development lifecycle was conceived as the following:
With the introduction of Agile methodologies into software development, people quickly realized that introducing testing earlier during the overall development cycle (shifting the testing to the left), represented an enormous advantage because the cost of fixing the bugs identified at the end was very high and they required a lot of effort and time. Defects found in the early stages of the development cycle are cheaper and easier to fix than those found in the later stages.
If you look at a couple of definitions for “Agile Testing” you will find that all of them mention that testing and development tasks should go together, from the beginning of the software development cycle until the very end, following the idea of preventing bugs instead of just finding bugs.
This Shift Left approach allows you to perform continuous testing from the very beginning of the project and, if we do mention Agile methodologies, testing begins with the test strategy definition, and then in every Sprint Planning. If applied correctly, shift left testing helps to identify and avoid bugs in the early stages of the SDLC. It is a strategy that suggest different testing types, leading to “end-to-end” testing, implicating regression testing and automated testing.
To sum up: the shift left testing approach involves a testing team which participates in the whole development process from the very beginning, interacting with stakeholders, asking questions to customers and business analysts, clarifying and refining the requirements, and designing the test cases that will help developers to code the right product.
As an additional advantage, this greater involvement means testers gain a full understanding of the product and start to consider the scenarios and test cases.
Fixing bugs is time consuming, regardless of which stage of the development lifecycle they are found. But late bug fixing can cause big problems. Some of the reasons why finding bugs early is better than finding them at the end of the lifecycle include:
Based on my experience with shift left testing, I want to share 5 key best practices:
July 31 / 2020
July 08 / 2020
April 23 / 2020
As we gradually get used to our new COVID-19 reality, daily life from just a few weeks ago now feels like a lifetime away. For businesses this has created,...Read post