A failure is the deviation of the component or system from its expected delivery, service, or result. It occurs when a defect (fault) executes during runtime and causes the actual behavior to differ from the specified/expected behavior visible to end users. Error is a human mistake, defect is the manifestation in code, failure is the observable incorrect behavior.