1. A method of using a processor to determine the presence of particular faults in a machine, comprising the steps of: the processor estimating a time for performance for each of a plurality of machine test procedures by providing a summation, for each test procedure, of estimated times for performing portions of each of said test procedures, wherein portions of said machine test procedures which are unnecessary due to a present test configuration of the machine are not included in said summation; the processor choosing a particular test procedure from said group of machine test procedures by selecting the one of said machine test procedures having a highest test score, said test score being inversely proportional to said summation; the processor prompting a user to perform said particular test procedure and provide results thereof to the processor; the processor generating a plurality of pending hypotheses wherein each hypothesis has associated therewith a set of confluences using variables and equations to describe operation of components of the machine which are assumed not to have failed; the processor propagating values indicative of said test results through said confluences to produce a set of predictions for values of confluence variables; the processor discarding hypotheses which produce an inconsistent set of predictions; the processor saving hypotheses which produce a consistent set of predictions; and the processor indicating the presence of one or more particular machine faults in response to there remaining a single hypothesis corresponding to failure of one or more particular machine components.