The number of software developers is expected to exceed 28 million by 2024. Additionally, just in 2021, more than 2 million mobile apps were released. To ensure that software releases perform adequately on their functionality, performance, and security, they must be tested rigorously.
However, testing is time-consuming, and throwing more testers at it is not the most efficient way. Artificial intelligence (AI) can be used in testing tools to increase the efficiency and effect of testing.
In this article, we will look at how AI can be used in software testing and the benefits and challenges of AI testing.
How can AI be used in software testing?
Smart test selection
AI can determine the necessary tests and remove the redundant ones that create noise because AI can:
- Collect and analyze information automatically,
- Analyze the results of tests.
For example, Deep Exploit is an AI-based penetration testing tool that uses reinforcement learning which means as testers use it more, it becomes more accurate. Examples of this tool’s capabilities are:
- Intelligence gathering,
- Threat modeling,
PULSE is an AI-enabled automated API testing tool provided by Testifi. PULSE creates tests, detects errors, analyzes the results, and returns them in a dashboard format by just analyzing your API documentation. Industry leaders such as Amazon and BMW use Testifi services.
Machine learning(ML) can benefit software testing by automatically:
- Generating test cases,
- Auditing the current tests for coverage, performance, and completeness,
- Run tests.
An ML model must first be trained using the dataset of the organization. The dataset should include the following:
- Test cases,
After the training data is supplied to the ML model, its accuracy must be measured to ensure that it works adequately. ML models must be continuously updated using new data to improve their accuracy.
Computer vision bots
Elements of a code, such as a shopping cart, login box, etc., can be labeled, and computer vision bots can be used on the labeled elements of a code to detect changes and adopt the tests. The bots can be trained using the deep neural network method, which enables them to recognize the elements and maintain the test even if the code changes. You can watch the following video to see computer vision bots in action:
4 Benefits of AI in software testing
1- Faster test execution
AI can reduce the time that tests require to be executed by :
- Nullifying or removing duplicate tests,
- Improve test data management flow by ensuring high-quality data reach the test cases first.
2- Better test maintenance
Software codes change a lot, and when they do, tests can break. They must be updated again to ensure compatibility with the new source code. This causes a significant increase in time and cost of test maintenance. However, AI can reduce the effort and time of test maintenance using computer vision bots and smart test selection.
3- Increase test coverage
AI can examine the conducted exploratory tests to create new tests to improve the test coverage. It can be coupled with software testing metrics to identify the probability and severity of breaks in different parts of the software.
4- Test data generation
Machine learning can create test data similar to production data, such as profile pictures, age, and weight. The test data can be used for the following:
- Training ML models for testing,
- Directly testing the software.
3- Challenges of AI in software testing
1- Data availability
AI models require a substantial amount of high-quality data before going into production. Otherwise, developers have the risk of “garbage in, garbage out”.
Recommendation: As mentioned before, ML models can generate data similar to a sample. They can be used for training AI models. For more on this topic, read Synthetic Data Generation: Techniques, Best Practices & Tools.
2- Lack of generality
Most optimization issues in search-based software testing need the AI algorithm to look for a solution thoroughly. They can provide adequate solutions for specific problems; however they can’t be generalized, which reduces their use cases.
Recommendation: There is no direct solution to this problem. When the model is developed, developers should try to make the model as flexible as possible and identify methodologies to prevent generality loss.
3- Computationally expensive
Machine learning & deep learning are computationally expensive to implement. It is estimated that the computational resources for developing a large AI model have roughly doubled every 3.5 months between 2012 to 2018. The high computation cost has made some AI models developed by Facebook and Google economically infeasible to run.
Recommendation: Actions that can be taken to reduce the cost of computation are:
- Investing in the most advanced Graphical Processing Units (GPU) and Tensor Processing Units (TPU)
- Using GPU/CPU memory consumption estimation tools,
- Adopting a Hybrid Cloud infrastructure
If you have further questions concerning how AI is used in testing, you can reach us:
Cem has been the principal analyst at AIMultiple since 2017. AIMultiple informs hundreds of thousands of businesses (as per similarWeb) including 60% of Fortune 500 every month.
Cem's work has been cited by leading global publications including Business Insider, Forbes, Washington Post, global firms like Deloitte, HPE, NGOs like World Economic Forum and supranational organizations like European Commission. You can see more reputable companies and media that referenced AIMultiple.
Throughout his career, Cem served as a tech consultant, tech buyer and tech entrepreneur. He advised businesses on their enterprise software, automation, cloud, AI / ML and other technology related decisions at McKinsey & Company and Altman Solon for more than a decade. He also published a McKinsey report on digitalization.
He led technology strategy and procurement of a telco while reporting to the CEO. He has also led commercial growth of deep tech company Hypatos that reached a 7 digit annual recurring revenue and a 9 digit valuation from 0 within 2 years. Cem's work in Hypatos was covered by leading technology publications like TechCrunch and Business Insider.
Cem regularly speaks at international technology conferences. He graduated from Bogazici University as a computer engineer and holds an MBA from Columbia Business School.
To stay up-to-date on B2B tech & accelerate your enterprise:Follow on
Next to Read
Your email address will not be published. All fields are required.