1. A computer implemented diagnostic tool for automatically diagnosing a system by: determining a path in the storage system to test, wherein the path includes path components including at least a host adaptor, a link, a device interface, and a device; performing an initial test to determine if there is a failure in the path; adding at least one of the path components to a suspect list capable of being a cause of the failure, wherein the suspect list is implemented in a computer readable data structure; performing at least one isolation test on at least one of the path components added to the suspect list; removing the tested path component from the suspect list if the isolation test confirms that the tested path component cannot be a source of the failure; and returning the suspect list to a user to provide information on the path components capable of being the cause of the failure.