Artificial intelligence has come a long way. Maybe you’ve seen the recent video of choreographed dancing robots? It’s amazing how agile and articulated these robots have become to do these fun movements with such accuracy and efficiency. It’s a huge accomplishment over performing simple tasks with limited mobility.
But in this orchestrated routine, within a very controlled environment, they are doing exactly what they’ve been programmed to do. They aren’t really exhibiting their own form of intelligence or decision-making in determining what moves to perform with which verse in the music.
They do have smart control systems that provide balance and orientation, but it’s not the same as independently choosing when to do a high kick or jump based on what happens in the music.
Some of these robots also include additional capabilities that allow them to perform certain tasks, make specific choices, and respond to their surroundings. Artificial intelligence (AI) adds the dimension of responding automatically to external inputs and real-time changes. This makes it possible for the robots to assess modifications in the environment as they occur, and to generate an appropriate reaction. While the robotics field is a prime example of AI use, there are many other applications as well.
One key area where AI has demonstrated significant benefits is automated software testing. Every piece of code created needs to be tested to verify that it meets requirements and delivers the expected results.
Performing manual testing to accomplish these objectives is tedious and time-consuming. Automating your application testing accelerates the ability to verify and validate the code.
Adding AI to the mix can further enhance the process to make finding and fixing bugs faster and easier, even when the environment is unpredictable. As software increases in complexity, automation must also scale to provide more capabilities to identify and resolve issues earlier in the workflow.
It’s clear that having testing software that can apply decision-making based on changes to code or tests can benefit a CI/CD workflow and improve DevOps teams’ productivity, so it makes sense that AI has been finding its way into multiple tools.
In his blog, What is Artificial Intelligence in Software Testing?, Igor Kirilenko, Parasoft’s VP of Development, explains that these AI capabilities “can review the current state of test status, recent code changes, code coverage, and other metrics, decide which tests to run, and then run them,” while machine learning (ML) “can augment the AI by applying algorithms that allow the tool to improve automatically by collecting the copious amounts of data produced by testing.” That covers a lot of ground!
This has evolved into incorporating decision-making capabilities that use observed data into the software testing tools, including reasoning and learning in real time. With AI and ML assisting, testing becomes faster and easier to shift left, providing earlier defect remediation and reducing risk for deliveries. By collecting and incorporating test data, machine learning can effectively update and interpret certain software metrics that show the state of the application under test.
Parasoft has incorporated multiple innovations over the years for both AI and ML into several automated testing solutions to enable smarter test creation and execution across multiple levels of the testing pyramid. We’ve invested significant effort to make testing easier for our customers.
In 2017, Parasoft introduced AI testing capabilities into Parasoft Jtest to improve productivity for Java developers and testers working with static analysis, unit testing, code coverage and traceability, and more. This tool includes the unit test assistant for JUnit, to achieve higher code coverage in less time. One key feature is its ability to suggest the use of stubs and mocks to ensure code isolation for testing, then automatically create those mocks and stubs to simplify test creation.
Another AI-enabled feature of Jtest is its ability to detect code without existing test coverage and determine what parameters, stubs, and mocks are needed for automatically creating new tests to cover those code segments. This facilitates increased code coverage by identifying gaps for the application.
AI also improves the ability to benefit from static analysis by classifying the findings based on observed behavior and prioritizing those findings for further investigation. Parasoft’s AI identifies hotspots within the code while machine learning uncovers what is important to the developers by observing the team’s interaction with the violations and code base. This significantly reduces manual efforts by alerting developers with the most relevant warnings for areas of potentially high-risk security vulnerabilities or low-quality code.
AI and ML were also added to our codeless API testing solution, Parasoft SOAtest, in 2018, to enable testers to generate meaningful, reusable, and maintainable API tests from UI usage with ease and without scripts. This capability also helps less technical teams expand their testing strategy beyond UI tests, improving overall test coverage and reducing their learning curve.
Most recently, in 2019, Parasoft Selenic was introduced to improve the quality and maintenance of Selenium web UI tests. The AI in Selenic identifies issues with locators, wait times, and other factors during test runtime and automatically self-heals the broken tests to allow the execution to complete. Then it provides you with a list of recommended fixes that you can easily incorporate directly into the test code via Selenic’s IDE integrations with Eclipse and IntelliJ. This is a huge timesaver for updating web UI testing flows.
But creation and maintenance of test automation is only the first step. The key to unlocking continuous testing is having an available, stable, and controllable test environment. Service virtualization makes it possible to simulate a wide range of constraints in your test environments, whether due to unavailability or uncontrollable dependencies. Parasoft Virtualize leverages AI to develop data models from the service interactions, then applies ML, using those models to learn the data scenarios in real-time as it monitors different usage patterns from within the test environment.
Due to the complex nature of APIs and frequent changes to UIs, test suites affected by changes need to be identified, reviewed, and updated regularly. Doing this work manually is very tedious and subject to human error.
To mitigate UI changes, Parasoft Selenic includes AI heuristics that diagnose test failures and generate recommendations on how to fix the tests. Reconcile API changes quickly with Parasoft SOAtest’s Change Advisor, which proactively scans API interfaces, looks for changes in the services, and then identifies how the test assets are impacted by those changes and helps users easily update them.
To save time in retesting code that has changed, three of the Parasoft products mentioned above (Jtest, SOAtest, and Selenic) incorporate an AI-powered capability called test impact analysis which correlates the appropriate tests in your suite to the code base for smart test execution.
When the code is changed, Parasoft tools can identify the changes between software builds and map them to specify which tests need to be executed to verify those changes.
Now you can execute the right tests at the right time, and complete testing faster. Who doesn’t love having more thorough testing in less time?
With tedious and repetitive tasks continuing to dominate software testing, there are many opportunities to apply artificial intelligence and machine learning to software test automation to help users more rapidly adapt and respond to modern software development challenges.
As a groundbreaking innovator in this field, Parasoft continues to add efficiency and intelligence to software testing tools by leveraging these advanced methods. Parasoft tools use AI and ML to assist and augment your application dev and test teams by:
Want to learn more about adding AI-powered automated testing to your software development workflow? Contact us with your area of interest, and we’d be happy to set up a personalized demo.
Joy Ruff is a Product Marketing Manager, focused on product positioning and marketing content for Parasoft's functional testing tools. With over 25 years of experience, she has provided technical marketing and sales enablement for various enterprise hardware and software solutions.