IP Library Granted Patent US 10,922,207
Granted Patent B2
US 10,922,207 · App. 16/281,710 · Granted Feb 16, 2021

Method, apparatus, and computer-readable medium for maintaining visual consistency

Inventors: Timothy Sneed (Beachwood, NJ); Bruce Kratz (Moorestown, NJ)
Assignee: SPARTA SYSTEMS, INC.
G06F11/3604G06F11/3688
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,922,207
App. No.
16/281,710
Granted
Feb 16, 2021
Kind
B2
Abstract

An apparatus, method and computer-readable medium for maintaining visual consistency of a presentation layer of an application, including receiving images and associated metadata from client-side computing devices, the associated metadata indicating a corresponding feature and a corresponding state for each image, retrieving a baseline image corresponding to each image from a server-side memory based on the corresponding feature and the corresponding state for each image, performing a visual regression analysis between each image and the corresponding baseline image to determine values of indicators, and transmitting alerts to client-side computing devices based at least in part on a determination that a value of an indicator is outside of a predetermined range of values or does not match an expected value of the indicator.

Claims (90)

1. A method executed by one or more server-side computing devices for maintaining visual consistency of a presentation layer, the method comprising:

receiving, by at least one of the one or more server-side computing devices, one or more images and associated metadata from one or more client-side computing devices, the associated metadata indicating a corresponding feature and a corresponding state for each image in the one or more images;

retrieving, by at least one of the one or more server-side computing devices, a baseline image corresponding to each image in the one or more images from a server-side memory based on the corresponding feature and the corresponding state for each image;

performing, by at least one of the one or more server-side computing devices, a visual regression analysis between each image in the one or more images and the corresponding baseline image to determine one or more values of one or more indicators;

identifying, by at least one of the one or more server-side computing devices, at least one key performance indicator in the one or more indicators based at least in part on one or more user settings associated with the one or more client-side computing devices;

determining, by at least one of the one or more server-side computing devices, whether at least one value of the at least one key performance indicator is outside of a predetermined range of values defined in the one or more user settings or does not match an expected value defined in the one or more user settings; and

transmitting, by at least one of the one or more server-side computing devices, the one or more alerts to at least one of the one or more client-side computing devices based at least in part on a determination that the at least one value of the at least one key performance indicator is outside of the predetermined range of values defined in the one or more user settings or does not match the expected value defined in the one or more user settings.

2. The method of claim 1 , further comprising:

receiving, by at least one of the one or more server-side computing devices, one or more baseline images and associated baseline metadata from at least one of the one or more client-side computing devices;

analyzing, by at least one of the one or more server-side computing devices, the associated baseline metadata to identify a corresponding feature and a corresponding state for each baseline image in the one or more baseline images; and

storing, by at least one of the one or more server-side computing devices, each baseline image in the one or more baseline images in the server-side memory, each baseline image being associated with the corresponding feature and the corresponding state in the server-side memory.

3. The method of claim 1 , further comprising, subsequent to receiving one or more images and associated metadata from one or more client-side computing devices:

persisting, by at least one of the one or more server-side computing devices, each image in the one or more images to the server-side memory; and

transmitting, by at least one of the one or more server-side computing devices, one or more analysis identifiers corresponding to the one or more images to at least one of the one or more client-side computing devices.

4. The method of claim 1 , further comprising:

storing, by at least one of the one or more server-side computing devices, results of the visual regression analysis between each image in the one or more images and the corresponding baseline image on the server-side memory.

5. The method of claim 1 , wherein receiving one or more images and associated metadata from one or more client-side computing devices comprises:

receiving a screenshot and image location metadata from at least one of the one or more client-side computing devices, the image location metadata indicating a location of each image in the one or more images within the screenshot; and

extracting the one or more images from the screenshot based at least in part on the image location metadata.

6. The method of claim 1 , wherein retrieving a baseline image corresponding to each image in the one or more images from a server-side memory based on the corresponding feature and the corresponding state for each image comprises:

parsing the associated metadata to extract the corresponding feature and the corresponding state for each image; and

retrieving the baseline image corresponding to each image based at least in part on the corresponding extracted feature and the corresponding extracted state.

7. The method of claim 1 , wherein performing a visual regression analysis between each image in the one or more images and the corresponding baseline image to determine one or more values of one or more indicators comprises, for each image:

determining a visual regression analysis technique based at least in part on one or more of: the corresponding feature, the corresponding state, or a project associated with the corresponding feature;

applying the determined visual regression analysis technique to the corresponding baseline image and the image; and

determining the one or more values of the one or more indicators based on results of the determined visual regression analysis.

8. The method of claim 1 , wherein the one or more user settings associated with the one or more client-side computing devices comprise settings provided by at least one user of at least one client-side computing device in the one or more client-side computing devices and stored on at least one server-side computing device in the one or more server-side computing devices.

