1. A method of testing compliance of a device with a bus protocol, the method comprising the steps of: (a) reading a configuration file containing predetermined parameters identifying the type of the device and capabilities of the device; (b) employing a configuration engine to dynamically generate a test environment for the device by creating selected test components which are coupled via the bus with a representation of the device to form the test environment, the test components being selected dependent on the configuration file; (c) causing a test sequence to be executed; and (d) monitoring signals passed between the representation of the device and one or more of the test components during execution of the test sequence to generate result data indicating compliance with the bus protocol.