A method of testing a plurality of devices, such as hard disk drives, in
response to a random request by checking whether hard disk drive have
been loaded, and sequentially allocating one test thread for each loaded
hard disk drive. Each allocated thread performs a series of test job
operations one by one when called and required for testing the loaded
hard disk drive, and records a test status of each hard disk drive
whenever one job operation of the test by the test thread is terminated
to allow a next test thread to refer to the recorded test status. Each
hard disk drive is tested according to a time required to test that hard
disk drive.