The process of evolving a product has many challenges. Those challenges can disclose many vulnerable areas for problems and bugs to occur. The sooner those issues are identified and fixed, the lower the impact on cost and time to release.

Shifting left testing is a software testing approach in which testing is performed earlier in the development life cycle.

Imagine there is a dependency on the requirements discovered during the design phase and the impact of solving it is minimal. You just clarify the requirements and adapt them before continuing the process. However, if that same issue is discovered not in the design but in the implementation or deployment phase, the impact could be much higher. Apart from adapting the requirements, all the development work needs to be reviewed and fixed and depending on the issue—and this could mean re-building the complete feature from scratch.

Testing done in the early stages of development decreases the costs of bugs. In other words, fixing a bug later on in the development cycle, or in production is much more expensive than earlier in the cycle.

— Leo Boni (Head of Agile at Stuart)

Of course, not all the problems will be found just by adding the QA team in the process. But in order to try to provide the best experience to our users and avoid these situations, we believe that it is important to be involved throughout the entire development cycle.

The following are some key points to understand this approach.

Involving the QA team early when planning tasks adds extra knowledge about the product that can help the whole development team on the feature refinement sessions by spotting dependencies, limitations, conflicts, or other issues that in the early stages are very easy to solve.

It also gives the opportunity of getting a complete vision of the future product being developed. QA Engineers joining the grooming process will learn about how the product will evolve, how the client will use it, how it will be built and which technologies will be used to implement it.

Everything needs testing. More specifically end-to-end testing. This makes QA Engineers know very well how the different pieces of the platform work and interact with each other. Having someone with this knowledge in the early stages of a project is very important. — Jalal Souky

Every QA team member will help with managing this knowledge and sharing it with the rest of the team and the whole company. This spread of knowledge will be vital when the verification phase comes so more people can contribute.

As we said, start testing since the very early stages of development will let the team gain a deeper knowledge of how the product currently works, learn about it, explore it and experiment on how it should and should not work. With this in mind, QA can help prevent future bugs and problems that could compromise the final value and quality of the product. It also engages the team in verifying that designs and global specifications will meet our client requirements.

By involving them in the first stages, QA Engineers can work more closely with the Product team and get a client-side view of the project. This adds critical thinking about the product from a different point of view.

QA Engineers are known for their attention to detail and very often think of use cases and edge cases that slip most people’s minds. Being able to identify these cases early in the process avoids redesigning solutions once they have started, which is very undesirable, to say the least.

— Jalal Souky (Senior Product Manager at Stuart)

QA members analyse the product while testing, to notice problems and ask themselves how we could make our product better. But also to challenge the developers, and to motivate the whole people involved in the project to be more proactive in solving the problems that were found during the process. Like having the stakeholders taking a look at how the work is evolving and being able to evaluate the product before it is finally ready and delivered.

QA often has insights due to their focus on testing that developers do not have so they can help by providing these insights and guidance. — Leo Boni

Another improvement in the process comes when the QA Engineers work closely with the Product Design team, providing feedback about usability and gathering information about how the product will be used so both design and testing processes are enriched.

Shifting left testing on the development process is giving more importance to testability. We are adding an extra assurance that the whole product will be in line with the company values regarding quality. The QA team will be able to make key decisions earlier on how the product should be tested and how everybody involved in the project will fit in the verification and validation process.

Sizing the QA effort to test is important when estimating the overall effort of the development activity — Do we have automated tests, manual tests, or no tests at all? Is it easy for QA to test or difficult? Will QA be writing automated testing while the development effort is underway? etc. In other words, we have a better understanding of how / what to test which optimizes our use of time and resources.

— Leo Boni

It is great to let the QA team come up with a test plan and be ready to adapt it any time a change occurs before arriving at the late phases of the development. This way, sizing the work that is needed for testing can be done step by step in the early stages, rather than testing it all together at the end of the process.

Knowing what we’re going to test helps us to clarify our acceptance criteria and shorten feedback loops. — Leo Boni

In conclusion, thinking about involving QA since the beginning of the development process lets the whole team rest assured that the project will meet the quality level we are looking for, and allows to spot possible product or technical issues earlier in the process, making them easier and cheaper to fix in time and resources.

Special thanks to Leo Boni and Jalal Souky.

🚀 Like what you see? We’re hiring!

0 pouet pouets