In a digital-first world, software quality is vital for modern manufacturing
Software quality now determines business success and how organizations can take steps to improve it. That’s according to Dr. Gareth Smith, general manager of software-test automation at Keysight Technologies. Here, find a discussion that dives deeper into the importance of sound software.
Smart Industry: Why is software quality important for the modern manufacturer?
Gareth: Software is everywhere in manufacturing, from the systems-building products to being part of the finished item, like a car. Therefore, the quality of software is mission-critical for manufacturers. For example, an undetected flaw can trigger system outages, and a misconfiguration of cloud platforms can result in a data breach, data loss, or service outages. 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. The quality of software is critical in a digital-first world.
Smart Industry: How can organizations improve the quality of their software?
Gareth: Software is everywhere in manufacturing, spanning various systems including ERP, CMMS, CAM, EHS and ETO. Smart-manufacturing environments consist of many different complex software deployments; ensuring that these work, both in isolation and in combination, is mission critical. It requires continuous testing and monitoring to ensure the software performs exactly as expected at all times and for every update of any one of these systems.
Intelligent testing learns from historical bug patterns and behaviors to automatically generate and modify tests that focus on use cases and scenarios that are most critical to the manufacturer. The huge range and variety of technologies used in smart-manufacturing environments need intelligent testing systems to flexibly automate and validate all technology types to prevent the need for many different siloed frameworks.
Smart Industry: How is DevOps impacting testing strategies and what role does an intelligent automation platform play?
Gareth: 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, organizations 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.
AI-powered software testing is now vital as it automates the entire testing lifecycle from test-case creation through test execution to automated results analytics. This helps manufacturers accelerate the pace of development and provides visibility and insights into how users navigate digital properties. These insights are then fed back into the test automation, significantly improving the quality and reliability of software.
Smart Industry: How is AI changing test-automation strategies?
Gareth: 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, machine learning, 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.
Smart Industry: Why is there a shift toward continuous quality?
Gareth: 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. With the increasing pace of digital transformation, software 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.
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 SDLC. It reduces the risk of security vulnerabilities and bugs by helping find and fix problems as early as possible.
Smart Industry: To improve the quality of software, do you need to add more technical resources?
Gareth: 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.
Some intelligent automation platforms allow citizen developers to easily use no-code solution that draw on AI and analytics to automate test execution across the entire testing process. This 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.
Smart Industry: What are some of the future trends you expect to see related to software quality?
Gareth: 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 they deliver the best possible experience.
Here are five trends that we believe will happen in the world of QA in the next three 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 three seconds at any point, your business will fail. Millennials have little patience; Generation Z has even less! Three 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.