Difference Between Software Fault, Error And Failure — Tentamen Software Testing Blog

Elixir Union Function Implementation With A Fault


In the previous post, we commented on our answers for exercise Specification For Simple Function. Let’s move on and discuss how software fault, error, and failure differ from each other. We will introduce you to software testing based on the remarkable book, Introduction To Software Testing by Paul Ammann and Jeff Offutt.


The theoretical limitation of software testing is that testing can not show the absence of failures.

Validation Vs. Verification

These software testing definitions are from the book Introduction Software Testing. I found them useful, but it is ok to use different definitions.

Fault, Error, And Failure

Software fault is a static defect in the software. Software failure is an incorrect internal software state that is a manifestation of software fault. Software failure is product external unexpected behavior concerning expected behavior (listed in requirements or common sense behavior). The fault is always a developer (human) software design mistake.


Let’s examine our Elixir union function from exercise on a simple function specification. Here is our union function with error handling:

Elixir error handling
Elixir Union Function Implementation With A Fault


Faults and failures could only be identified by developers, while failures could be caught both by developers and testers.

Founder of Tentamen, software testing agency.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store