# A Survey on Formal Verification and Validation Techniques for Internet of Things
## 6 Use of AI in Software Testing
### Examples of Tools  
There are many AI-based \(TST_{NG}\) tools available in the market that can help improve the efficiency and effectiveness of software \(TST_{NG}\). These tools use AI to automate various \(TST_{NG}\) tasks, such as test case generation, test execution, and defect detection. Some examples include the following:  
* **Applitools** is a visual \(TST_{NG}\) tool that employs AI to automatically detect visual defects and inconsistencies in web and mobile applications. By utilizing computer vision algorithms, Applitools can compare screenshots of an application across various devices, browsers, and resolutions to identify differences that may indicate a defect. The tool can integrate with popular \(TST_{NG}\) frameworks, such as Selenium and Appium, to seamlessly incorporate visual \(TST_{NG}\) into existing processes. Applitools also provides a dashboard that highlights visual issues and streamlines defect tracking and management. Testers can leverage Applitools to enhance their visual \(TST_{NG}\) coverage and accuracy, leading to better software products and increased customer satisfaction. * **Appvance IQ** is an AI-based \(TST_{NG}\) tool that utilizes machine learning algorithms to automatically generate and execute test cases across multiple platforms and environments. The tool can analyze user behavior to generate test cases that cover the most-critical and -common use cases. Appvance IQ can also detect defects and vulnerabilities and provide recommendations for improving software quality. The tool provides a dashboard that simplifies defect tracking and management and offers detailed reports and analytics on \(TST_{NG}\) activities. Testers can optimize their test coverage and accuracy while saving time and effort on test case creation and maintenance by utilizing Appvance IQ. * **Functionize** is an AI-based \(TST_{NG}\) tool that allows testers to autonomously generate and execute test cases and detect and prioritize defects. Using advanced machine learning algorithms, Functionize can analyze user behavior to generate test cases  
Figure 4: Advantages of the use of AI in software \(TST_{NG}\). that cover critical and common use cases and automatically prioritize defects based on severity. Functionize provides a dashboard that simplifies defect tracking and management and offers detailed reports and analytics on \(TST_{NG}\) activities. * **Mabl** is an AI-based \(TST_{NG}\) tool that enables testers to automatically identify and prioritize issues and generate and maintain test cases. The tool uses advanced machine learning algorithms to analyze user behavior and generate test cases that cover critical and common use cases. Mabl can also detect issues and vulnerabilities and prioritize them based on severity, reducing the effort required for manual defect triage. The tool provides a dashboard that simplifies defect tracking and management and offers detailed reports and analytics on \(TST_{NG}\) activities. * **ReTest** is an artificial-intelligence-based \(TST_{NG}\) solution that allows testers to assess software requirements and produce test cases that cover all potential combinations of input parameters. The program analyzes requirements and generates test cases that cover all conceivable combinations of input parameters, ensuring complete test coverage. ReTest can also automatically find problems and vulnerabilities and provide insights and recommendations for improving software quality. The tool provides a dashboard that simplifies defect tracking and management and offers detailed reports and analytics on \(TST_{NG}\) activities. Testers can increase their \(TST_{NG}\) productivity and effectiveness while ensuring complete test coverage and reducing the risk of faults and vulnerabilities. * **Sauce Labs** is an AI-based \(TST_{NG}\) tool that automates \(TST_{NG}\) for web and mobile applications. The tool uses advanced machine learning algorithms to automatically generate and execute test cases across multiple platforms and environments, ensuring complete test coverage.