By Dr Gareth Smith, GM, Software Test Automation, Keysight Technologies
The pandemic has rapidly accelerated the pace of digital transformation and software has become vital to how we work, live, and learn. As the world becomes more digitized and dependent on digital products, this has put the quality of software in the spotlight.
With rapid digitalization showing no sign of slowing, software-based innovation and development will continue. And with poor software quality estimated to have cost the US economy a staggering$2 trillion in 2020 , organizations must find a way to balance the speed of release with software quality.
To understand more about software quality, we asked Dr. Gareth Smith, Keysight’s General Manager of Software Test Automation, to explain why software quality now determines business success and how organizations can take steps to improve it.
1. Why is software quality important?
For the last decade, organizations have focused on releasing new apps and services as quickly as possible to keep up with rapidly changing demands and support digital transformation. However, with the push for speed of delivery, software quality has often lagged behind.
The quality of software is critical in a digital-first world. For example, an undetected flaw can trigger system outages, and a misconfiguration of cloud platforms can result in a data breach or data loss. Software defects drastically increase the cost of development. And, once software is released, the cost of finding and fixing is significantly higher than during the design/development phase.
How can organizations improve the quality of their software?
With rapid software development, testing and monitoring must be prioritized to provide a frictionless, high-quality (omni-channel) digital experience that results in successful user outcomes. The next-generation software testing platforms support this by incorporating the latest AI techniques that learn from real application usage, historical bug patterns, and which application behaviors yield the most critical business outcomes. These platforms can automatically generate tests that focus on the user journeys in the application that are the most important to business success. This end-to-end intelligent test automation within a DevOps framework allows companies to deliver improved quality software faster while freeing up teams to increase their productivity.
How is DevOps impacting testing strategies and what role does Keysight’s intelligent automation platform play?
DevOps is about breaking down silos between different teams to coordinate and collaborate to produce better, more reliable products faster. By adopting a DevOps philosophy, teams have increased confidence in the applications they build, are better able to meet customer needs, and achieve business goals faster.
The success of DevOps is intrinsically linked to test automation, as manual testing cannot address the ever-expanding test surface with increasing release frequencies. However, it’s not enough to automate a handful of tests or administrative processes. To succeed in the digital age, development and test automation engineers must collaborate with the operations team to ensure software and applications deliver on their ultimate goal of delighting users.
Here at Keysight, we are helping testing teams intelligently automate the entire testing lifecycle from test-case creation through test execution to automated results analytics. Our AI-powered platform accelerates development and provides visibility and insights into how users navigate digital properties. These insights are fed back into the test automation, significantly improving the quality and reliability of software.
How is AI changing test automation strategies?
AI enables test automation to move beyond its scope of simple rule-based automation. It utilizes algorithms to efficiently train systems using large data sets. Through the application of reasoning, problem-solving, and machine learning, an AI-powered test automation tool can mimic human behavior and reduce the direct involvement of software testers in mundane tasks.
Intelligent test automation evaluates the functionality, performance, and usability of digital products rather than simply verifying code. It incorporates AI, ML, and analytics to test and monitor the user experience (UX); it analyzes apps and real data to auto-generate and execute user journeys. The result is a smarter way to continuously test software and apps, whatever they are running on.
AI-based tools eliminate test coverage overlaps, optimize existing testing efforts with more predictable testing, and accelerate progress from defect detection to defect prevention. This, in turn, improves software quality.
Why is there a shift towards continuous quality?
With the reliance on digital, testing must shift from a verification-driven activity to a continuous quality process. Teams must incorporate quality into every phase of software development and automate the process. Continuous quality is about adopting a systematic approach to finding and fixing software defects throughout the entire software development lifecycle (SDLC). It reduces the risk of security vulnerabilities and bugs by helping find and fix problems as early as possible.
To improve the quality of software, do you need to add more technical resources?
No. AI is making the process of designing, developing, and deploying software faster, better, and cheaper. It’s not that robots are replacing programmers. Instead, AI-powered tools make project managers, business analysts, software coders, and testers more productive and more effective, enabling them to produce higher-quality software faster and at a lower cost.
Here at Keysight, our intelligent automation platform allows citizen developers to easily use our no-code solution that draws on AI and analytics to automate test execution across the entire testing process. It empowers and enables domain experts to become automation engineers. The AI and ML take on scriptwriting and maintenance as a machine can create and execute thousands of tests in minutes, unlike a human tester.
How is Keysight Technologies’ automation platform transforming test automation?
Keysight’s intelligent automation platform is the only completely non-invasive testing tool, ensuring comprehensive test coverage without ever touching the source code or installing anything on the system-under-test (SUT). Our technology sits outside of the application and reports on performance issues, bugs, and other errors without needing to understand the underlying technology stack. This is critical for regulated industries such as healthcare, government, and defense.
The AI-powered automation can test any technology on any device, operating system, or browser at any layer, from the UI to APIs to the database. This includes everything from the most modern, highly dynamic website to legacy back-office systems to point of sale and command and control systems.
The overarching goal of intelligent automation is to understand how customer experiences and business outcomes are affected by the behavior of the app or software. More than this, though, it’s about identifying opportunities for improvements and predicting the business impact of those changes.
What are some of the future trends you expect to see related to Software Quality?
The importance of software quality will continue to grow as the pace of digital adoption accelerates. Every digital organization must continuously monitor the performance of digital properties and how users are interacting to ensure it delivers the best possible experience. Here are 5 trends that we believe will happen in the world of QA in the next 3 years:
1. Quality Assurance will become a profit center rather than a compliance function. Unless your software is released first, has an amazing UX, flawless functionality and great responsiveness, your business will likely struggle or fail. But if you manage to achieve those goals, you will succeed. As such, leveraging QA to continuously measure this and predict a hit or a miss is a profit center – not just a compliance function.
2. User Experience is the key differentiator for your business. Your UX is your shop window – it draws your customers and needs to keep them there. It had better be excellent, or you’ll be left behind.
3. Performance. If you have performance delays of greater than 3 seconds at any point, your business will fail. Millennials have little patience, Generation Z has even less! 3 seconds is the amount of time your customers will wait for a delay before heading to a competitor. Better and continuous load and performance testing are needed to ensure scale and responsiveness.
4. The Digital Nemesis. Testing must become even smarter, a digital nemesis can find the weak spots intelligently in any system using AI-powered “chaos engineering,” highlight them and allow them to be fixed before anyone ever knows. This applies to functionality, performance, UX and security.
5. End-to-end Fusion Testing. From hardware to UX. Gone are the days of testing one layer of your stack or one type of testing. Testing the 5G handset, testing the 5G base station, testing the network load, testing the application ability to handle load, functional testing, API testing, performance testing, security testing, testing on iOS, testing android, testing cloud testing Windows etc. etc. etc. But what about testing the entire end-to-end system with all layers, end-to-end workflows and interaction points? Without doing so, we never truly test the system in production; we never truly can isolate a problem because it might not happen without the interaction between different layers or under different interacting tests conditions. So now we need to take testing to the next level – with multi-layer fusion testing – bringing together the skills of the hardware, network, software and UX testers into one end-to-end framework.