What it Really Means to ‘Shift Left’
Much of the new wisdom surrounding the improvement of software testing scenarios focuses on the idea of Shift-Left, in which the work of testing code is shifted back toward the earliest phases of the software development lifecycle (SDLC), and starts at check-in. But with velocity and speed of the modern app economy, this concept of ‘extreme shift left’ testing is coming of age.
This is quite a departure from earlier approaches in the SDLC, where testing and QA happened only after developers had created the product. As we moved into the era of Agile and DevOps, agile teams started focusing on working within sprints. The idea of testing before the code went out the door into production might have seemed like the right thing to do, but it soon ran into logjams of its own, creating delays and worse, faulty product.
Shift left aligns with testing happening continuously throughout the SDLC, in many cases as part of a broader Continuous Testing and Continuous Delivery strategy. But what does that actually mean? Firstly, it means everyone is now responsible for quality. One can argue that that’s not great news for developers, whose craft and job description does not explicitly include testing for quality. Designers design, after all. They are the crafters, the interpreters of the customers’ stories and requirements.
Nor is it great news for testers, who can immediately feel a threat to their livelihood. With shift-left, they can no longer expect the code to be thrown over the wall for them to handle. Similarly, Quality Assurance (QA) people may feel that their jobs, too, are under threat, if the product is being continuously tested all the way along.
How the Testing Process is Changing
The truth is Testing/QA processes (and jobs for that matter) are changing, but that doesn’t mean they will be eliminated. The market demands faster production of flawless code, something that waterfall and Agile cannot sufficiently deliver. This has, in turn, demanded better methods of testing including test automation. There is more pressure now that ever before to adopt test automation practices boost speed and velocity. This well-known national airline, for example, described how it used to take them several days to do test automation. Pressure is mounting. Going from two weeks of regression testing, down to ten hours wasn’t good enough. Now, by leveraging containerization, they can get the same tests down to ten minutes.
As the pace of development increases, so too does the demand for more efficient ways to design test cases, and use synthetic data and virtualized environments to get adequate test coverage in all types of scenarios.
In short, this is a new game, one that cannot be cleanly segmented into design, test, and QA as it once was.
Extreme Shift Left with CA Agile Requirements Designer
To truly achieve continuous testing, you need shift left-all the way left. That means thinking about your test case design process even before the first line of code is written.
CA Agile Requirements Designer helps automate the earliest stages of design in a way that makes developers’ jobs easier. Instead of converting requirements into lines of text, it works in a visual, flowchart approach, allowing designers to identify the best routes and options for fulfilling a code’s mandate. This, in turn, helps ensure accuracy from the get-go, which helps build code with fewer errors, speeding up the process.
At the heart of taking an extreme shift left testing approach, is this concept of ‘requirements engineering’, where that original requirement conveyed on a whiteboard does not get converted into traditional text-based requirements. These diagrams represent requirements as mathematically precise visual flows, adding accuracy to requirements engineering and reducing requirements ambiguities while supporting better collaboration and communication across key stakeholders.
View this video to see how taking an extreme shift left approach, with requirements engineering practices for example can help.
As many people have stated, developers are not testers. They have not been schooled in testing techniques, nor in general have they needed to create perfect code – after all, that’s what the testing department was for.
With CA Agile Requirements Designer, they, and the entire SDLC team can focus on building bug-free code from scratch, by adopting an extreme shift left approach – all the way to the requirements definition phase.
Start your Free Trial of CA Agile Requirements Designer today and fast track your Testing at the speed of agile.
Gedeon Hombrebueno has extensive product marketing and product management experience for enterprise solutions across DevOps, IT Security, and Systems Management. Currently, Gedeon focuses on bringing to market CA’s Continuous Delivery and Testing solutions.