An apparatus for use in testing an application, the application being operable to perform a plurality of different data processing operations by processing a set of received input data and a set of stored reference data, the apparatus comprising: a data repository configured to store a copy of some or all of the set of stored reference data and a logic defining: content of the set of received input data, and valid combinations of values for attributes of the set of received input data and the set of stored reference data, wherein each of the set of received input data and the set of stored reference data comprises one or more attributes, each of the one or more attributes having at least one value; wherein the data repository is configured to: designate at least one of the attributes of the set of received input data and set of the stored reference data as being an attribute whose values determine a data processing operation performed by the application when values of the at least one attribute individually or in combination with one or more values of at least one other attribute result in the application performing different processing operations, and determine a plurality of values or ranges of the designated at least one attribute that result in the different processing operations being performed by the application; and a test data generation component configured to generate a set of input data (130, 134) for use in testing the application by: selecting, from the copy of some or all of the set of stored reference data, based upon the determined plurality of values or ranges, values for the designated at least one attribute that result in the application performing the different data processing operations during testing, wherein combinations of values that do not satisfy the stored logic defining the valid combinations of values are disregarded, and outputting the selected values in the generated set of input data for testing the application. a data repository configured to store a copy of some or all of the set of stored reference data and a logic defining: content of the set of received input data, and valid combinations of values for attributes of the set of received input data and the set of stored reference data, wherein each of the set of received input data and the set of stored reference data comprises one or more attributes, each of the one or more attributes having at least one value; content of the set of received input data, and valid combinations of values for attributes of the set of received input data and the set of stored reference data, wherein each of the set of received input data and the set of stored reference data comprises one or more attributes, each of the one or more attributes having at least one value; wherein the data repository is configured to: designate at least one of the attributes of the set of received input data and set of the stored reference data as being an attribute whose values determine a data processing operation performed by the application when values of the at least one attribute individually or in combination with one or more values of at least one other attribute result in the application performing different processing operations, and determine a plurality of values or ranges of the designated at least one attribute that result in the different processing operations being performed by the application; and designate at least one of the attributes of the set of received input data and set of the stored reference data as being an attribute whose values determine a data processing operation performed by the application when values of the at least one attribute individually or in combination with one or more values of at least one other attribute result in the application performing different processing operations, and determine a plurality of values or ranges of the designated at least one attribute that result in the different processing operations being performed by the application; and a test data generation component configured to generate a set of input data (130, 134) for use in testing the application by: selecting, from the copy of some or all of the set of stored reference data, based upon the determined plurality of values or ranges, values for the designated at least one attribute that result in the application performing the different data processing operations during testing, wherein combinations of values that do not satisfy the stored logic defining the valid combinations of values are disregarded, and outputting the selected values in the generated set of input data for testing the application. selecting, from the copy of some or all of the set of stored reference data, based upon the determined plurality of values or ranges, values for the designated at least one attribute that result in the application performing the different data processing operations during testing, wherein combinations of values that do not satisfy the stored logic defining the valid combinations of values are disregarded, and outputting the selected values in the generated set of input data for testing the application.