Global 2000 organizations are increasingly being pitted against nimble startups set on disrupting their industry. Accelerating application delivery is a key part of maintaining a competitive advantage, but it’s hard for enterprise organizations to keep pace. They’re burdened by everything from complex application stacks, including mainframes, packaged applications, and decades-old custom applications, as well as modern interfaces, to deeply entrenched processes built for dramatically different delivery models, to strict compliance requirements. At times, it can seem like you’re competing in the Tour de France while towing a child in a bike trailer.
All too often, it’s testing that’s holding back the speed of application delivery — specifically, lack of a mature continuous testing practice that provides near real-time feedback on whether the application has an acceptable level of business risk. Nobody doubts that continuous testing is essential. But making it a reality is a challenge in any development environment, and it’s an especially pointed pain in enterprise environments, with all the burdens and baggage mentioned above.
1. Introducing and expanding test automation
Having a core set of automated tests that expose business risks as they’re introduced is a key component of continuous testing. Yet, the latest World Quality Report found that test automation has been stalled around a dismally low 15% for years now. You can’t, and shouldn’t, automate all your testing efforts. But if you want fast feedback on whether the latest changes broke any critical business processes, ramping up automation is essential.
The problem is that getting started with automated testing can be hard and keeping it going is, unfortunately, even harder. Most large organizations have at least one or two failed test automation initiatives under their belt, so quality leaders are understandably reluctant to spearhead another.
Yet, many brave QA leaders are up for the challenge and achieve success. What’s their secret? At a high level, they remain laser-focused on the long-term goal of sustainable test automation, so they architect the deep-seated process and cultural change to support that. Getting it started requires finding a test automation approach that crosses the various technologies involved in your business processes (technology-agnostic or broad technology support) and can be adopted rapidly and broadly by your existing team members, whatever their current skill sets may be. Keeping it going also requires addressing what I call “the three nightmares of test automation”: test maintenance, test data, and test environments.
Here are some tips from how Linde, the world’s largest gas company, introduced test automation into the 100+-year-old company’s complex web of highly customized SAP, Salesforce, web, and mobile apps:
2. Assessing the release readiness of new functionality
A primary goal of continuous testing is to determine if a release candidate is ready for production. As described above, you absolutely need to ensure that the changes in each release don’t break existing functionality. But you also need to test the new functionality to ensure that it works and meets expectations.
Making the ultimate go/no-go release decision can be a bit of a guessing game when different teams are responsible for different components and layers of the application: the browser interface, the mobile experience, the various packaged apps at work behind the scenes (SAP, Salesforce, ServiceNow), and all the microservices, APIs, and integration platforms that are probably gluing it all together. They’re likely developing new functionality at different cadences and testing their parts in different ways, using different testing practices and different tools. But the user doesn’t make those distinctions. They expect it all to just work, flawlessly.
Moët Hennessy-Louis Vuitton (LVMH), the parent company behind luxury brands such as Christian Dior, TAG Heuer, and Dom Perignon, recently decided to streamline its testing process to support ambitious plans for e-commerce growth. It perfected the art of testing new functionality efficiently and making release decisions that ensure the ultimate user experience:
3. Balancing collaboration with autonomy
For years now, the trend has been toward autonomous, self-governing development teams that choose the practices and tools best suited for their culture and projects. This is great for team motivation, but it’s not ideal for collaboration. At the same time, another competing trend, toward highly interconnected applications, has made collaboration even more critical. At the points of intersection, there’s a huge opportunity to share test artifacts as well as code and deployment artifacts. However, that’s easier said than done now that so many teams have grown accustomed to using their own processes and testing tools.
How do you promote cross-team continuous testing collaboration without homogenizing all the distinct ways of working that different teams have invested considerable resources in developing and perfecting? Dell has devised an effective strategy to tap synergies across 30 divisions working across more than 20 different test automation frameworks:
Focus on the right approach
There’s no such thing as enterprise continuous testing in a box. As you can see from just these few examples, the top challenges and potential solutions vary widely, and yours will too.
To succeed, you need to get real. Take a long, hard look at what you’re working with and craft an approach accordingly. Don’t expect long-time manual testers to download some open-source testing tools and automate processes that span packaged applications, custom applications, mainframes, and more. Likewise, don’t expect a high-performing, tech-savvy team to give up the home-grown or highly customized software testing approach they poured significant time and resources into over the years.
Continuous testing itself is all about assessing the impact of change. Your approach to continuous testing must also be built around change: What can you do from a technology, process, and change management perspective to ease the transition from your current state to an enterprise continuous testing process that’s achieving your organization’s goals with respect to quality, speed, and efficiency.
If you’d like to explore these and other enterprise continuous testing challenges in-depth, I invite you to read my recent book, Enterprise Continuous Testing: Transforming Testing for Agile and DevOps.
* Originally appeared in The New Stack