IP Library Granted Patent US 8,386,852
Granted Patent B2
US 8,386,852 · App. 10/287,794 · Granted Feb 26, 2013

Automated recording and replaying of software regression tests

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 8,386,852
App. No.
10/287,794
Granted
Feb 26, 2013
Kind
B2
Abstract

A method of regression testing a software application in an execution environment is disclosed. The software application interacts with a data storage and is run a first time. While running the software application for the first time, interactions of the software application with the data storage are monitored. Also while running the software application for the first time, first output data written from the software application to the data storage are recorded, and input data received by the software application from the data storage are recorded. The software application is run a second time after the first time. While running the software application the second time, when the software application calls for data from the data storage, at least a portion of the recorded input data is provided to the software application, and, when the software application writes data to the data storage, second output data written by the software application are recorded. The second output data are compared with the first output data to evaluate whether the software application has passed the regression test.

Claims (47)

1. A method of regression testing a software application in an execution environment, wherein the software application interacts with a data storage, the method comprising:

running the software application a first time;

while running the software application the first time, monitoring interactions of the software application with a data source and a data destination, wherein monitoring the interactions includes:

copying first communications between the software application and the data destination during the first running time;

copying communications between the software application and the data source, wherein the data source and the data destination comprise data storage; and

storing the copied data-destination first communications and the copied data-source communications in memory;

running the software application a second time after running the software application the first time;

while running the software application the second time, when the software application calls for data from the data storage, providing at least a portion of the copied data-source communications to the software application, and, when the software application writes data to the data storage, identifying second communications between the software application and the data destination; and

comparing the identified data-destination second communications with the copied data-destination first communications to evaluate whether the software application has passed the regression test.

2. The method of claim 1 wherein the data storage comprises a database.

3. The method of claim 1 wherein the data storage comprises another software application.

4. The method of claim 1 further comprising modifying the software application after running the software application the first time and before running the software application the second time.

5. The method of claim 1 further comprising modifying the execution environment in which the software application runs after running the software application the first time and before running the software application the second time.

6. The method of claim 5 wherein modifying the execution environment comprises modifying the operating system of the execution environment.

7. The method of claim 5 wherein modifying the execution environment comprises modifying the hardware platform of the execution environment.

8. The method of claim 1 wherein the first output data is stored in at least one file having a naming scheme that tracks an order of the first output data and the input data is stored in at least one file having a naming scheme that tracks an order of the input data.

9. A method of regression testing a computer software application in an execution environment, wherein the software application interacts with data storages, the method comprising:

running the software application a first time;

while running the software application, monitoring interactions of the software application with a data source and a data destination, wherein monitoring the interactions includes:

copying first communications between the software application and the data destination during the first running time;

copying communications between the software application and the data source, wherein the data source and the data destination comprise data storage; and

storing the copied data-destination first communications and the copied data-source communications in memory;

running the software application a second time after running the software application the first time;

while running the software application the second time, when the software application calls for data from the data storage, providing at least a portion of the copied data-source communications to the software application, and, when the software application writes data to the data storage, identifying second communications between the software application and the data destination; and

comparing the identified data-destination second communications with the copied data-destination first communications to evaluate whether the software application has passed the regression test.

10. The method of claim 9 wherein at least one of the data storages comprises a database.

11. The method of claim 9 wherein at least one of the data storages comprises another software application.

12. The method of claim 9 further comprising modifying the software application after running the software application the first time and before running the software application the second time.

13. The method of claim 9 further comprising modifying the execution environment in which the software application runs after running the software application the first time and before running the software application the second time.

14. The method of claim 13 wherein modifying the execution environment comprises modifying the operating system of the execution environment.

15. The method of claim 13 wherein modifying the execution environment comprises modifying the hardware platform of the execution environment.

16. The method of claim 9 further comprising:

tracking an order of the first output data; and

tracking an order of the input data.

17. A system for regression testing a software application in an execution environment, wherein the software application interacts with a data storage, the system comprising:

a memory; and

a processor configured to:

monitor interactions between the software application and a data source and a data destination, wherein monitoring the interactions includes recording input data received by the software application from the data source;

execute instructions contained in the software application at a first time using recorded input data in the memory;

monitor interactions between the software application and a data source and a data destination, wherein monitoring the interactions includes recording in the memory first communications between the software application and the data destination when the software application is running at a first time;

execute instructions contained in the software application at a second time later than the first time;

input at least a portion of the recorded input data to the software application when the software application calls for data from the data source;

record in the memory second communications between the software application and the data destination when the software application attempts to write data to the data destination when running the second time; and

compare the second communications with the first communications to evaluate whether the software application has passed the regression test.

18. The system of claim 17 wherein the software application is modified after running the software application the first time and before running the software application the second time.

19. The system of claim 17 wherein the execution environment in which the software application runs is modified after running the software application the first time and before running the software application the second time.

20. The system of claim 17 wherein the processor is further configured to store the first output data in at least one file having a naming scheme that tracks an order of the first output data and to store at least a portion of the recorded input data in at least one file having a naming scheme that tracks an order of the at least a portion of the recorded input data.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: THE CONUNDRUM IP LLC
Reel/Frame 057424/0170 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2009
From: ELECTRONIC DATA SYSTEMS, LLC
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 022449/0267 →
CHANGE OF NAME Recorded Mar 24, 2009
From: ELECTRONIC DATA SYSTEMS CORPORATION
To: ELECTRONIC DATA SYSTEMS, LLC
Reel/Frame 022460/0948 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2003
From: COHEN, RICHARD M.; VOLLERS, WILLIAM H.
To: ELECTRONIC DATA SYSTEM CORPORATION
Reel/Frame 013728/0416 →