IP Library Granted Patent US 10,769,056
Granted Patent B2
US 10,769,056 · App. 15/905,362 · Granted Sep 8, 2020

System for autonomously testing a computer system

Inventors: John A. Maliani (Pembroke Pines, FL); Robert L. Vanderwall (Weston, FL); Michael L. Mattera (Coral Springs, FL); Dionny Santiago (Weston, FL); Brian R. Muras (Weston, FL); Keith A. Briggs (Coral Springs, FL); David Adamo (Sunrise, FL); Tariq King (Pembroke Pines, FL)
Assignee: The Ultimate Software Group, Inc.
G06F11/3688G06F11/3684G06F11/3692
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,769,056
App. No.
15/905,362
Granted
Sep 8, 2020
Kind
B2
Abstract

A system for autonomously testing a computing system is disclosed. The system parses data obtained from a variety of sources, and extracts source concepts from the parsed data to generate models for inclusion in a set of agglomerated models. The system interacts with and explores features of a software application being tested by the system. Outputs and information obtained from the interaction are utilized by the system to update the models or generate new models for the set of agglomerated models. The agglomerated models are utilized by the system to execute tests on the application to detect potential defects and conflicts. Detected defects and conflicts may be included in a report for review. Feedback on the defects and conflicts may be utilized to further update the agglomerated models. The agglomerated models are updated recursively as additional data is obtained, further interactions are performed, and further outputs are generated over time.

Claims (51)

1. A system, comprising:

a memory that stores instructions; and

a processor that executes the instructions to perform operations, the operations comprising:

parsing data obtained from a source to generate parsed data;

extracting a source concept from the parsed data;

updating, based on the source concept extracted from the parsed data, a model from a set of agglomerated models to update the set of agglomerated models;

interacting with an application under evaluation by the system via an input;

receiving an output from the application under evaluation based on the interacting conducted with the application under evaluation via the input;

updating, by utilizing the output, the set of agglomerated models; and

recursively updating the set of agglomerated models over time as further data is obtained, as further interacting is conducted with the application under evaluation, as interacting is conducted with another application under evaluation, or a combination thereof.

2. The system of claim 1 , wherein the operations further comprise validating, by utilizing a hypothesis test, the set of agglomerated models to produce a set of validated agglomerated models.

3. The system of claim 1 , wherein the operations further comprise executing, by utilizing the set of agglomerated models, a test on the application under evaluation.

4. The system of claim 3 , wherein the operations further comprise generating, if the executing of the test indicates a defect in the application under evaluation, a report indicating the defect in the application under evaluation.

5. The system of claim 4 , wherein the operations further comprise generating software code to fix the defect in the application under evaluation, and wherein the operations further comprise integrating the software code into the application under evaluation to fix the defect.

6. The system of claim 1 , wherein the operations further comprise refining, based on the set of agglomerated models, the source concept, and wherein the operations further comprise refining a hypothesis associated with one or more models in the set of agglomerated models.

7. The system of claim 1 , wherein the operations further comprise determining the input from the set of agglomerated models.

8. The system of claim 1 , wherein the data obtained from the source comprises a requirement, a user story, a document, domain knowledge, external information, a test case, software code, or a combination thereof, and wherein at least a portion of the data is related to functionality of the application under evaluation by the system, a performance requirement of the application under evaluation, a metric associated with the application under evaluation, or a combination thereof.

9. The system of claim 1 , wherein the operations further comprise determining that a new source of additional data exists, wherein the operations further comprise determining if a source parsing model of the agglomerated models has been altered by a threshold amount, and wherein the operations further comprise parsing the additional data from the new source to generate additional parsed data if the source parsing model has been altered by the threshold amount.

10. The system of claim 9 , wherein the operations further comprise determining if a concept extraction model of the agglomerated models has been altered by a threshold amount, wherein the operations further comprise extracting an additional source concept from the additional parsed data, and wherein the operations further comprise updating, based on the additional source concept, the set of agglomerated models.

11. The system of claim 1 , wherein the operations further comprise selecting an executor for executing a series of steps on the application under evaluation while interacting with the application to dynamically explore and create a model of the application under evaluation for inclusion in the agglomerated models.

12. The system of claim 11 , wherein the operations further comprise selecting an exploration start location within the application under evaluation for executing the series of steps, and wherein the operations further comprise accessing the application under evaluation after selecting the exploration start location.

13. The system of claim 12 , wherein the operations further comprise executing a first step in the series of steps on the application under evaluation, wherein the operations further comprise determining if the first step corresponds with the exploration start location, and wherein the operations further comprise executing, if the first step does not correspond with the exploration start location, subsequent steps in the series of steps until the exploration start location is reached.

14. The system of claim 13 , wherein the operations further comprise selecting a next exploration step to execute on the application under evaluation after the exploration start location is reached, wherein the operations further comprise executing the next exploration step and subsequent exploration steps on the application under evaluation until completion of a dynamic discovery session.

15. The system of claim 14 , wherein the operations further comprise utilizing outputs generated based on execution of the next exploration step and the subsequent exploration steps to update the set of agglomerated models.

16. The system of claim 1 , wherein the operations further comprise utilizing a test executed on the application under evaluation to adjust confidences associated with models in the set of agglomerated models.

