Software testing
AssigneeFunctionize, Inc.
InventorsTamas Cser, Jonathon R. Seaton
Life of this patent
Estimating the term…
Abstract
Provided herein is technology relating to testing software and particularly, but not exclusively, to methods for identifying the cause of a failed software test using probabilistic graphical models and/or a rules engine to evaluate and sort test steps by likelihood of failure for dynamic applications.
Claims17
A method for identifying a root cause of a failed software test of a web application comprising a user interface, said method comprising:
- providing a web application comprising a user interface;
- providing a script comprising a series of test steps, wherein each test step comprises an action performed on an element of said user interface;
- running said script on said web application;
- identifying an error step of said script at which a failed software test reports a failure;
- identifying first elements of a first version of said user interface using computer vision and determining element attributes for each element of said first elements;
- identifying second elements of a second version of said user interface using computer vision and determining element attributes for each element of said second elements;
- identifying differences between said first version of said user interface and said second version of said user interface by comparing said element attributes for each element of said first elements with said element attributes for each element of said second elements;
- training a probabilistic model using a plurality of test steps and said differences to produce a trained probabilistic model;
- and
- assigning to each test step and/or to each element of said user interface a likelihood that each test step and/or each element is a root cause of said error step of said failed software test;
- and
- producing a list of suggested test steps and/or elements ranked by said likelihood that each suggested test step and/or element is the root cause of said error step of said failed software test.
A method for correcting a failed software test case configuration comprising a failed test step, the method comprising:
- receiving a list of candidate failed test steps and/or candidate elements of said failed test steps ranked by a likelihood that each candidate failed test step is the root cause of a failed software test;
- providing each candidate failed test step of said list of candidate failed test steps to a Markov decision process to produce a plurality of trial test case configurations for each candidate failed test step;
- executing each trial test case configuration for each candidate failed test step;
- identifying a successful software test;
- identifying a trial test case configuration that produced the successful software test;
- comparing said failed software test case configuration and said trial test case configuration that produced the successful software test to identify differences in the trial test case relative to the failed software test case;
- and
- correcting said failed software test case configuration by replacing a failed step with a corrected step, wherein said corrected step implements said differences in the trial test case relative to the failed software test case.
A method for autonomously identifying failures in a web application comprising a user interface, said method comprising:
- analyzing a web application user interface to identify elements of the user interface;
- analyzing source code of a web application to identify element functions
- associating element functions with elements of the user interface to produce element-function associations;
- inputting web application user interface geometry, text, and images to train a machine learning model;
- and
- inputting said elements, element functions, and element-function associations into said trained machine learning model to identify anomalies in the web application user interface that produce failures in said web application.
Dependencies are inferred from the claim text.