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.
Digital Transformation in Software Development
There are three critical aspects of software development that are affecting the progress of digital transformation.
- Software and software development are on the critical path to digital transformation. Improving software quality while meeting customer requirements and expectations is the criteria for success.
- How we define quality is changing or, rather, the aspects of quality we consider more important are changing. Customer experience is now king and having a purely functional application isn’t enough. This is forcing organizations to rethink their definition of quality. They have to, it’s no longer okay to pay lip service to user experience.
- Digital transformation is driven by the need to improve efficiency and deliver products to market sooner with better quality. The enterprise needs to “go faster” in all aspects of software so automation has to play a vital role. This means automating testing and quality practices.
Software Quality Is a Barrier to Digital Transformation
Software quality remains a significant barrier to digital transformation. Neither automation or 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.
Catching Software Quality With Test Automation
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.
Visibility, Feedback, & Insight
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 Needs More Than Tools
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 makes it a natural extension of their normal work-pattern.
Equally important to taking shift left to heart is having a culture of quality. Organisations 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 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.
Digital Transformation Needs Smarter Testing
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.
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.
Automation Reduces the Complexity of Continuous Delivery/Deployment
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 continuous quality of your application before it is launched into a production environment. This further complicates the need to ensure compliance and security of application 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.
Summary: Software Is on the Critical Path for Digital Transformation
Digital transformation promises big increases in growth. Organisations 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, continuous 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.
Check out all the software testing webinars and eBooks here on EuroSTARHuddle.com
About the Author
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.