IP Library Granted Patent US 9,235,496
Granted Patent B2
US 9,235,496 · App. 14/056,868 · Granted Jan 12, 2016

Domain centric test data generation

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 9,235,496
App. No.
14/056,868
Granted
Jan 12, 2016
Kind
B2
Abstract

A test data extraction and persistence technique that relies on a data domain based storage infrastructure is disclosed. In operation, a test data server receives a test data query that specifies selection parameters for selecting test data and any transformation operations to be performed on the test data. The test data server identifies domains associated with the selection parameters and traverses the tables in the database based on the identified domains to extract test data that satisfies the selection parameters. The test data server optionally performs transformation operations, such as masking operations, specified by the test data query on the extracted data. The identified domains are stored such that test data that satisfies the test data query may be extracted from the database repetitively without reevaluating the test data query each time.

Claims (50)

1. A method for generating test data for testing an application from a database having a table comprising at least one column, the method comprising:

receiving a test data query that specifies at least one selection parameter;

identifying a data domain associated with the at least one selection parameter, the data domain corresponding to a column in the table and including for each unique value in the column a corresponding unique entity identifier;

selecting, within the identified data domain, one or more entity identifiers that correspond to one or more values satisfying the at least one selection parameter;

automatically generating an entity selection map that specifies the one or more selected entity identifiers included in the data domain;

automatically generating a test data definition associated with the test data query based on the entity selection map, the test data definition identifying test data in the database associated with the one or more selected entity identifiers; and

automatically executing the test data definition to extract the test data.

2. The method of claim 1 , wherein generating the test data definition comprises:

generating a row selection map associated with the table based on the entity selection map, the row selection map identifying a set of rows in the table that each includes a value corresponding to at least one of the one or more selected entity identifiers;

identifying a driving domain corresponding to a second column in the table, the driving domain including for each unique value in the second column a corresponding unique entity identifier;

selecting one or more driving entity identifiers in the driving domain that correspond to values included in the second column of the set of rows; and

generating a driving map that identifies the one or more driving entity identifiers.

3. The method of claim 2 , wherein the test data definition includes the driving map, and executing the test data definition comprises applying the driving map to the table to extract at least a portion of the test data.

4. The method of claim 2 , wherein generating the test data definition further comprises:

determining that a second table in the database includes a third column that corresponds to the driving domain; and

generating a second row selection map associated with the second table based on the driving map, the second row selection map identifying a second set of rows in the second table that each includes a value corresponding to at least one of the driving entity identifiers.

5. The method of claim 4 , wherein executing the test data definition comprises applying the driving map to the second table to extract at least a portion of the test data.

6. The method of claim 1 , further comprising storing the test data definition in a test data inventory that also stores a second test data definition associated with a second test data query.

7. The method of claim 6 , further comprising:

receiving a selection of the test data definition, the second test data definition, and a combination operator;

combining the test data definition and the second test data definition based on the combination operator to generate a combined test data definition; and

executing the combined test data definition to extract test data associated with the test data query and the second test data query from the database.

8. The method of claim 7 , wherein the test definition includes a set of bitmaps for extracting the test data, the second test definition includes a second set of bitmaps for extracting second test data, the combination operation is a set function, and combining the test definition and the second test definition comprises performing the set function on the set of bitmaps and the second set of bitmaps.

9. The method of claim 1 , wherein the table comprises a plurality of columns, each of the plurality of columns corresponding to a different data domain, and further comprising determining a domain category associated with each data domain corresponding to a column in the table, the domain category associated with a particular data domain indicating how data associated with the domain is to be processed during test data extraction.

10. The method of claim 1 , wherein executing the test data definition to extract the test data comprises transforming the data domain such that each entity identifier in the data domain is associated with a transformed value, and wherein the extracted test data includes a first transformed value associated with a first entity identifier included in the one or more selected entity identifiers.

11. A computer program product having a non-transitory computer readable storage medium storing executable code for generating test data for testing an application from a database having a table comprising at least one column, the code when executed performs steps comprising:

receiving a test data query that specifies at least one selection parameter;

identifying a data domain associated with the at least one selection parameter, the data domain corresponding to a column in the table and including for each unique value in the column a corresponding unique entity identifier;

selecting, within the identified data domain, one or more entity identifiers that correspond to one or more values satisfying the at least one selection parameter;

