Over the years, people have realised how detrimental it is to keep software testing activities near the end of the software development life cycle. Picture a traditional waterfall model for software development wherein each stage of the workflow needs to be completed before moving on to the next step:
As the testing phase is right at the end of the process and does not start until the end of development phase, it is extremely likely that critical bugs will be discovered late. The consequences of this approach could result in increased cost and increased time to market because such rework could take a long time depending on the nature of the bug. According to NIST (National Institute of Standards and Technology), the cost of fixing software bugs in production can increase up to 30 times more than fixing them in the requirements stage.
To help reduce or eliminate these costly changes, testing early in the software development process has been introduced. This early testing is also referred to as “Shift Left”.
What is Shift Left Testing?
Shift Left testing is the application of continuous testing activities early and throughout the entire software development process. It focuses more on problem prevention rather than problem detection which would help solve code/design issues early on before they become a showstopper later in the process.
In Shift Left testing, either a BDD (behaviour driven development) or TDD (test driven development) approach is encouraged to keep testability in mind. Testers are involved earlier to work with stakeholders, to gain a deeper understanding of requirements, design, coding, functionality, and to provide feedback wherever applicable. Additionally, developers can take up testing tasks by creating unit tests and performing basic tests themselves before merging their code into version control.
Here are some of the benefits in adopting a Shift Left testing approach:
- Reduced project cost. As explained above, the cost of fixing bugs is significantly less expensive when detected early.
- Increased software quality because of continuous testing.
- Improved time to market as potential bottlenecks are identified and resolved early, causing less rework.
- Improved customer experience because of fewer production issues.
- Adheres to the following Agile manifesto:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
By Alvin Maranan
Alvin has 10 years experience in manual and automated testing. Having ISTQB Advanced Level Test Analyst and Technical Test Analyst certifications under his belt, he seeks to continuously improve both manual and automated testing practices and establish robust QA processes to ensure high quality outcomes.
Have more questions?
Get in touch today.