Digital IT is perhaps the biggest shift that’s happening right now, and it’s fundamentally changing every aspect of testing. From quality requirements, through rapid adoption of DevOps, the Digital Revolution in IT presents both new challenges and new opportunities for testing organizations.
Increased quality expectations
In today’s world, IT systems are no longer the domain of internal users. Mobile, web, cloud and other modern technologies have exposed enterprise IT systems to millions of end-users worldwide, heightening the importance of application performance and creating the culture of zero tolerance for failure.
While this is undeniably a new trend, Telecom companies have actually had lots of experience with business critical applications that interface directly with customers. Take billing for example – billing systems have always interfaced directly with the consumer, and if something went wrong, negative news would spread quickly through the media. To ensure consistent accuracy, billing applications have continually been subjected to the highest level of testing: for each cycle, the QA team would run a full spectrum of tests, both manual and automated, to thoroughly validate every piece of functionality that touches the customer. Today, we are beginning to see the same level of importance being placed on testing of all customer-facing applications, and that’s a big shift in how quality is perceived in the organization.
DevOps and its impact on testing
In the digital world, it is no longer acceptable to have long and expensive release cycles. Changes must be small, frequent, and delivered at low cost, enabling IT to react to market demands at lightning speed. These forces drive a significant acceleration in the adoption rate of DevOps. For enterprises, implementing DevOps can be more challenging, and testing is expected to play a key role in enabling this journey. Below are some key points on the main impacts of testing in an enterprise DevOps environment:
- The bimodal reality of today’s testing environment
Enterprise IT faces a unique challenge. While some application may be “DevOps-ready” and developers are able to release continuous functionality to production, many of the legacy systems are still being developed in a waterfall-type (or agile, but only in development) model. This creates a discord between the superfast changes of some applications, and the more measured world of a waterfall model with its long development, testing and deployment cycles. This phenomenon is known as a bimodal reality of the digital world. And even though many organizations have embarked on the DevOps and agile journeys, recognizing the dual nature of their development environment can help them better adapt their practices to meet business demands.
Testing plays an important part in enabling the bimodal way of application delivery. The QA team needs to maintain the necessary cadence to support regular waterfall release cycles, but it should also invest in building an automation practice that would allow for daily automated testing of new functionality delivered by agile teams. If development is fully on-board, and everyone knows what types of changes they can push into production between releases, teams can deliver high quality applications at the speed of business while progressing along their journey toward full DevOps and agile.
- Massive shift left requires synergy between testing and development
Until fairly recently, the common understanding was that testing needs to be separate, and completely independent from development. Today however, in order to accelerate the delivery cycles of those big legacy systems, companies need to look at shifting testing both left (earlier in the cycle) and right – into DevOps. Today, testing is largely done in three distinct phases: testing by the development team, Testing by the QA team, and final sanity of the business users. The former two need to synergize, use the same design, tools, environments and people who are part of the same team – as much as possible. In today’s market, there’s no time to set up for each phase separately – testing, development and operations need to come together. The latter one should be achieved through A/B testing capability where a limited group of users are exposed to new functionality in a controlled way.
Some people might say that testing as a separate discipline is going away. It’s not – in fact it’s expanding – both to the left and to the right. The independent role and profession of a software tester will remain: while developers focus on testing the functionality, and Ops engineers look for operational issues, testers test the application from the business flow perspective, and that’s essential for modern applications.
- Test Automation should happen as part of development
As part of building application functionality, developers can also produce small units of test automation, which can be later assembled into end-to-end business flows. For example, Amdocs has long recognized the benefit of building such “nuggets” of automation, and our tools, such as Amdocs BEAT™ Design Console, and Amdocs BEAT™ Ginger, help model test automation after business activities composed of testable units and then automate them. The whole cycle of development needs to be driven by test design: developers can organize their code drops into testable business flows and produce automation “nuggets” that can help test those flows. At Amdocs, we have begun to practice this concept in some of our projects, and we have seen very encouraging results coming from the process where development and testing don’t have a wall between them.
- The Changing Role of the Testing Center of Excellence
Part of the expanding role of testing is the shift in the role of a Testing Center of Excellence (TCoE). As functional testing shifts to the left, TCoEs will focus on two crucial aspects: end-to-end testing and testing enablement services. As organizations mature, non-functional testing services, such as test environment management, test data management and automation services, will be delivered by the TCoE on the cloud, and consumed by cross-functional teams.
At Amdocs, being the largest testing services vendor for the communications industry, we see this as an opportunity to create further efficiencies and enjoy a larger economy of scale by delivering such services “as-a-service” to multiple communications service providers. The communications vertical focus gives the Amdocs team a robust infrastructure of knowledge, business process configuration, industry-specific tools and libraries, along with highly experienced people, to offer services using this model, and we are currently in the process of launching the Amdocs Cloud Telecom TCoE.
Recommendation for companies embarking on digital transformation journey
To keep up with the changing pace of the digital world, my advice is to start looking into the four digital testing challenges, mentioned above, right away and to gradually adapt your testing organization to meet these changes. In addition, I recommend taking a small project or application and try going into DevOps model end-to-end at one shot. Experiment, measure and learn. This is an evolution, not a revolution. It can’t be done quickly, but once you get started, you will know what you have to do to be successful.
Amdocs Testing Services: a partner in this journey
Since Amdocs often provides the development and operations services to our customers, Amdocs Testing Services is better positioned than anyone else to help close the loop in the DevOps journey. Amdocs BEAT™ was built from the beginning to accelerate software testing and support continuous delivery and is tightly integrated into DevOps accelerators such as Jenkins.
Amdocs is highly advanced in the digital space, with the most comprehensive capabilities and extensive partner ecosystem to support customers along their journeys to digital testing. Amdocs Testing Services has probably tested more digital projects than anyone in the industry. Many of our customers are going through digital revolutions and we have been with them every step of the way to help them develop mature digital testing practices, including testing in agile environments.