|This article does not cite any references or sources. (December 2009)|
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.
- 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.
- 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.
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
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.