# US 10,871,977 B2 · Automated software script remediation methods and systems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,871,977 B2
- Document ID: US10871977B2
- Status: Granted
- Kind: B2
- Application number: 16/116,642
- Filed: 2018-08-29
- Published: 2020-03-05
- Granted: 2020-12-22
- Earliest claimed: 2018-08-29
- Assignees: Ernst & Young U.S. LLP; Ernst & Young LLP
- Applicants: Ernst & Young U.S. LLP
- Inventors: Justin Hanke; Vikraman Narasimhan
- Web page: https://patentgrep.com/patent/US10871977B2

## CPC

- G06F 11/368: {for test version control, e.g. updating test cases to a new software version}
- G06F 8/38: for implementing user interfaces
- G06F 9/45512: {Command shells}
- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- G06F 16/95: Retrieval from the web
- G06F 18/22: Matching criteria, e.g. proximity measures
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for real-time remediation of a software script includes, during execution of the script, attempting to identify a first user interface (UI) object. In response to failing to identify the first UI object, similarity scores are calculated based on the data of the plurality of UI objects and historical data associated with the first UI object. A second UI object is identified, from the plurality of UI objects, based on the calculated similarity scores. The script and/or an object repository referenced by the script are then automatically modified so that subsequent execution of the script includes attempting to identify the second UI object instead of the first UI object.

## Claims

### Claim 1

A method, comprising:
during execution of a script, attempting to identify a first user interface (UI) object;
in response to failing to identify, at a first time, the first UI object:
(i) calculating a first plurality of similarity scores, each similarity score from the first plurality of similarity scores associated with a UI object from a plurality of UI objects, the calculating based on: (1) comparisons between properties of the plurality of UI objects and a plurality of historical properties associated with the first UI object, and (2) at least one weight,
(ii) identifying a second UI object, from the plurality of UI objects, based on the second UI object having a highest score from first plurality of similarity scores, and
(iii) automatically modifying the script to include a modified value such that subsequent execution of the script includes attempting to identify the second UI object instead of the first UI object; and
during the subsequent execution of the script, at a second time after the first time, and in response to an error triggered by the modified value:
iterating step (i) to produce a second plurality of similarity scores; and
blocking subsequent use of the second UI object when the second UI object has a highest score from the second plurality of similarity scores.

### Claim 2 (depends on 1)

The method of claim 1, wherein the script is one of a test automation script or a robotics process automation script.

### Claim 3 (depends on 2)

The method of claim 2, wherein the calculating the first plurality of similarity scores is performed according to a predetermined, configurable protocol.

### Claim 4 (depends on 1)

The method of claim 1, wherein automatically modifying the script includes replacing a representation of the first UI object with a representation of the second UI object.

### Claim 5 (depends on 1)

The method of claim 1, wherein the execution of the script is performed on a second version of a web page, the second version of the web page being different from an earlier, first version of the web page, the plurality of UI objects being included in the second version of the web page, and the first UI object is included in the first version of the web page.

### Claim 6 (depends on 1)

The method of claim 1, wherein the execution of the script is performed on a second version of a web page, the second version of the web page being different from an earlier, first version of the web page, the plurality of UI objects being included in the second version of the web page, and the plurality of historical properties is further associated with the first version of the web page.

### Claim 7 (depends on 1)

The method of claim 1, wherein each similarity score from the first plurality of similarity scores is uniquely associated with an associated UI object from the plurality of UI objects.

### Claim 8 (depends on 1)

The method of claim 1, wherein the at least one weight is associated with at least one historical property from the plurality of historical properties associated with the first UI object.

### Claim 9 (depends on 1)

The method of claim 1, wherein the subsequent execution of the script occurs automatically, without restarting the script.

### Claim 10 (depends on 1)

The method of claim 1, wherein the automatically modifying is of the script, the method further comprising further modifying the script in response to failing to identify the second UI object during the subsequent execution.

### Claim 11 (depends on 1)

The method of claim 1, wherein the at least one weight includes a user-customizable weight.

### Claim 12 (depends on 1)

The method of claim 1, wherein the first UI object and each UI object from the plurality of UI objects have a common object type.

### Claim 13 (depends on 1)

The method of claim 1, wherein the calculating the first plurality of similarity scores is further based on a hash map.

### Claim 14 (depends on 1)

The method of claim 1, further comprising gathering the plurality of UI objects using web scraping, prior to calculating the first plurality of similarity scores.

### Claim 15

