In an increasingly competitive marketplace system complexity continues to grow, but time-to-market and lifecycle are reducing. The purpose of fault diagnosis is the isolation of faults on defective systems, a task requiring a high skill set. This has driven the need for automated diagnostic tools. Over the last two decades, automated diagnosis has been an active research area, but the industrial acceptance of these techniques, particularly in cost-sensitive areas, has not been high. This paper reviews this research, primarily covering rule-based, model-based, and case-based approaches and applications. Future research directions are finally examined, with a concentration on issues, which may lead to a greater acceptance of automated diagnosis. Increasing costs, shorter product lifecycles, and rapid changes in technology are driving the need for automated diagnosis. Although research has been active over the last two decades, much remains to be done. Primarily, the developed techniques must be scaled up to deal with current and future technologies but with improved development times and costs. Otherwise, acceptance will be difficult, particularly in cost sensitive domains, such as PCs and consumer electronics. To date, there have been some applications, but the general use of intelligent diagnostic solutions for electronic system diagnosis has yet to happen.