Why your team needs to embrace shift left testing right now

There is an endless debate about when and how to test software. Shift left testing is the latest theory, and it brings developers in to the process. Jennifer Lent unpacks it for us.

I love the term shift left testing. The idea of moving to the left, when the more obvious path lies to the right, appeals to me because I'm naturally curious about how people organize work. We move back before we can move forward, and that's often how progress happens.

Most noteworthy about this apparently new term shift left testing is that it sums up an old idea test experts have talked about for a long time: Testers need to get involved early and often in the development process. "Shift left" has been the mantra of software testers everywhere for as long as I've been telling their stories -- even though I haven't heard a single software tester utter that phrase.

Shift left testing -- among other things -- is about getting testers involved at the outset of the software project. Isn't that exactly what we were saying when we crashed the requirements meeting we weren't invited to? Shift left testing also characterizes our efforts to convince business colleagues that software testing entails much more than fixing bugs. For a long time, we've been making the case that testing is not an afterthought. It's a mindset that asks big questions throughout the development process about how target users will interact with the software we're building. The shift left testing movement, if there is such a thing, could help spread that message.

In this column, I explore what shift left testing means and why it matters -- even though it's not really a new idea.

Shift left: Devs as testers

If the idea takes hold, shift left testing will get developers to take on additional testing tasks. Many already do unit testing, making sure small increments of code work even as they write them. This Agile practice is important because it incorporates testing early in the development cycle. It also emphasizes that testing is an integral part of software development and everyone is responsible for quality and success. This Agile concept is articulated best by expert Lisa Crispin in her article about the whole team approach.

Getting developers to write test scripts strikes me as a novel approach -- a potentially positive outcome of the shift left movement.

Test expert Joe Colantonio, host of the Test Talks podcast, takes this a step further. He has said that ownership of test automation should belong to developers, at least somewhat. His reasoning? It will make the process go faster. Writing scripts for automation is traditionally seen as a tester's job -- even though too many testers lack coding skills. Getting developers to write test scripts strikes me as a novel approach -- a potentially positive outcome of the shift left movement.

Shift left: Get the message out

While the shift left testing movement emphasizes the importance of testing earlier in the development cycle, that's only one aspect of it. A post published by software testing tool maker SmartBear, "What The Shift Left in Testing Means," put it like this: "Suggesting that testing shouldn't be held until the last few days before a release is the easiest way of explaining the ideas in the phrase 'shift left.'" But that lens is too narrow, the post suggests. "Shift left doesn't exactly move testing closer to the beginning of a release cycle. It sprinkles it over each step and each iteration."

The SmartBear post notes that testing will likely still happen at the end of the development cycle. "But it will be smaller and faster because of the problems you are able to find earlier on." And that, of course, is the whole point. It's what software testers have been saying all along. Shift left testing matters -- not because it's new, but because it will help get that message out.

Is your organization shifting left? Let me know!

Next Steps

Worried about your tester job security?

Why testers need to get comfortable with data science

Why you need this (unexpected) testing skill

Dig Deeper on Software testing tools and techniques