automatically generating an entity selection map that identifies specifies the one or more selected entity identifiers included in the data domain;

automatically generating a test data definition associated with the test data query based on the entity selection map, the test data definition identifying test data in the database associated with the one or more selected entity identifiers; and

automatically executing the test data definition to extract the test data.

12. The computer program product of claim 11 , wherein generating the test data definition comprises:

generating a row selection map associated with the table based on the entity selection map, the row selection map identifying a set of rows in the table that each includes a value corresponding to at least one of the one or more selected entity identifiers;

identifying a driving domain corresponding to a second column in the table, the driving domain including for each unique value in the second column a corresponding unique entity identifier;

selecting one or more driving entity identifiers in the driving domain that correspond to values included in the second column of the set of rows; and

generating a driving map that identifies the one or more driving entity identifiers.

13. The computer program product of claim 12 , wherein the test data definition includes the driving map, and executing the test data definition comprises applying the driving map to the table to extract at least a portion of the test data.

14. The computer program product of claim 12 , wherein generating the test data definition further comprises:

determining that a second table in the database includes a third column that corresponds to the driving domain; and

generating a second row selection map associated with the second table based on the driving map, the second row selection map identifying a second set of rows in the second table that each includes a value corresponding to at least one of the driving entity identifiers.

15. The computer program product of claim 14 , wherein executing the test data definition comprises applying the driving map to the second table to extract at least a portion of the test data.

16. The computer program product of claim 11 , wherein the code when executed further performs steps comprising storing the test data definition in a test data inventory that also stores a second test data definition associated with a second test data query.

17. The computer program product of claim 16 , wherein the code when executed further performs steps comprising:

receiving a selection of the test data definition, the second test data definition, and a combination operator;

combining the test data definition and the second test data definition based on the combination operator to generate a combined test data definition; and

executing the combined test data definition to extract test data associated with the test data query and the second test data query from the database.

18. The computer program product of claim 17 , wherein the test definition includes a set of bitmaps for extracting the test data, the second test definition includes a second set of bitmaps for extracting second test data, the combination operation is a set function, and combining the test definition and the second test definition comprises performing the set function on the set of bitmaps and the second set of bitmaps.

19. The computer program product of claim 11 , wherein the table comprises a plurality of columns, each of the plurality of columns corresponding to a different data domain, and further comprising determining a domain category associated with each data domain corresponding to a column in the table, the domain category associated with a particular data domain indicating how data associated with the domain is to be processed during test data extraction.

20. The computer program product of claim 11 , wherein executing the test data definition to extract the test data comprises transforming the data domain such that each entity identifier in the data domain is associated with a transformed value, and wherein the extracted test data includes a first transformed value associated with a first entity identifier included in the one or more selected entity identifiers.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: JPMORGAN CHASE BANK, N.A.
To: INFORMATICA LLC
Reel/Frame 073597/0722 →
RELEASE OF SECURITY INTEREST Recorded Oct 29, 2021
From: NOMURA CORPORATE FUNDING AMERICAS, LLC
To: INFORMATICA LLC
Reel/Frame 057973/0496 →
SECURITY INTEREST Recorded Oct 29, 2021
From: INFORMATICA LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 057973/0568 →
RELEASE OF SECURITY INTEREST Recorded Oct 29, 2021
From: NOMURA CORPORATE FUNDING AMERICAS, LLC
To: INFORMATICA LLC
Reel/Frame 057973/0507 →
SECURITY INTEREST Recorded Feb 26, 2020
From: INFORMATICA LLC
To: NOMURA CORPORATE FUNDING AMERICAS, LLC
Reel/Frame 052022/0906 →
NOTICE OF SUCCESSION OF AGENCY Recorded Feb 25, 2020
From: BANK OF AMERICA, N.A.
To: NOMURA CORPORATE FUNDING AMERICAS, LLC
Reel/Frame 052018/0070 →
CHANGE OF NAME Recorded Aug 25, 2015
From: INFORMATICA CORPORATION
To: INFORMATICA LLC
Reel/Frame 036453/0406 →
SECURITY AGREEMENT Recorded Aug 6, 2015
From: INFORMATICA CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 036294/0701 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2013
From: GRONDIN, RICHARD
To: INFORMATICA CORPORATION
Reel/Frame 031435/0211 →