The possible causes of the failure can be analyzed, by considering the operation of the design. Often, this kind of analysis is used when a design fails without any instrumentation available. This might be code at a client's site or the object carrying the code might have been destroyed, but the analysis is also helpful even if instrumentation is available.
Failure mode analysis
This goes by many names (FMEA, FMECA), but is the principles are the same. This is a bottom-up process, in that all possible modes of failure are considered for each part, building a table of the complete list of failure types for a design.
Generally, the failure types are listed with probabilities and severities. The most critical failures with highest risk can then be mitigated. This type of failure analysis is very resource intensive and requires deep understanding of the design.
An example FMEA table:
|12||Brakes||No pressure||Lines cut||No braking capabilities||Very low (0.01)||Catastrophic||Check line continuity||Install steel braided lines|
Fault tree analysis
This is a top-down process, where the possible failures of a design are listed and each failure case's cause is identified. This process is recursive, repeating for all parts that compose the larger part. If exhaustive, this should result in a tree of possible failures for a design.
Typically, the tree can be composed of events and boolean operators like
xor. Since this is top-down, the process can be stopped when the desired detail is achieved.