Diagnostic Program

Traditional Definition

A diagnostic program is a program written for the express purpose of examining the state, or locating problems with the hardware, or operating system environment that it is running on/in.

 

Evolved Definition

A diagnostic program is a program written for the express purpose of locating problems with the software, hardware, or any combination there of in a system, or a network of systems. Preferably, diagnostic programs provide solutions to the user to solve issues.

 

Examples

Diagnostics that are run on-demand when a user needs assistance, typically within the primary operating system of the computer (e.g.Windows)

"Off-line diagnostics" that are run outside the primary operating system, typically to reduce the masking influence of software on hardware issues

Background diagnostics that monitor the system for failures and marginal events, and provide statistical data for failure prediction, and root cause analysis of actual failure conditions

Solutions-oriented diagnostics, that diagnose and resolve user-perceived issues with a computer system.

 

Methods of Operation

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.

White box, which uses knowledge of a mechanisms inner functions to direct testing.

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.

Background monitoring of system indicators, for statistical analysis of trends, and for recording abnormal events

Background diagnostics, that perform testing of system components during idle-time of a system

Operation-interleaved diagnostics, that incorporate diagnostics into the normal operation of a system component, thus any marginal operating mode is immediately diagnosed

Solution-based diagnostics, that test for known failure modes by identifying if their known symptoms are detected.

 

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 into an environment that is easily tailored for particular requirements.

Knowledge-Driven diagnostic system (such as a technician or diagnostician) 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.

 

Modular Diagnostics

Lego-like combination of testing features based on the specific requirements of a target environment:

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 (FRU). Note that service/warranty is typically focused solely on hardware and its internal firmware, as most software-related issues can be resolved by an end-user with the assistance of a technical support agent over the phone.

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

 

Hardware-assisted Diagnostics

In some cases hardware components have specific features to assist a diagnostic program to test it. For example, most modern hard drives have commands that provide information about some permanent error conditions. Also, some systems with ECC memory will log memory failures that were automatically corrected.

 

This is a human-readable summary of (and not a substitute for) the Creative Commons Attribution Share-Alike license (CC-BY-SA) from Wikipedia.org.