1. A method of producing test data for testing the operation of an electronic circuit comprising: determining independent portions of at least one circuit testing algorithm, the independent portions being portions of the at least one circuit testing algorithm that do not depend upon results from the performance of other portions of the at least one circuit testing algorithm, and wherein non-independent portions of the at least one circuit testing algorithm depend upon the results from performing at least one other portion of the at least one circuit testing algorithm and wherein the circuit testing algorithm is at least one of a test pattern generation algorithm or a fault simulation algorithm; performing at least one of the independent portions of the at least one circuit testing algorithm non-sequentially to generate results for said at least one of the independent portions; performing at least one of the non-independent portions of the at least one circuit testing algorithm sequentially to generate results for said at least one of the non-independent portions of the at least one circuit testing algorithm; and processing the results for said at least one of the independent portions with the results for the non-independent portions to determine at least one of (i) a test pattern for use in testing the electronic circuit; and (ii) fault simulation results.