1. A method for diagnosing a system-under-test, comprising: identifying a symptom; selecting each of a first series of function tests associated with the symptom on the system-under-test and a first parameter value; performing each of the first series of function tests until a positive first series function test result is generated or until each of the first series of function tests is performed and generates a negative test result; responsive to the generated positive first series function test result, selecting and performing each of a first series of dependent tests, each associated with the positive first series function test result and the first parameter value until a positive first series dependent test result is generated or until each of the first series of dependent tests is performed and generates a negative test result; responsive to the generated positive first series dependent test result, identifying a system element associated with the generated positive first series dependent test result as a failing element and selecting and performing each of a first series of failure tests associated with the failing element and the first parameter value until a positive first series failure test result is generated or until each of the first series of failure tests is performed and generates a negative test result; identifying a failure mode associated with the generated first series positive failure test result; determining that no failure mode is found in response to the each of the performed first series of failure tests generating negative test results; and in response to the each of the performed first series of function tests generating negative test results and the each of the performed first series of dependent tests generating negative test results, determining that no failing element is found and ordering a second series of function tests, a second series of dependent tests and a second series of failure tests, wherein each of the second series of function tests, the second series of dependent tests and the second series of failure tests are associated with a second parameter value; wherein the first and the second parameter values comprise a test cost; and wherein the selecting the each of the first series of function tests, the first series of dependent tests and the first series of failure tests comprises selecting a test having a low test cost value, and the ordering the second series of function tests, the second series of dependent tests and the second series of failure tests comprises selecting a test having a higher test cost value relative to the low test cost value.