9. The method of claim 1 , wherein the one or more server-side computing devices interface with the one or more client-side computing devices via a Representational State Transfer (REST) interface.

10. The method of claim 1 , wherein the one or more images and associated metadata are received from the one or more client-side computing devices on an automated basis and correspond to an entry in an Operational Qualifications (OQ) specification and wherein the visual regression analysis performed between each image in the one or more images and the corresponding baseline image is determined based at least in part on a link stored in the corresponding entry of the OQ specification.

11. A server-side apparatus for maintaining visual consistency of a presentation layer, the server-side apparatus comprising:

one or more processors; and

one or more memories operatively coupled to at least one of the one or more processors and having instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to:

receive one or more images and associated metadata from one or more client-side computing devices, the associated metadata indicating a corresponding feature and a corresponding state for each image in the one or more images;

retrieve a baseline image corresponding to each image in the one or more images from a server-side memory based on the corresponding feature and the corresponding state for each image;

perform a visual regression analysis between each image in the one or more images and the corresponding baseline image to determine one or more values of one or more indicators;

identify at least one key performance indicator in the one or more indicators based at least in part on one or more user settings associated with the one or more client-side computing devices;

determine whether at least one value of the at least one key performance indicator is outside of a predetermined range of values defined in the one or more user settings or does not match an expected value defined in the one or more user settings; and

transmit the one or more alerts to at least one of the one or more client-side computing devices based at least in part on a determination that the at least one value of the at least one key performance indicator is outside of the predetermined range of values defined in the one or more user settings or does not match the expected value defined in the one or more user settings.

12. The server-side apparatus of claim 11 , wherein at least one of the one or more memories has further instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to:

receive one or more baseline images and associated baseline metadata from at least one of the one or more client-side computing devices;

analyze the associated baseline metadata to identify a corresponding feature and a corresponding state for each baseline image in the one or more baseline images; and

store each baseline image in the one or more baseline images in the server-side memory, each baseline image being associated with the corresponding feature and the corresponding state in the server-side memory.

13. The server-side apparatus of claim 11 , wherein at least one of the one or more memories has further instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to, subsequent to receiving one or more images and associated metadata from one or more client-side computing devices:

persist each image in the one or more images to the server-side memory; and

transmit one or more analysis identifiers corresponding to the one or more images to at least one of the one or more client-side computing devices.

14. The server-side apparatus of claim 11 , wherein at least one of the one or more memories has further instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to:

store results of the visual regression analysis between each image in the one or more images and the corresponding baseline image on the server-side memory.

15. The server-side apparatus of claim 11 , wherein the instructions that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to receive one or more images and associated metadata from one or more client-side computing devices further cause at least one of the one or more processors to:

receive a screenshot and image location metadata from at least one of the one or more client-side computing devices, the image location metadata indicating a location of each image in the one or more images within the screenshot; and

extract the one or more images from the screenshot based at least in part on the image location metadata.

16. The server-side apparatus of claim 11 , wherein the instructions that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to retrieve a baseline image corresponding to each image in the one or more images from a server-side memory based on the corresponding feature and the corresponding state for each image further cause at least one of the one or more processors to:

parse the associated metadata to extract the corresponding feature and the corresponding state for each image; and

retrieve the baseline image corresponding to each image based at least in part on the corresponding extracted feature and the corresponding extracted state.

17. The server-side apparatus of claim 11 , wherein the instructions that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to perform a visual regression analysis between each image in the one or more images and the corresponding baseline image to determine one or more values of one or more indicators further cause at least one of the one or more processors to:

determine a visual regression analysis technique based at least in part on one or more of: the corresponding feature, the corresponding state, or a project associated with the corresponding feature; and

apply the determined visual regression analysis technique to the corresponding baseline image and the image; and

determine the one or more values of the one or more indicators based on results of the determined visual regression analysis.

18. The server-side apparatus of claim 11 , wherein the one or more user settings associated with the one or more client-side computing devices comprise settings provided by at least one user of at least one client-side computing device in the one or more client-side computing devices and stored on at least one server-side computing device in the one or more server-side computing devices.

19. The server-side apparatus of claim 11 , wherein the one or more server-side computing devices interface with the one or more client-side computing devices via a Representational State Transfer (REST) interface.

20. The server-side apparatus of claim 11 , wherein the one or more images and associated metadata are received from the one or more client-side computing devices on an automated basis and correspond to an entry in an Operational Qualifications (OQ) specification and wherein the visual regression analysis performed between each image in the one or more images and the corresponding baseline image is determined based at least in part on a link stored in the corresponding entry of the OQ specification.

21. At least one non-transitory computer-readable medium storing computer-readable instructions that, when executed by one or more server-side computing devices, cause at least one of the one or more server-side computing devices to:

receive one or more images and associated metadata from one or more client-side computing devices, the associated metadata indicating a corresponding feature and a corresponding state for each image in the one or more images;

