Traditional way before shifting left
Many companies are adopting an agile approach in recent years and the whole agile world is progressing rapidly. This brought a lot of challenges to traditional IT teams. The biggest challenge was producing and releasing products more quickly while focusing on productivity and efficiency. Additionally, there is constant pressure on teams to reduce testing costs.
But just a few years ago, when I was starting my career as a QA, the approach to software development and testing was completely different from what it is today. The basic testing methodology used in QA teams was the waterfall model. This traditional, sometimes called shift-right testing, is a software testing practice that involves performing testing activities later in the software development life cycle, often just before deployment.
This testing method has revealed many difficulties that development teams commonly face. All unexpected bugs were found just before the deployment phase in the SDLC. This often resulted in delays in product delivery until all issues were fixed and increased costs due to the bugs being discovered so late in the development process. The cost of fixing defects in software increases exponentially with time in the software development lifecycle. More precisely, according to the Systems Sciences Institute at IBM, the cost to fix bugs found during the testing phase could be 15 times bigger than the cost of fixing those found during the design phase.
Consequently, identifying and resolving bugs at an early stage is significantly less expensive.
By finding out all this information, IT teams attempted to improve the approach to product development and testing in order to avoid potential issues. By adopting the shift-left testing approach, companies took advantage of its benefits to address current problems related to unexpected costs and delays. But at that time, IT teams faced a challenging process to embrace the changes that come with accepting the modern and improved way of working compared to the current traditional one.
How to get started before shifting QA left?
During time, shift-right testing has become less common, as organizations have adopted more proactive and efficient approaches. Shift-left testing concept started being used in response to demands of IT industry for faster product delivering and reducing the time-to-market*, but with constant emphasis on improving quality. (*Time-to-market is the total length of time it takes from a product being conceived until its being available for sale.)
Basically, shift-left is nothing else than an approach to software development where testing is performed earlier in the lifecycle. It involves moving testing activities closer to the beginning of the development process to identify and resolve problems as early as possible. But, shift-left is not something innovative or a new concept. Larry Smith is the man who back in 2001 explained his concept of shift-left testing in an article published at Dr.Dobb’s.
A lot of you must have heard his popular quote: “Test early and often”…
The main goal of using the shift-left testing concept is to identify and resolve potential issues and risks as early as possible in the development process, reducing the cost and time required to fix issues and improving overall quality and efficiency.
How to implement this shift in practice?
- First of all, testers should be involved in the early phases of the project development lifecycle. It is crucial to involve testers in discussions related to business requirements, design, and functional decisions, as and when required. Testers should have all information related to software product that will be under test.
- Requirements analysis should be done as soon as possible by all relevant stakeholders. Poor requirements lead us to a project which is not in alignment with the business and technical requirements.
- Test cases should be prepared as soon as requirements are available, rather than waiting until the end of the development process.
- Development is being done when requirements are ready and deployed in the testing environment as soon as possible. Continuous deployment is a way to quickly deliver new features and latest fixes.
- The use of exploratory testing is very important. It can help identify defects early on in the development process, as testers can explore the software before it is fully developed.
- Collaboration between developers and testers should be emphasized. Developers and testers should work closely throughout the development process to identify and fix issues early on.
By following these steps, the organization can effectively do this shift left of testing in the SDLC, improving quality and reducing the time and cost required to fix problems. Overall, testing left is a key component of modern and efficient software development practices, and is likely to continue to grow in importance in the future.
Our shift-left process in Agilno is a continuous work in progress and we are always striving to improve it further. We have taken proactive steps to involve our testers in the earliest stages of product development, giving them the opportunity to provide input in the earliest team meetings. We also ensure that test documentation is prepared promptly after finalizing requirements, and we continuously develop and deploy it on the staging environment.
Our commitment to using exploratory testing helps us detect issues early in the development process. Moreover, we believe that collaboration between developers and testers is essential for developing a high-quality product. As such, we prioritize this collaboration in our shift-left testing process and work hard to make it a core part of every process we develop in Agilno.
As you can see, implementing and adopting the shift-left approach in an organization cannot be achieved with testers alone, but it should be the whole team effort.
Based on what you have read, if you were to ask me would I recommend shift-left testing as the only approach to testing used in product development, I would say no!
Shift-left testing is definitely the future. It represents a shift away from the traditional way of testing and towards a more proactive, collaborative approach to software development. It can help organizations create higher-quality software with a primary focus on customers – understanding their needs and improving their overall experience.
But then again, shift-right testing is still an ideal practice for improving product quality and performance by solving issues that are witnessed in the production environment. The goal of shift-right testing is to ensure the product’s best possible quality over the production use of an application.
By shifting testing left, we take a huge step forward towards a modern and efficient approach to software development. However, this approach should not exclude the use of shift–right testing.
The combination of shift-right and shift-left testing is known as continuous testing. Continuous testing combines both shift-right and shift-left testing approaches to ensure that software is being tested continuously throughout the development lifecycle. This way, organizations create a more collaborative and efficient development process that leads to higher-quality products and faster time-to-market.
So, if you were to ask me again, I believe that the ideal approach is to use continuous testing. By adopting continuous testing, organizations can stay competitive in today’s fast-paced software development landscape.