Value groups in DTM Data Generator and other data generation tools.

The realistic data sets have a lot of column-to-column dependencies. Country name-capital, country name -currency name, State - ISO code, etc. In complex cases, we need to link more than two columns: city- street- ZIP code, Country name- ISO country code-ISO currency code.

Our test data generation product family offers a way to operate with a data source in a table-like manner. This set of columns called "group". Any group has definition and references to group members i.e. columns of the group. In most cases, the definition is a reference to the first column of the created group, but the test data generation engine enables the user to modify this behavior.

There are sources for a group of columns creation:

  • Text file with a few columns separated by comma, tab or user-defined separator. The file can be placed locally, on the networks share or available via HTTP or FTP call.
  • Value library contains a few ready to use groups.
  • Database table or view
  • SQL statement
  • Excel spreadsheet
  • Results of external script execution. The script should return a tab-delimited set of rows.

How to create and use the group? There are two ways: define the group with the user interface or to use the engine calls directly. At the moment the first way is available in DTM Data Generator only. Other tools support groups via call appropriate engine functions only.

The first wait consists of two steps: group assigning and depended column(s) assigning.

DTM Data Generator: Creating a group with number of the group assigning DTM Data Generator: Adding the column to the group by number

The second way of group making is more complex. It requires custom generator creation or "by pattern" fill method usage in DTM Data Generator.

To create a group the user should provide a call of one of the following functions: $FileGroup, $TableGroup*, $MSExcelGroup, $QueryGroup, $LibGroup, $ScriptGroup or $WebFileGroup.
* - $TableGroup function has two forms. Please refer to the engine manual for details.

The $Group function was designed to access other group members. If you have group #2 (the group number should be assigned in the group creation call) and it has at least three columns, $Group(2,3) call provides access to the third column of this group.

DTM Test XML Generator: creating a group based on #LibGroup call DTM Test XML Generator: adding a member item to the created group

At the output, the columns of our test data are coordinated to the group definition.

DTM Test XML Generator: sample data generated by group of items