A computer implemented method for generating test data for testing a software application comprising: receiving seed data having one or more characteristics, wherein the seed data is based at least in part on production data; obtaining a selection criterion indicating a selected portion of the seed data to be transformed; and transforming the seed data for a plurality of iterations to generate the test data comprising a plurality of data sets, wherein the transformation comprises: capturing the one or more characteristics of the seed data; and transforming each data item in the selected portion of the seed data for the plurality of iterations to generate the plurality of data sets by- i) preserving the one or more characteristics of the seed data and ii) generating an unique data value for each data item of the selected portion of the seed data in each iteration, wherein the unique data value is different from original data value of each data item of the selected portion of the seed data, and wherein the plurality of data sets comprises a primary data set and one or more secondary data sets, and wherein generating the plurality of data sets comprises, generating the primary data set in a first iteration of the plurality of iterations, wherein the primary data set includes transformed data corresponding to the selected portion of the seed data and non-transformed data corresponding to the remaining portion of the seed data; and generating the secondary data set for each subsequent iteration of the plurality of iterations to result in the one or more secondary data sets, wherein the secondary data set includes transformed data corresponding to the selected portion of the seed data. receiving seed data having one or more characteristics, wherein the seed data is based at least in part on production data; obtaining a selection criterion indicating a selected portion of the seed data to be transformed; and transforming the seed data for a plurality of iterations to generate the test data comprising a plurality of data sets, wherein the transformation comprises: capturing the one or more characteristics of the seed data; and transforming each data item in the selected portion of the seed data for the plurality of iterations to generate the plurality of data sets by- i) preserving the one or more characteristics of the seed data and ii) generating an unique data value for each data item of the selected portion of the seed data in each iteration, wherein the unique data value is different from original data value of each data item of the selected portion of the seed data, and wherein the plurality of data sets comprises a primary data set and one or more secondary data sets, and wherein generating the plurality of data sets comprises, generating the primary data set in a first iteration of the plurality of iterations, wherein the primary data set includes transformed data corresponding to the selected portion of the seed data and non-transformed data corresponding to the remaining portion of the seed data; and generating the secondary data set for each subsequent iteration of the plurality of iterations to result in the one or more secondary data sets, wherein the secondary data set includes transformed data corresponding to the selected portion of the seed data. capturing the one or more characteristics of the seed data; and transforming each data item in the selected portion of the seed data for the plurality of iterations to generate the plurality of data sets by- i) preserving the one or more characteristics of the seed data and ii) generating an unique data value for each data item of the selected portion of the seed data in each iteration, wherein the unique data value is different from original data value of each data item of the selected portion of the seed data, and wherein the plurality of data sets comprises a primary data set and one or more secondary data sets, and wherein generating the plurality of data sets comprises, generating the primary data set in a first iteration of the plurality of iterations, wherein the primary data set includes transformed data corresponding to the selected portion of the seed data and non-transformed data corresponding to the remaining portion of the seed data; and generating the secondary data set for each subsequent iteration of the plurality of iterations to result in the one or more secondary data sets, wherein the secondary data set includes transformed data corresponding to the selected portion of the seed data.