Skip to main content

Software errors and their impact on cost

Short answer

A software error is a human mistake that creates a fault, which may cause a failure. The later an error is found the higher the fix cost: roughly 1x at requirements, 3-6x at design, 10x at coding, 15-40x at testing, and 30-100x after release.

Define software errors and their impact (on cost) in terms of software engineering.

A software error is a human mistake made while specifying, designing or coding software (for example, misreading a requirement or writing < instead of <=). The error introduces a fault (defect or bug) into a work product, and when that faulty code is executed it may cause a failure, where the system's behaviour differs from what is required.

Error (human mistake) -> Fault (defect in code/doc)
                      -> Failure (wrong behaviour)

Types of errors

  • Requirements errors: missing, ambiguous or wrong requirements.
  • Design errors: wrong algorithm, poor interfaces, wrong data structures.
  • Coding errors: logic, syntax, boundary and initialisation mistakes.
  • Documentation and configuration errors: wrong manuals, wrong build or version.

Impact on cost

The most important point is that the later an error is found, the more it costs to fix. An error found after release may need the specification, design, code, tests and documentation all changed, followed by regression testing and redeployment. Typical relative costs (Boehm, Pressman):

Phase where error is fixedRelative cost
Requirements1
Design3–6
Coding10
Testing15–40
After release (operation)30–100 or more

Other cost impacts:

  • Rework cost: a large share of project effort (often 30–50%) is spent on rework.
  • Testing cost: more errors mean more test cycles and regression testing.
  • Maintenance cost: corrective maintenance, patches and customer support.
  • Failure cost: penalties, lost business, legal claims and damage to reputation. In safety-critical systems errors can cause loss of life; the Ariane 5 rocket was lost in 1996 because of a data conversion overflow in reused software.
  • Schedule cost: delays in delivery, which also raise cost.

Because of this, software engineering uses error prevention and early detection: clear requirements, reviews and inspections, prototyping, and testing in every phase. Money spent on finding errors early (cost of prevention and appraisal) is much less than the cost of failures found by users.

✓ Answer checked by Claude Sonnet 5.5

All Software Engineering chapter 7 questions →