17. The system of claim 16 , wherein the operations further comprise receiving feedback indicating that a defect indicated based on execution of the test is inaccurate.

18. The system of claim 17 , wherein the operations further comprise adjusting a confidence for a model in the set of agglomerated models based on the feedback.

19. A method, comprising:

parsing data obtained from a source to generate parsed data;

extracting a source concept from the parsed data;

generating, based on the source concept extracted from the parsed data, a first model for inclusion in a set of agglomerated models;

interacting with an application under evaluation via an input;

receiving an output from the application under evaluation based on the interacting conducted with the application via the input;

generating, by utilizing the output, a second model for inclusion in the set of agglomerated models, wherein the second model is correlated with the application under evaluation;

executing, by utilizing the set of agglomerated models, a test on the application under evaluation, wherein the executing is performed by utilizing instructions from a memory that are executed by a processor; and

determining, based on executing the test, whether the application under evaluation operates in an expected manner.

20. The method of claim 19 , further comprising recursively updating the set of agglomerated models over time as further data is obtained, as further interacting is conducted with the application under evaluation, as interacting is conducted with another application under evaluation, or a combination thereof.

21. The method of claim 19 , further comprising utilizing the set of agglomerated models to output a validated subset agglomerated model of the application under evaluation to generate a response to one or more inputs received from a user, device, a program, an external user, an external device, an external program, or a combination thereof.

22. The method of claim 21 , wherein the validated subset agglomerated model of the application under evaluation includes an execution path, and further comprising utilizing the execution path to generate a response to a request received from a user, device, a program, an external user, an external device, an external program, or a combination thereof.

23. The method of claim 22 , further comprising generating, by utilizing a media converter, viewable media content including each step in the execution path utilized to generate the response to the request.

24. The method of claim 19 , further comprising generating an autopilot feature, which upon being accessed, enables navigation from an initial state of the application to a target state of the application.

25. The method of claim 19 , further comprising generating, in response to a request from a user or device, an extension function for incorporation into the application under evaluation, wherein the extension function adds functionality to the application under evaluation, adjusts a performance of the application under evaluation, or a combination thereof.

26. The method of claim 25 , further comprising executing a test on the extension function to validate that the extension function operates as requested in the request prior to incorporating the extension function into the application under evaluation.

27. A non-transitory computer-readable device comprising instructions, which when loaded and executed by a processor, cause the processor to perform operations comprising:

parsing data obtained from a source to generate parsed data;

extracting a source concept from the parsed data;

generating, based on the source concept extracted from the parsed data, a first model for inclusion in a set of agglomerated models;

interacting with an application under evaluation via an input;

receiving an output from the application under evaluation based on the interacting conducted with the application via the input;

generating, by utilizing the output, a second model for inclusion in the set of agglomerated models, wherein the second model is correlated with the application under evaluation; and

recursively updating the set of agglomerated models over time as further data is obtained, as further interacting is conducted with the application under evaluation, as interacting is conducted with another application under evaluation, or a combination thereof.

Assignments (10)
RELEASE (REEL 053117 / FRAME 0158) Recorded Apr 9, 2024
From: NOMURA CORPORATE FUNDING AMERICAS, LLC
To: UKG INC. (F/K/A THE ULTIMATE SOFTWARE GROUP, INC.); KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP
Reel/Frame 067055/0814 →
NOTICE OF SUCCESSION OF AGENCY (FIRST LIEN) Recorded Feb 12, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: NOMURA CORPORATE FUNDING AMERICAS, LLC, AS SUCCESSOR AGENT
Reel/Frame 066551/0888 →
SECURITY AGREEMENT (NOTES) Recorded Feb 12, 2024
From: KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP; UKG INC.
To: COMPUTERSHARE TRUST COMPANY, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 066551/0962 →
CHANGE OF NAME Recorded Aug 5, 2022
From: THE ULTIMATE SOFTWARE GROUP, INC.
To: UKG INC.
Reel/Frame 061099/0892 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2021
From: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
To: THE ULTIMATE SOFTWARE GROUP, INC.
Reel/Frame 058372/0288 →
SECURITY AGREEMENT (SECOND LIEN) Recorded Jul 1, 2020
From: THE ULTIMATE SOFTWARE GROUP, INC.; KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP
To: NOMURA CORPORATE FUNDING AMERICAS, LLC, AS COLLATERAL AGENT
Reel/Frame 053117/0158 →
SECOND LIEN SECURITY AGREEMENT Recorded May 6, 2019
From: THE ULTIMATE SOFTWARE GROUP, INC.
To: ARES CAPITAL CORPORATION
Reel/Frame 049087/0349 →
FIRST LIEN SECURITY AGREEMENT Recorded May 3, 2019
From: THE ULTIMATE SOFTWARE GROUP, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 049081/0607 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2018
From: ADAMO, DAVID; KING, TARIQ
To: THE ULTIMATE SOFTWARE GROUP, INC.
Reel/Frame 045910/0122 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2018
From: MALIANI, JOHN A.; VANDERWALL, ROBERT L.; MATTERA, MICHAEL L.; SANTIAGO, DIONNY; MURAS, BRIAN R.; BRIGGS, KEITH A.
To: THE ULTIMATE SOFTWARE GROUP, INC.
Reel/Frame 045041/0697 →