Diagnostic program


A diagnostic program is software that determines the operational status of a computer system. Ideally, it provides guidance for handling a detected issue or problem. Although called a program, it is not necessarily a computer program per se. In the more general sense of the word, it is a well-defined capability of a computer program. Such a capability is often found in a consumer electronic product and electronic game.
Often, the capability operates without user interaction. For example, a microwave oven may display code "F6" to warn of a shorted temperature probe or a garage door opener may flash an LED to warn of critically misaligned safety sensors and impending shutdown.

History

Early diagnostic programs were procedural instructions performed by humans, not by computer programs. See Built-in test equipment that enabled system operators to perform testing and diagnostics.
As computers became smaller, more mobile, computer programs were used to perform diagnostics tasks. In the late 1960s, Volkswagen introduced the first on-board computer system with diagnostics provisions.

Methods of operation

The diagnostic program for a device or system may be independently located or integrated within. These Methods of Operation are arranged, more-or-less, in order of increasing complexity and their increasing value of diagnostics information.
  1. Background monitoring of system indicators, for statistical analysis of trends, and for recording abnormal events.
  2. Solution-based diagnostics, that test for known failure modes by identifying if their known symptoms are detected.
  3. Black box, which is testing of a mechanism without knowing how it works, and merely focusing on the accuracy of output data based on a known input.
  4. White box, which uses knowledge of a mechanism's inner functions for direct testing.
  5. Operation-oriented, a combination of both black and white box, with one or more black-box operations interleaved with one or more white-box operations. This mode of testing is not preferred, however, some complex systems do not have the necessary interfaces to perform one or the other type independently.
  6. Integrated background diagnostics, that perform testing of system components during idle-time of a system.
  7. Operation-interleaved diagnostics, that incorporate diagnostics into the normal operation of a system component, thus any marginal operating mode is immediately diagnosed. Examples of hardware components with features that assist a diagnostic program are:
  8. # Modern hard drives have Self-Monitoring, Analysis and Reporting Technology commands that provide information about internal error conditions, e.g., spin retry counts, bad sector counts, etc.
  9. # Some systems may use Error Correcting Code (ECC) memory that logs memory failure events that were automatically corrected.

Architectures

  • Single-purpose diagnostic, also referred to as "Defined-purpose" diagnostic, such as a program that validates the Windows DirectX configuration.
  • Multi-purpose diagnostic, a monolithic program that performs multiple tasks that may or may not be suitable for all uses. This would be similar to a hammer that will perform well with nails, less so with screws, and poorly with nuts and bolts.
  • Modular diagnostic, which combines sets of single-purpose diagnostics, Lego-like, into an environment easily tailored to particular industry requirements. Key to its design is its reusable hardware and software operating system that performs all of its diagnostic programs. Application examples are:
  • * manufacturing testing with an emphasis on checking assembly-related issues and optimizing for time
  • * end-user targeted diagnostics, with an easy to comprehend non-technical presentation, and an emphasis on solutions
  • * service/warranty testing, focusing on identifying a failed or marginal field-replaceable unit
  • * refurbishing centric, which attempts to determine if a system can be resold or reused, with an emphasis on depth of testing, at a cost to time spent testing
  • Knowledge-Driven diagnostic system where the knowledge acquired over time is used as a "mental model" of the system's operation and informs the diagnostic system through logical reasoning to one or more possible or likely causes for a situation to exist.

Examples