Serial ATA (SATA) hard drives are commonly used to store data in personal and industrial computing environments. The compatibility of a SATA drive with a particular computing environment may depend on a number of variables, including firmware, software and hardware configuration. SATA hard drives implement a standard which can be validly interpreted in multiple ways, and these interpretations vary across vendors and even across drive models from the same vendor. Software or hardware that interfaces with these drives may fail or perform inefficiently because of these implementation differences. Testing of SATA drives against software and/or hardware is therefore necessary to ensure customer satisfaction and to provide product support staff with performance and compatibility data.
As shown in FIG. 1, currently known testing relies on manual setup and repeated reconfiguration of the testing environment. A number of SATA drives must be manually connected to a first test motherboard 101, and a number of compatibility tests may be run 102. When all tests for that hardware configuration have run to completion, an engineer manually disconnects the drive(s) from the motherboard 103. Only then can the engineer manually connect the drive(s) to a second motherboard 104 to run additional tests 105. This process may be repeated until all SATA drives are tested with all motherboards.
This process typically results in two major inefficiencies. First, the manual reconfiguration (steps 103, 104) required between each round of tests is slow and tedious. Second, the practice of waiting for all tests to run to completion 102 prior to reconfiguring the environment (103, 104) may cause excessive delays when a test operator is not available at completion of the test to reconfigure the environment. Moreover, hard drives and test cables may be damaged during insertion, removal and handling, which can cause inconclusive and/or invalid test results.
Hardware switches exist for other types of hardware (e.g., KVM switches and serial port switches). For example, one or more USB and/or eSATA hard drives may be connected to a switch. However, this setup only connects a single hard drive at a time and is not software controlled for selective testing.
Currently, there are no hardware and/or software solutions available to truly automate the testing of multiple SATA drives with multiple motherboard configurations. It would therefore be beneficial if a robust and automated method and system were available to test a plurality of SATA hard drives varying in model and/or vendor with a plurality of motherboards. Because development teams are small and are adopting continuous integration testing as part of an “Agile” development process, it would be beneficial if such a system could enable more efficient testing (i.e., testing in parallel) without impacting test fidelity.