Diagnostic program


A diagnostic program is an automatic computer program sequence that determines the operational status within the software, hardware, or any combination thereof in a component, a system, or a network of systems. Diagnostic programs ideally provide the user with guidance regarding any issues or problems found during its operation.
Diagnostics programs may be simple or complex, operating unknowingly within everyday devices or awaiting their invocation to make more complex performance assessments. Everyday examples are a microwave oven that displays code F6 to warn of a shorted temperature probe or a garage door opener that flashes its control board's LED four times warning of critically misaligned safety sensors and impending shutdown.
Diagnostic programs are also inserted into consumer electronic products and electronic games. Sometimes if the owner of an electronic device asks the manufacturer how to access the hidden diagnostic program, they may reply to the consumer saying that the information is considered to be "proprietary" and cannot be shared.

History

Early diagnostics 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 diagnostics 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 memory that logs memory failure events that were automatically corrected.

    Architectures