AI software testing system and method
AssigneeAppdiff, Inc.
InventorsJason Joseph Arbon, Justin Mingjay Liu, Christopher Randall Navrides
Life of this patent
Estimating the term…
Abstract
A system for performing software testing uses machine learning to extract features from a user interface of an app, classify screen types and screen elements of the user interface, and implement flows of test sequences to test the app. Training is performed to train the system to learn common application states of an application graph and to navigate through an application. In some implementations, the training includes Q-learning to learn how to navigate to a selected screen state. In some implementations, there is reuse of classifiers cross-application and cross platform.
Claims28
An artificial intelligence software testing system to test software applications having a sequence of screens with each screen having a set of screen elements, comprising:
- a set of intelligent machine learning bots trained to:
- crawl through a software application;
- identify screen types and screen elements of the screens using a set of trained classifiers;
- and
- apply test cases to the software application;
- wherein the software application has an associated logical state graph associated with potential user interactions with a graphical user interface and the set of intelligent machine learning bots are trained to determine application states and sequences of states associated with the logical state graph.
An artificial intelligence software testing system to test software applications having a sequence of screens with each screen having a set of screen elements, comprising:
- a set of intelligent machine learning bots trained to:
- crawl through a software application;
- identify screen types and screen elements of the screens using a set of trained classifiers;
- and
- apply test cases to the software application;
- wherein the set of classifiers are trained to recognize screens and screen elements common to a class of software applications having common screen states in a nodal state graph.
An artificial intelligence software testing system to test software applications having a sequence of screens with each screen having a set of screen elements, comprising:
- a set of intelligent machine learning bots trained to:
- crawl through a software application;
- identify screen types and screen elements of the screens using a set of trained classifiers;
- and
- apply test cases to the software application;
- wherein the software application is represented by an abstract node graph and the set of intelligent machine learning bots includes a set of trained machine learning engine each trained for a subgraph of the node graph.
A computer-implemented method to test software applications having a sequence of screens with each screen having a set of screen elements, using a set of intelligent machine learning bots trained to perform a method comprising:
- crawling through a software application;
- identifying screen types and screen elements of the screens using a set of trained classifiers;
- and
- applying test cases to the software application;
- wherein applying test cases includes identifying test cases based on the identified screen types and screen elements, applying the identified test cases to the software application, and reporting test results for the software application.
A computer-implemented method to test software applications having a sequence of screens with each screen having a set of screen elements, using a set of intelligent machine learning bots trained to perform a method comprising:
- crawling through a software application;
- identifying screen types and screen elements of the screens using a set of trained classifiers;
- and
- applying test cases to the software application;
- wherein the software application has an associated logical state graph associated with potential user interactions with a graphical user interface and the method further comprises determining application states and sequences of states associated with the logical state graph.
A computer-implemented method to test software applications having a sequence of screens with each screen having a set of screen elements, using a set of intelligent machine learning bots trained to perform a method comprising:
- crawling through a software application;
- identifying screen types and screen elements of the screens using a set of trained classifiers, including recognizing screens and screen elements common to a class of software applications having common screen states in a nodal state graph;
- and
- applying test cases to the software application.
A computer-implemented method to test software applications having a sequence of screens with each screen having a set of screen elements, using a set of intelligent machine learning bots trained to perform a method comprising:
- crawling through a software application;
- identifying screen types and screen elements of the screens using a set of trained classifiers;
- and
- applying test cases to the software application;
- wherein the method includes representing the software application by an abstract node graph and the set of intelligent machine learning bots includes a set of trained machine learning engines each trained for a subgraph of the node graph.
Dependencies are inferred from the claim text.