retrieve a baseline image corresponding to each image in the one or more images from a server-side memory based on the corresponding feature and the corresponding state for each image;

perform a visual regression analysis between each image in the one or more images and the corresponding baseline image to determine one or more values of one or more indicators;

identify at least one key performance indicator in the one or more indicators based at least in part on one or more user settings associated with the one or more client-side computing devices;

determine whether at least one value of the at least one key performance indicator is outside of a predetermined range of values defined in the one or more user settings or does not match an expected value defined in the one or more user settings; and

transmit the one or more alerts to at least one of the one or more client-side computing devices based at least in part on a determination that the at least one value of the at least one key performance indicator is outside of the predetermined range of values defined in the one or more user settings or does not match the expected value defined in the one or more user settings.

22. The at least one non-transitory computer-readable medium of claim 21 , further storing computer-readable instructions that, when executed by at least one of the one or more server-side computing devices, cause at least one of the one or more server-side computing devices to:

receive one or more baseline images and associated baseline metadata from at least one of the one or more client-side computing devices;

analyze the associated baseline metadata to identify a corresponding feature and a corresponding state for each baseline image in the one or more baseline images; and

store each baseline image in the one or more baseline images in the server-side memory, each baseline image being associated with the corresponding feature and the corresponding state in the server-side memory.

23. The at least one non-transitory computer-readable medium of claim 11 , wherein at least one of the one or more memories has further instructions stored thereon that, when executed by at least one of the one or more server-side computing devices, cause at least one of the one or more server-side computing devices to, subsequent to receiving one or more images and associated metadata from one or more client-side computing devices:

persist each image in the one or more images to the server-side memory; and

transmit one or more analysis identifiers corresponding to the one or more images to at least one of the one or more client-side computing devices.

24. The at least one non-transitory computer-readable medium of claim 21 , further storing computer-readable instructions that, when executed by at least one of the one or more server-side computing devices, cause at least one of the one or more server-side computing devices to:

store results of the visual regression analysis between each image in the one or more images and the corresponding baseline image on the server-side memory.

25. The at least one non-transitory computer-readable medium of claim 21 , wherein the instructions that, when executed by at least one of the one or more server-side computing devices, cause at least one of the one or more server-side computing devices to receive one or more images and associated metadata from one or more client-side computing devices further cause at least one of the one or more server-side computing devices to:

receive a screenshot and image location metadata from at least one of the one or more client-side computing devices, the image location metadata indicating a location of each image in the one or more images within the screenshot; and

extract the one or more images from the screenshot based at least in part on the image location metadata.

26. The at least one non-transitory computer-readable medium of claim 21 , wherein the instructions that, when executed by at least one of the one or more server-side computing devices, cause at least one of the one or more server-side computing devices to retrieve a baseline image corresponding to each image in the one or more images from a server-side memory based on the corresponding feature and the corresponding state for each image further cause at least one of the one or more server-side computing devices to:

parse the associated metadata to extract the corresponding feature and the corresponding state for each image; and

retrieve the baseline image corresponding to each image based at least in part on the corresponding extracted feature and the corresponding extracted state.

27. The at least one non-transitory computer-readable medium of claim 21 , wherein the instructions that, when executed by at least one of the one or more server-side computing devices, cause at least one of the one or more server-side computing devices to perform a visual regression analysis between each image in the one or more images and the corresponding baseline image to determine one or more values of one or more indicators further cause at least one of the one or more server-side computing devices to:

determine a visual regression analysis technique based at least in part on one or more of:

the corresponding feature, the corresponding state, or a project associated with the corresponding feature; and

apply the determined visual regression analysis technique to the corresponding baseline image and the image; and

determine the one or more values of the one or more indicators based on results of the determined visual regression analysis.

28. The at least one non-transitory computer-readable medium of claim 21 , wherein the one or more user settings associated with the one or more client-side computing devices comprise settings provided by at least one user of at least one client-side computing device in the one or more client-side computing devices and stored on at least one server-side computing device in the one or more server-side computing devices.

29. The at least one non-transitory computer-readable medium of claim 21 , wherein the one or more server-side computing devices interface with the one or more client-side computing devices via a Representational State Transfer (REST) interface.

30. The at least one non-transitory computer-readable medium of claim 21 , wherein the one or more images and associated metadata are received from the one or more client-side computing devices on an automated basis and correspond to an entry in an Operational Qualifications (OQ) specification and wherein the visual regression analysis performed between each image in the one or more images and the corresponding baseline image is determined based at least in part on a link stored in the corresponding entry of the OQ specification.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2020
From: SNEED, TIMOTHY; KRATZ, BRUCE
To: SPARTA SYSTEMS, INC.
Reel/Frame 052781/0639 →
Continuity (1)
Related Publication 20200272554A1 · Aug 27, 2020