Earlier quoted context omitted.
Honestly I wish instead of the Therac-25, we were discussing a system which made use of unit testing and defensive coding, yet still failed. That would be more educational. It's too easy to look at the Therac-25 and think "I would never write a mess like that".
One instance that crosses my mind often is the airbus a320 incident at Hamburg in 2008. Everything was done right there, but the requirements were wrong. Despite all the procedures and tests, the software still managed to endanger the lives of the passengers.
https://en.wikipedia.org/wiki/Maneuvering_Characteristics_Au...