Shift-Left Testing

January 8, 2019
John Kensinger
John Kensinger

Shift-left testing counters a more traditional approach to testing typically inherent to Waterfall methodology, whereby testing occurs near the end of the software development lifecycle: Requirement, Design, Implementation, Testing, Deployment, and Maintenance. However, as ultimately realized, the cost of testing at the end of the software lifecycle can be too high due to retroactive fixes, re-hauls, and pivots. If a critical issue is found too close to the product launch, release delay or reworking can result in huge losses.

Accordingly, the notion of shift-left testing has grown in popularity, where the testing phase is moved from right to left in the software lifecycle chronology. Testing is thus to be performed earlier in the cycle as well as more frequently throughout. This means testing takes place continuously, not just at the end of the cycle, offering an alternative approach to testing that keeps up with the increasingly-common methodology of continuous deployment.

Types of Shift-Left Testing

Traditional - Traditional shift-left testing places testing priority a little higher up on the totem pole, where it focuses on unit and integration testing as opposed to acceptance and system-level testing.

Incremental - Incremental shift-left testing is involved when complex stages of development are broken down into smaller segments that build upon each other. This allows developers to make sure that each segment is working properly before another segment is added. This form of testing is most commonly used for complex systems, typically those involving hardware integrations.

Agile - Agile shift-left testing is similar to incremental testing, except it’s taken to a smaller and more agile incremental degree, whereby projects take the form of short “sprints” in lieu of larger (traditional) or broadly segmented (incremental) projects.

Model-Based - Model-based shift-left testing pushes the case even further by initiating testing immediately with executable requirements, architecture, and design. In this case, testing is introduced directly after implementation.

Ultimately, each type of shift-left testing requires testers to get involved in the development lifecycle earlier and remain involved throughout all stages. The above forms of testing encourage test-driven development, which helps to prevent the addition of nonfunctional software early on rather than finding it and fixing it further along in the cycle.

In summary, here are the benefits of shift-left testing:

  • Find bugs and other issues earlier and thus reduce the cost of mistakes found later in the software development lifecycle
  • Test continuously throughout the development process to catch small issues before they snowball into larger ones
  • Automate testing when possible to increase efficiency and ease of continuous testing
  • Develop a more iterative and solidly built product

Read More

April 1, 2020
How test IO helps amplify distributed teams

With remote work capability now a necessity, companies must have the tools in place to enable distributed teams to perform at the highest level. test IO is one of those tools.

March 12, 2020
Tester Spotlight - Alex Che

We’re able to do what we do because of our incredible and diverse community of testers. Meet Alex, a Policeman now QA Engineer who gained the real-world QA experience he needed to change careers testing with test IO.

March 10, 2020
A Benefit of Crowdtesting - Time Compression

When budgeting for crowdtesting in the coming years, it's important to know all the value it adds. Here a little more on one of those values, time compression.

Ship Faster, Sleep Better

Get a Demo