a system , method and computer program product are provided for testing software to be run on a data processing apparatus having a processor for performing data processing operations , a memory for storing data for access by the processor , and at least one temporary storage located between the processor and the memory and operable to temporarily store data to improve speed of access to that data by the processor . the software tested controls the maintenance of data by the at least one temporary storage . the test system comprises a processor simulator for simulating the data processing operations performed by the processor , including issuing an access request when access to a data value is required , the access request causing one or more data access operations to be performed . the test system also includes a temporary storage simulator provided for each temporary storage , and arranged to simulate the operation of that associated temporary storage . each data access operation of the access request is routed to an appropriate temporary storage simulator , and that temporary storage simulator then determines whether the data required by that data access operation is stored in the temporary storage simulator . if so , the required data is retrieved from the temporary storage simulator rather than from memory . the test system also includes a checker operable to perform a checking operation to check the accuracy of the data retrieved for each data access operation of the access request .