Friday, November 20, 2015

A bug costing 370 million dollars

A couple of months ago I wrote a post about Software quality assurance. Long story short, having a bug in a website for a local grocery store is one thing, having a bug in a medical device, a jet fighter or a commercial airplane is a totally different story. Here's a rare example when things go wrong in a critical software piece:

"Ariane 5 is a European heavy lift launch vehicle that is part of the Ariane rocket family. The first test flight (Ariane 5 Flight 501) on 4 June 1996 failed, with the rocket self-destructing 37 seconds after launch because of a malfunction in the control software. A data conversion from 64-bit floating point value to 16-bit signed integer value to be stored in a variable representing horizontal bias caused a processor trap (operand error) because the floating point value was too large to be represented by a 16-bit signed integer. The software was originally written for the Ariane 4 where efficiency considerations (the computer running the software had an 80% maximum workload requirement) led to four variables being protected with a handler while three others, including the horizontal bias variable, were left unprotected because it was thought that they were "physically limited or that there was a large margin of error". The software, written in Ada, was included in the Ariane 5 through the reuse of an entire Ariane 4 subsystem despite the fact that the particular software containing the bug, which was just a part of the subsystem, was not required by the Ariane 5 because it has a different preparation sequence than the Ariane 4."

Here's the report

Here's the video