RowGen Creates and Transforms Test Data for Transitive
David Turnbull, director, Release and Test Engineering for Transitive Corporation.
Transitive is a provider of software that enables transportability of software applications across multiple hardware platforms. The company's QuickTransit solutions allow software applications that have been compiled for one processor/operating system to run on another without any source code or binary changes and at speeds comparable to native ports. The QuickTransit application transport solution allows data center managers to transport legacy enterprise applications from outdated, proprietary hardware to modern, industry-standard platforms without incurring the costs, delays and disruptions of porting projects. QuickTransit technology also facilitates computer companies' migrations to new hardware platforms.
SPARC, x86, IBM POWER, Solaris and Linux.
Transitive's products require testing across an extensive range of platforms, and Transitive employs agile development processes that utilize a fully automated heterogeneous testing farm to support this requirement. Workloads for the testing farm are selected based on their test effectiveness and coverage of the translator, but also on their suitability for complete automation. Workloads range from small, functionally focused utilities to large enterprise-level applications; the latter requires synthesized data and consistent application execution to provide real-world scenarios. The CoSort-powered test data product, RowGen, from Innovative Routines International (IRI), Inc., accomplishes both of these goals simultaneously by generating and transforming test data in the same job script and I/O pass.
RowGen creates safe and realistic test data in custom file and report formats. RowGen uses open and explicit job scripts (based on CoSort SortCL metadata) to randomly generate field data from more than 100 data types or randomly select fields from real (set) files or numeric ranges. In the same job script and I/O pass creating the test data, RowGen can also transform (sort, aggregate, convert, cross-calculate, reformat, sequence, etc.) and format it into more than 20 standard file types (including CSV, XML, I-SAM, record sequential and LDIF). RowGen can simultaneously create one or more custom, detail or summary output file (or pipe or procedure) targets that match the layout of production files and reports. RowGen can also use conditions and field definitions to populate test database loads with primary and foreign key relationships.
RowGen provides Transitive with the ability to create both large and random data sets. Also significant is that the RowGen product itself - when under translation - is an excellent test of QuickTransit because it stresses the capabilities of the translator in terms of multithreading, shared memory use, heavy memory access and disk I/O usage. RowGen's simple usage and batch executions coupled with its operating system independence make it ideally suited to automation. The range of platforms that RowGen supports is also excellent and allows Transitive to perform both subject-native and target-native functional and performance comparisons (because RowGen's generated and transformed test data is the same across platforms).
RowGen's proprietary licensing implementation complicated deployment on the testing farm; however, it did present excellent floating-point testing functionality for the QuickTransit translator.
Transitive's use of RowGen is probably unique in that the development team was interested in the product not only for synthesizing valid test data but also in exercising the translator by simultaneously performing resource-intensive actions (such as sorts) on the test data. RowGen's ability to stress the translator, along with ease of use, made it the best solution for populating and validating Transitive's test farm workloads. Furthermore, because RowGen uses the same data transformation, reporting features and syntax as CoSort's SortCL program, it represents an industry-standard application that can be automated for functional testing and performance comparisons.
RowGen support has been excellent. IRI is extremely quick to respond via email and phone. In addition to providing technical support and multiple platform versions (ports) of RowGen, IRI has been keen to ensure that we have the best possible solution to a problem.
The PDF manual is clear and concise, and it contains many examples that Transitive was able to use as the basis for its test workloads. However, because the RowGen syntax is so easy to use, Transitive's developers rarely rely on the manual.