Enterprise Management Associates data shows that 20% to 30% of enterprises can be considered leaders in the categories of digital transformation, DevOps, and software quality maturity.
Of these leaders, 25% to 45% are considered the mainstream.
Then there’s 35% to 40% of enterprises that we would consider laggards.
The good news is that maturity is increasing rapidly across these areas. The bad news is that 60% to 80% of enterprises still need to make significant improvements.
The driving force for this transformation? 70% of enterprises see application development driving double—even triple-digit—growth.
There are three critical aspects of software development affecting the progress of digital transformation.
Software quality remains a significant barrier to digital transformation. Neither automation nor process changes succeed without quality improvement. Organizations either treat quality as something they build in from the start with best practices, tools, and good design or they end up leaving quality to be discovered by the customers as they use it. The further to the right in the SDLC that quality becomes important, the higher the risk in the software being delivered.
Software testing is an important part of ensuring quality but it’s impossible to “test quality into” a product. Testing only exposes the quality of software. If testing is left to the end of product development or tacked on to the end of a CI/CD process, then it’s just too late to significantly impact the quality without delays and added cost. Software testing must be integrated throughout the entire software life cycle.
The leaders in digital transformation are organizations that think of quality more broadly than the laggards do. They realize that quality is more than checking if a new feature works. They understand that security, availability, reliability, and performance are key aspects of quality. The leaders plan for and build quality into their software.
Equally important, leaders in software development are always thinking about how they scale and optimize the practices and tools that work for them. They are constantly looking for ways to automate manual processes and integrate learned best practices into their development culture.
As organizations mature along their path to improving quality, they realize that having a tool for each point of automation is going to be too much to manage. From their tool vendors, organizations are looking for solutions that span various practices across the software life cycle. For test automation, they’re looking for tools that span unit, API, and UI testing, for example. They’re also looking for integrations with DevOps orchestration tools and feature/issue tracking systems.
Tools and automation create a lot of data and a platform approach provides better integrated data collection and analysis. Visibility into the process and progress is a key to managing a DevOps pipeline. Software development is a complex team sport, and it can be hard to manage without data-driven decisions.
Shift left—moving practices like testing sooner in the software development life cycle—is a goal of most development groups. However, there are limits to just how much extra work and responsibility you can put on the shoulders of developers. Shift left requires simple, integrated, and automated solutions that ease the burden for developers and make it a natural extension of their normal work pattern.
Equally important to taking shift left to heart is having a culture of quality. Organizations need to think about transformation from a corporate culture perspective.
Software development is a team-based activity and everybody on the team has to own quality. However, this isn’t generally enough to get to the next level in software development maturity. Leaders in the industry integrate a different mix of specialties into the development team. The team should include the right experts that have a focus on quality and testing.
The days of developers throwing software over the wall to the QA team to deal with are long over. To move forward, software teams need to integrate specialties like testing, security, and user experience into an integrated team.
Software testing needs smarter tools in order to increase the level of automation they provide. Tools need to go beyond being just a framework for test creation and execution. They need to create and maintain the tests.
There’s an important role for AI and machine learning in software testing as it increases the usefulness of the tools to developers by further reducing the manual and tedious steps they have normally needed to do for testing.
The use of AI in Parasoft unit testing products, for example, enables automatic unit test creation. This isn’t just generating random tests, but rather ones directed towards certain goals like better code coverage, testing missing functionality, or increasing testing in high-risk areas of code.
In terms of functional API testing, AI is used to assemble reusable test scenarios from recorded API traffic between the application under test and its dependencies. These scenarios can be reused, fine-tuned, and duplicated to create an entire API test suite.
See Parasoft Continuous Quality Solutions for API & Unit Testing in action!
For UI testing, Parasoft uses AI to create reusable Selenium tests and then to apply self-healing to tests during runtime to prevent test failures. In this case, AI is used to create UI tests that are more resilient to changes in the UI. If tests break, AI suggests ways to quickly fix the test that were self-healed by the tool.
DevOps is a fairly mature concept at this point. Continuous integration seems well supported and integrated into development processes. The continuous delivery and deployment aspect has been more challenging and complex and is an area in which leaders in digital transformation are more than 60% ahead of laggards in terms of process maturity. This is an area where software test automation plays a role.
Applications do not live on an island. They very much are part of a system of dependencies that include other services, databases, and applications. When developing a product in relative isolation it can be too easy to ignore the external services and data needed to ensure the quality of your application before it is launched into a production environment. This further complicates the need to ensure compliance and security of applications and APIs in such complex environments.
The key to improving testing in pre-production is to be able to create an environment that mimics production but without the complexity and risk of breaking anything. Service and data virtualization allows DevOps teams to efficiently take control of their test environments so they can test often, test early with lower costs. These include key parts of the distributed system that are missing: for example, when dependent components are inaccessible, scaling training environments, and building partner onboarding scenarios.
Using virtual services for testing purposes is more cost effective than using production environments for those purposes. API testing with endpoint simulation eliminates the chances of losing data, avoids using the expensive servers the actual program needs to operate and allows the company to forgo excess license fees. This results in fast, accurate, and less cumbersome testing procedures.
Digital transformation promises big increases in growth. Organizations leading this charge are doing things differently than the laggards. Software is on the critical path for digital transformation, so maturing software development practices to increase productivity while also improving quality and security is a lofty goal. Enterprises are chasing software quality to make their transformation a reality.
It’s possible to catch that elusive quality goal with process maturity. As part of this, quality must be part of a product from inception plus a cultural change in the organization that breaks down traditional developer and tester silos. Collaboration between integrated teams of specialists is the preferred approach.
Digital transformation leaders realize the importance of software testing and the need for tools and processes to improve quality. With a determined approach to process maturity over time and smarter tools assisting better decision-making, it’s possible to reel in software quality.
Matt Klassen leads marketing strategy, campaigns, programs, messaging, and public relations to strengthen Parasoft’s market position and drive revenue growth. Since pursuing a degree in computer science, he’s been a student of how software has and will continue to change the world. Matt spent the first several years of his career developing and architecting software before going into ALM technical sales and management with Rational and IBM for another 7 years. He then pursued an opportunity in product marketing with Borland to help build their ALM business. Prior to joining Parasoft, Matt built several product and solution marketing teams across Borland, PTC, Ping Identity, and Cherwell.