A system, comprising:
a processor; and
a non-transitory processor-readable medium storing instructions to cause the processor to:
attempt to identify a first UI object, referenced by a script;
in response to failing to identify, at a first time, the first UI object:
(i) calculate a first plurality of similarity scores, each similarity score from the first plurality of similarity scores associated with a UI object from a plurality of UI objects, the calculating based on: (1) comparisons between properties of the plurality of UI objects and a plurality of historical properties associated with the first UI object, and (2) at least one weight,
(ii) identify a second UI object, from the plurality of UI objects, having a highest similarity score from the first plurality of similarity scores,
(iii) automatically modify the script to include a modified value, such that subsequent execution of the script includes identify the second UI object in lieu of the first UI object; and
during the subsequent execution of the script, at a second time after the first time, and in response to an error triggered by the modified value:
iterate step (i) to produce a second plurality of similarity scores; and
block subsequent use of the second UI object when the second UI object has a highest score from the second plurality of similarity scores.

### Claim 16 (depends on 15)

The system of claim 15, wherein the script is one of a test automation script or a robotics process automation script.

### Claim 17 (depends on 16)

The system of claim 16, wherein the instructions to cause the processor to calculate the first plurality of similarity scores include instructions to cause the processor to calculate the first plurality of similarity scores according to a predetermined, configurable protocol.

### Claim 18 (depends on 15)

The system of claim 15, wherein instructions to cause the processor to calculate the first plurality of similarity scores include instructions to cause the processor to calculate the first plurality of similarity scores using one of a Levenshtein edit distance, a Cosine similarity, a machine learning model, or a semantic-based similarity.

### Claim 19 (depends on 15)

The system of claim 15, wherein the subsequent execution of the script is performed on a second version of a web page, the second version of the web page being different from an earlier, first version of the web page, the plurality of UI objects being included in the second version of the web page, and the first UI object being included in the first version of the web page.

### Claim 20 (depends on 15)

The system of claim 15, wherein the subsequent execution of the script is performed on a second version of a web page, the second version of the web page being different from an earlier, first version of the web page, the plurality of UI objects being included in the second version of the web page, and the plurality of historical properties being further associated with the first version of the web page.

### Claim 21

A non-transitory processor-readable medium storing code representing instructions to be executed by a processor, the code comprising code to cause the processor to:
attempt to identify a first UI object;
in response to failing to identify, at a first time, the first UI object:
(i) calculate a first plurality of similarity scores, each similarity score from the first plurality of similarity scores associated with a UI object from a plurality of UI objects, the calculating based on: (1) comparisons between properties of the plurality of UI objects and a plurality of historical properties associated with the first UI object, and (2) at least one weight,
(ii) identify a second UI object, from the plurality of UI objects, having a highest similarity score from the first plurality of similarity scores, and
(iii) automatically modify the script to include a modified value, such that execution of the script subsequent to the automatic modification includes identify the second UI object in lieu of the first UI object; and
during the subsequent execution of the script, at a second time after the first time, and in response to an error triggered by the modified value:
iterate step (i) to produce a second plurality of similarity scores; and
block subsequent use of the second UI object when the second UI object has a highest score from the second plurality of similarity scores.

### Claim 22 (depends on 21)

The medium of claim 21, wherein the script is one of a test automation script or a robotics process automation script.

### Claim 23 (depends on 22)

The medium of claim 22, wherein the code further comprises code to cause the processor to:
detect that the highest similarity score is less than a predetermined threshold value; and
repeat (i) and (ii) in response to detecting that the highest similarity score is less than the predetermined threshold value.

### Claim 24 (depends on 21)

The medium of claim 21, wherein calculating the plurality of similarity scores is performed using one of a Levenshtein edit distance, a Cosine similarity, a machine learning model, or a semantic-based similarity.

### Claim 25 (depends on 21)

The medium of claim 21, wherein automatically modifying includes replacing a representation of the first UI object with a representation of the second UI object.

### Claim 26 (depends on 21)

The medium of claim 21, wherein the execution of the script is performed on a second version of a web page, the second version of the web page being different from an earlier, first version of the web page, the plurality of UI objects being included in the second version of the web page, and the first UI object is included in the first version of the web page.

### Claim 27 (depends on 21)

The medium of claim 21, wherein the execution of the script is performed on a second version of a web page, the second version of the web page being different from an earlier, first version of the web page, the plurality of UI objects being included in the second version of the web page, and the plurality of historical properties is further associated with the first version of the web page.
