Shift-left encourages software development teams to break away from the siloed testing model. Rather than isolate most or all software testing to a singular stage right before code is put into production, the shift-left mindset means testing moves to earlier in the DevOps pipeline so defects can be resolved faster and at a lower cost. However, abandoning siloed software testing is only half the battle. Depending on an organization’s current development processes and goals, quality-driven development can take a variety of forms, including shift-left and continuous testing. Whatever form quality-driven development takes, the goal is always a more agile development process that produces better customer experiences.
Avoiding the Gatekeeper Model
The challenge with adopting shift-left, shift-right, or any form of quality-driven development is that it risks turning software testing into a gatekeeper, rather than an agile development enabler. Instead of simply yes/no at one point in the software development process, QA can find themselves saying ‘no’ more often. This pits developers against quality assurance, potentially undermining collaboration and likely slowing down production cycles. Considering mabl’s Testing in DevOps Report found a strong connection between DevOps maturity and shared ownership of testing, the foundation for shift-left is establishing healthy collaboration across the development pipeline.
Continuous Testing, Continuous Improvement
The key to avoiding the gatekeeper trap is understanding and communicating the full impact of shift-left. Like DevOps, testing early and often in development allows quality engineers and developers alike to continuously improve the product, avoiding the stress of rolling back new features or rushing to deploy a fix to customer-facing applications.
When testing is incrementally distributed throughout development, the entire organization becomes quality-driven. Effective testing becomes equated with release confidence, so software developers and product managers are incentivized to consider software testing and other quality concerns throughout their workflows.
How DevOps Teams Embraced Shift-Left for Quality-Driven Development
So what does quality-driven development look like in the real world? We asked software professionals how they shifted testing to the left and embraced continuous testing, as well as how the change transformed their teams.
Mature DevOps organizations are significantly more likely to discover defects earlier in development, an achievement that can only be accomplished by shifting testing to the left. Typically, these teams have embedded a healthy mix of both automated testing and manual testing throughout development, which ensures that testing can be executed with maximum impact and minimal friction.
Balancing manual and automated testing is a powerful strategy in the quest for quality-driven software development. Automated testing enables developers to automatically run headless UI tests, unit tests, or static analysis every time they save their work, shifting testing to the earliest stage of development. Depending on the feature they’re working on, both QA testers and developers can run a series of API and integration tests to ensure that the new feature works seamlessly with other aspects of the product, making it easier to troubleshoot issues within the rapidly growing number of APIs being used in modern software development. As code moves through the stages of development, automated regression testing, cross-browser testing, and end-to-end testing further reduces friction while encouraging a quality mindset.
Initiating software testing at the earliest stages of development creates a domino effect throughout the rest of the DevOps pipeline. Integrating automated testing to cover routine testing that would otherwise be too time-consuming allows developers to participate in quality without slowing down, and encourages them to consider quality improvements as a regular part of their work. This allows quality teams to become enablers of better development, rather than gatekeepers. Instead of spending the bulk of their time performing routine tests, QA teams can perform exploratory testing, expand test coverage to additional use cases, build test plans for new features, or further refine their existing testing strategy.
Test Coverage: the Key to A Customer’s Heart
Teams that fully commit to shift-left are likely to see improvements in customer happiness, a critical metric for overall business success. Though development improvements are ideally enough to encourage software development organizations to embrace quality-driven development, few things are more compelling to management than improving customer acquisition and satisfaction.
Shifting testing to the left is strongly correlated with improved test coverage, which is a critical metric for understanding how well an organization’s testing strategy reflects both the evolving product and the customer experience. Embracing manual and automated testing allows quality teams to establish data-driven testing methods that keep development aligned with quality goals that shape the user experience. When maintained, test coverage keeps the entire development organization aligned on testing strategy, making it a key part of adopting quality-driven development.
Test coverage is also strongly correlated with customer satisfaction, making it one of the most tangible measurements of how code will eventually impact the user experience. When test coverage is improved, the impact cascades throughout development and supports overall business success. When building the case for shift-left, updating test coverage is important to understand and communicate to the entire software development organization.
Delivering on the Promise of Shifting Software Testing to the Left
Shift-left practices were first introduced to help quality teams move away from the siloed software testing model that was quickly becoming outdated in a DevOps world. But as DevOps practices continued to evolve, shift-left started to force QA into a gatekeeper role - ultimately undermining collaboration. No matter what it’s called - shift-left or continuous testing - a successful transition is key to enabling quality-driven software development. When testing is embedded early and often in the DevOps pipeline, teams produce better software and customers have a better experience.
Was this article helpful? Share your thoughts on software testing, DevOps, and the customer experience in mabl’s 2022 Testing in DevOps survey so we can continue exploring the latest in quality innovation.