Shift-left testing is not a new idea. It has been around in some form or another for as long as I have been in the business, which is for decades. So, why has it not been implemented? The reason is simply because it is difficult to get right. On some level, it goes against our natural inclination to get stuff done, write more code, close more stories, and release more apps.
The goal of shift-left testing is to identify and resolve defects earlier in the development process, which can save time and money, improve the quality of the software, and increase customer satisfaction. Shift-left testing has significant drawbacks, though, and Quality Assurance (QA) Analysts must adhere to specific processes to successfully integrate it into their workflow.
Shift-left testing has many advantages, including:
Although shift-left testing has several advantages, there are also certain difficulties that must be overcome, including:
The development team must follow a specific process to successfully integrate shift-left testing into QA:
In my opinion, these last two points are the crux of the problem. Selecting tools and new test methods that are appropriate for your development lifecycle are the most difficult and important choices to make. For example, tools and test methods needed for the development of a web app game will differ significantly from those needed for a safety-critical system. The skill here is to, as always, identify the most effective changes you can make. Questions to ask include: What is the nature of the defects you are missing? Are they custom UI related, are they API problems? The answer to these questions should give you an indication of the areas you need to focus on.
Agile development is used as an example of shift-left testing. However, this is achieved by breaking the “waterfall” into a run of “rapids”, which obviously does not solve the problem of shift-left at all. Effective shift-left involves actual testing further up the software development lifecycle. For example, automated testing such as unit tests and build verification tests for check-ins and static code analysis tools. The former, I believe, requires cooperation between developers and QA to leverage QA expertise that helps developers create effective automated tests. The latter, while having limited effectiveness, can improve aspects such as code quality that make root cause analysis and defect fixing more efficient.
All this can only be achieved with the agreement of development, product design, and project management that adhering to different methods, standards, and definitions of completeness will ultimately improve the software development process.
Are you ready to take the quality of your custom app development project to the next level with well thought-out, holistic testing that benefits your product and consumers? Then contact Atimi, a native app development company in Vancouver, today.