By Olivia Cahoon
Today’s application development is increasing complex, requiring testing methods capable of repetitive, programmable decision making. Software test automation tools manage applications and architectures found in modern application portfolios to eliminate manual methods, increase test coverage, and enable AI-driven features.
According to a recent Gartner Study, Critical Capabilities of Software Test Automation, application leaders creating strategies for digital business must address a range of testing use cases across the enterprise. It also found that strong adoption of DevOps increases the need for higher levels of automation and puts pressure on organizations with low automation rates.
Before an application is released into production, automation tools perform diagnostics on software performance, functionality, and stability. This ensures a quality product that reduces the risk of customer dissatisfaction, downtime, or costly data privacy/compliance breaches, says Jeff Scheaffer, GM, continuous delivery, CA Technologies.
“In addition to being the foundation for success, automation is essential for enterprises to succeed in the digital age. With DevOps and agile taking center stage, quality at speed is a critical,” comments Andreas Golze, Sr. VP, quality engineering and assurance, Cognizant. Unlike traditional, manual quality assurance (QA) processes, software test automation tools/machines continuously test, enabling faster time to market and eliminating human error.
Faster testing speeds, higher efficiency, and lower costs drive demand for software test automation. According to Scheaffer, organizations adopting DevOps and agile development methods now realize that testing practices have not kept pace with the rate of change in development. This produces applications that are developed faster but cannot be tested at the same time—resulting in one of two things—slowing down the entire release process or knowingly releasing software that hasn’t been tested thoroughly.
Fortunately, it’s not necessary to sacrifice on speed or quality. “Testing is evolving beyond just simple test automation to a paradigm—continuous testing,” offers Scheaffer. It enables testing to be ongoing and constant in the software development lifecycle, with applications automatically tested and evaluated even as code is written. “Test cases are designed even before that—it can be automatically generated in the planning phase.”
Reduced cost is also a driving factor for software test automation as developers and QA testers seek a more cost-effective solution to efficiently accelerate the software development and deployment process, all while maintaining quality. According to Bria Grangard, product marketing manager, SmartBear Software, managers often pressure developers and QA testers to deliver software quickly without comprising quality, but manual software testing is costly, time consuming, and prone to human error—driving the need for automated software testing.
“The reusability and reliability of automated testing, coupled with the ability to simultaneously run tests in different environments, helps to reduce test run times from days to hours and helps deliver quick feedback, which would be nearly impossible by testing manually,” offers Grangard.
A variety of software development types rely on software test automation for improved quality, efficiency, resilience, and agility.
Automated testing services are at an all-time high as the days of manual quality testing are left behind. Tests or tasks that require multiple rounds of testing, are repetitive, or have programmable decision making are good candidates for automation, says Golze. This includes solutions built on APIs or Microservices, desktop applications, load and performance tests, native mobile apps, Internet of Things (IoT) devices, and websites. He adds, “in the digital age, testing is increasingly about one business process tested by a variety of data, device, and software combinations.”
Automated software testing is often applied to test suites with numerous test cases, which are run several times. By performing the same steps and recording detailed results, automated testing frees testers from laborious, repetitive manual tests, says Grangard. “When there is a need for comprehensive test coverage, automated testing helps run complex tests in different environments and on different devices, improving software quality.”
Performance and load testing is performed by simulating web application tests run simultaneously by multiple users. Additionally, Grangard says speeding regression testing cycles becomes simpler as modified applications are retested with existing frameworks. While test automation is industry agnostic, she believes it is especially beneficial in highly regulated industries where software accuracy and quality are integral, such as health institutions and financial services.
According to Arun Kumar Melkote, global head, application engineering and DevOps, Wipro Limited, enterprise systems with multiple integration and interaction points turn to automation due to complexity. Additionally, products with frequent releases significantly affect the time to market. “By bringing in automated regression testing, we can bring in efficiencies and drive speed at scale, irrespective of roles or technologies,” he explains. Service virtualization reduces dependency on interacting systems and trained test systems are deployed to test the end product.
The amount of automation necessary for proper test execution is also important. “While we advocate a fully automated continuous testing approach, it’s important to walk before you run,” comments Scheaffer. If a company’s testing practices are largely manual today, he recommends starting with the most acute pain point.
For example, if designing test cases is time consuming and cumbersome, Scheaffer suggests focusing on automated, model-driven test case design. Other organizations have a greater challenge generating test data—in which case he believes an automated test data management solution may be a better starting point.
Supporting AI-Driven Functions
Software test automation tools are evolving to support AI-driven testing functions and maintenance.
Tools leveraging AI/ machine learning (ML) create reliable tests while automatically creating test scenarios and adding it to the CI/CD pipeline, says Grangard. AI/ML is also used to determine the minimum number of set cases to be executed for code modifications and notifies users of test coverage gaps. “However, AI/ML testing capabilities used to be backed by a large number of data sets and extensive training.”
While most automation tools aspire to integrate AI-driven testing, Ajay S. Walgude, VP/head of testing, UK and Central Europe, Capgemini Financial Services, says only a few niche tools include AI in off-the-shelf offerings. “Few vendors have clearly articulated their AI agenda or use ML, but many SI providers have built AI-driven testing solutions as part of their service offering.” He believes today’s AI features in software test automation tools are primarily in the UI domain, although some vendors are exploring AI and runtime self-healing.
As AI/ML matures, there are two ways testing tools need to evolve. First, Scheaffer believes testing tools should incorporate AI/ML into the continuous testing practice. “The first promises to further improve the efficiency, speed, and depth of continuous testing practices,” he explains. This includes functions for using AI to determine the most optimal test cases, learning from the real world, and automatically improving those test cases.
Second, testing tools need to evolve to test AI/ML applications themselves, which represents a significant change in how testing is done. While traditional applications have a finite number of functions and scenarios that are tested, Scheaffer says AI applications are both nondeterministic and constantly evolving. “AI apps need to be evaluated for ethics, bias, and compliance. Incorporating AI into testing tools themselves will of course help test other AI applications.”
Tips for Modernizing AppDev
Currently, a variety of interpretations surround the definition of application development and IT modernization. This ranges from upgrading to the latest ERP, re-architecting IT real estate, and moving off legacy systems. According to Melkote, it’s all-encompassing and is no longer only a CIO charter, given the far reaching consequences across business divisions and stakeholders.
“To accelerate the digital transformation, application/IT modernization is a must-do CXO imperative. Modernization is the journey and foundation to build smart applications, which are intelligent, autonomous, and context aware,” says Melkote. It also needs to consider infrastructure, data, applications, and processes across the extended enterprise.
But modernizing and transforming application development is complex. Multiple factors affect quality where environments may need altering, requirements updated, test plans adjusted, and pressure on time and costs, says Golze. These factors significantly impact how developers and QA professionals respond.
He explains that application leaders need to ensure release readiness, stay in control of change, and choose among the bevy of frameworks—test driven development, automation driven testing, platform based delivery—available to address complexity.
Grangard recommends vendors ask customers why they want to automate, rather than what they want to automate. “These customer insights into the shift in the testing culture and processes need to be better understood by vendors, and then used to educate the application leaders who are responsible for modernizing application development on best practices they can use to improve their application delivery strategies.”
Providing end-to-end testing solutions that cater to the UI and API layers of software applications is a large task. As a result, Grangard believes it’s important to emphasize adequate testing as a necessity instead of a functionality. With the advent of Shift-Left, where developers are involved in testing and QA, there is also a need for application development teams to plan well in advance and diagnose gaps in software development lifecycle.
According to Scheaffer, when selecting testing tools application leaders should look for model-based testing or the ability to automatically generate test cases directly from the requirements phase. The ability to quickly and easily generate and manage synthetic test data is also critical to avoid the use of sensitive PLL data in testing and to help speed the testing process. He comments, “having access to virtual environments that can simulate third party systems and APIs helps to reduce wait time and costs.” Lastly, the ability to automatically initiate performance, functional, and UI testing is also key.
CA Technologies offers next-generation, integrated continuous testing solutions that automate difficult testing activities from requirements engineering to test design automation, service virtualization, and intelligent orchestration. Solutions include CA’s Agile Requirements Designer, Application Test, Continuous Delivery Director, Service Virtualization, and Test Data Manager.
“Built on end-to-end integrations and open source, CA Technologies’ comprehensive solutions help organizations eliminate testing bottlenecks impacting their DevOps and continuous delivery practices to test at the speed of agile, and build better applications faster,” says Scheaffer.
Capgemini offers multiple test automation accelerators that serve existing test automation tools. Smart QA is designed to help financial service institutions maintain the required innovation for addressing digital disruption and DevOps demands. It offers smart assets, zero touch testing, smart environment provisioning, and 360-degree view insights and analytics.
The Capgemini Intelligent Test Automation Platform enables customers to run parallel tests, automate test resource management, and continuously test on an IT infrastructure on-premises, cloud, or on a designated server farm. The platform uses unit test results, code coverage analysis, and prediction algorithms to optimize test packs.
Cognizant’s Quality Engineering and Assurance Offerings include Business Change Assurance, Technology Change Assurance, Customer Experience Assurance, and Intelligent and Automated QA. Business Change Assurance includes tools for business process assurance, business process testing, user acceptance testing, and assurance for blockchain.
Technology Change Assurance offers IoT assurance, mobility assurance, cloud migration assurance, big data assurance, and technology assurance labs. According to Golze, Customer Experience Insurance includes performance testing, security testing, accessibility testing, and crowd-sourced CX assurance.
SmartBear Software provides a portfolio of test automation solutions addressing the needs of various teams, development methodologies, applications, and technologies. Its test automation solutions include TestComplete 12.50, TestLeft 2.50, CrossBrowser Testing, and SoapUI Pro 2.4.0. Solutions are targeted toward several markets including designers, QA engineers, QA managers, and software developers. According to Grangard, all SmartBear products are available for free trials, every customer is assigned a dedicated customer success manager and offered free support and training.
Wipro offers three key automation platforms—assureNXT, intelliassure, and Wipro Integrated DevOps Platform (WID). assureNXT is a next-generation QA delivery platform built on a foundation of tools, IPs, and best practices to address the needs of traditional and agile delivery. It’s designed to ensure business application resiliency through highly automated processes, analytics, and end-to-end collaboration in a standalone or integrated manner.
intelliassure is a next-generation IT Wellness platform designed to improve predictability in application quality, reduce cost of quality, and build self-healable quality process. “intelliassure uses the principles of AI and is built on Wipro’s proprietary Cognitive Automation platform—Wipro HOLMES,” adds Melkote.
WID accelerates the software delivery process by providing a comprehensive and continuous delivery environment across on-premise and public/private cloud.
Software test automation allows developers and testers to expedite the creation and execution of functional testing, increasing test coverage and saving time and money compared to manual testing.
Aug2018, Software Magazine