1. A method of using synthetic data values to debug a transformation rule of a data integration application so that the synthetic data values may be reused to debug other transformation rules in the same data integration application and to debug transformation rules in other data integration applications, wherein the synthetic data values are artificial data values used to test functionality and mask actual production data values, the method comprising: a. receiving a specification for a first data integration application, in which the specification includes: extraction rules to extract production data from a data repository, transformation rules to operate on said extracted data to create transformed data, and storage rules to store the transformed data into a data repository, wherein each of said transformation rules specifies semantic identifiers as inputs, and wherein said semantic identifiers have names that indicate the meaning of said inputs, and wherein the semantic identifiers represent production data having names that may differ from the names of the semantic identifiers; b. receiving synthetic data values to use as test values for at least some of the inputs of at least some of the transformation rules, in order to test the functionality of said at least some of the transformation rules; c. associating in a persistent data store the synthetic data values with the semantic identifiers associated with said at least some of the inputs; d. determining whether a specification for a second data integration application includes transformation rules specifying at least some semantic identifiers that are associated with synthetic data values in the persistent data store and, if so, recalling the synthetic data values associated with said at least some semantic identifiers; and e. using at least some of the recalled synthetic data values as test values for testing said transformation rules included in the specification for the second data integration application; f. such that synthetic data values used to test a first data integration application may be reused by a developer to test a second data integration application, even if the second data integration application specifies different transformation rules and data repositories.