Computer systems run the modern world, which sometimes leads to technical failures being the cause of fatal accidents in the material environment. Such failures are usually the result of human mistakes in engineering, calculations, software development, and testing.
Here are the most resonant those mistakes and headline-making cases from all over the world that prove the importance of providing quality assurance of any software. We will group the incidents by their cost, be it time, money, or lives.
Time & Money
We all know that “time is money”, so the mistakes that cost time, undeniably lead to financial losses.
The incident took place in 1997 when the American aircraft carrier USS Yorktown lost control of its propulsion system due to the shutdown of all machines in the system. It turned out that the system administrator had entered 0 value into the database for one of the parameters when trying to troubleshoot a fuel valve, so when the systems tried to use this variable, it caused division by 0. The ship stopped dead in the water, and it took two hours and forty-five minutes to restart the systems and run it again.
In 2004, in Los Angeles airport, flight control radio room lost voice contact with more than 800 planes, and the spare communication system was disconnected too. This occurred because of the ticker timer that served to identify and synchronize messages. It started from the highest number 2 to 32 degrees, and every new message decreased the timer on 1. When the number of tickers has reached 0, it turned out that the system couldn’t continue to send messages. Now, the security procedure in the airport requires the system to reboot every 30 days since it takes 50 days to send 2 to 32 degrees messages. Unfortunately, this knowledge came at a considerable cost in money and resources.
The incident happened in 1991 when the Patriot system could not intercept the missile launched by the forces of Saddam Hussein. The missile hit the barracks of US soldiers, leading to 28 deaths. When transferring time, 24-bit interceptor processors made an error in 0.013 seconds every hour, so Patriot got the wrong calculation of the missile position equal to 600 meters after more than 100 hours of working without system reboot.
This mistake costed 7 billion dollars and is considered as one of the most expensive mistakes in programming history. In 1996, the carrier rocket Ariane 5 was supposed to put several satellites and other equipment into orbit but exploded immediately after the launch due to the error in the onboard computer software. One of the system modules attempted to convert a 64-bit floating point number in a 16-bit integer. The value was too big and did not fit in 16 bits, which caused an overflow. The main and backup computers had the same software, so they worked the same way.
Mariner 1 is a spacecraft that was on a mission to fly-by Venus in 1962 but barely made it out of Cape Canaveral. A software-coding error caused the rocket to deviate off-course, threatening it to crash. In result, NASA engineers had to issue a self-destruct command. The financial losses were reportedly more than $18 million.
Below are the cases when technical failures have cost much more than just time and money. It may seem surreal, but even minor errors in programming can lead to people’ deaths.
Joshua Brown Case
People are currently obsessed with a dream of self-driving vehicles that entirely eliminate human participation and run on autopilot. However, the price of their benefits is too high when it comes to accidents that occur with such cars due to technical errors.
Joshua Brown is known as the first Tesla driver who died during a ride on autopilot. His car didn’t recognize the light colored wagon against the light sky and didn’t activate the brake system, so the car crashed into the wagon at full speed. Tesla representatives insisted that the system had worked and gave signals to the driver to put his hands on the steering wheel, but he ignored them. Is still unknown if this is true, but the accident has raised second thoughts in people regarding the autopilot.
Elaine Herzberg Case
Another notorious story is about Elaine Herzberg — the first woman who died under the wheels of a self-driving Uber car. It was in the night time, and the car didn’t recognize a human. The driver who was supposed to control the autopilot did not have enough time to stop.
In 1992, when the London ambulance decided to replace human operators with a computer system, it was put into operation without load testing and with 81 known bugs! The system crashed due to the errors in the distribution of routes of ambulances, which led to the death of people. Furthermore, they bought cheap equipment, which broke down a couple of hours after active use of the system.
Multidata Systems International
This case concerns radiation therapy software for cancer patients, developed by Multidata Systems International. Miscalculation of the proper dosage exposed patients to harmful and even fatal levels of radiation, causing the deaths of 8 people.
The most resonant case in the programming history of medical devices was the incident with Therac-25 radiation therapy machine. Due to the race condition error, when quickly switching between the magnetic and X-ray modes of the device, the X-ray shutter did not have time to be set. In result, ten patients received radiation sickness, which led to either death or amputation of the affected parts of the body.
Boeing 787 Dreamliner
This case is about the timely detection of the error in the Boeing 787 Dreamliner aircraft, the prevention of which probably saved the lives of hundreds of people. The bug could have turned off the power supply of the plane after 248 days of work regardless of the phase of the aircraft. The reason was a 32-bit decreased number that after 248 days would equal 0,01 seconds, which does not fit into the capacity and will lead to complete loss of control of the aircraft.
These stories are only a drop in the sea, and there are thousands of examples when programming errors cost time, money, and lives. And there will be more if people would not pay proper attention to the quality of the developed software and its сomprehensive testing.
At QAwerk, we take a responsible approach to the solutions we build. We aim to provide top-notch software development and quality assurance services for clients who represent different industries. Whether it is a simple mobile app or a complex project like the upgrade of the voting system in the European Parliament, our specialists are always prioritizing the quality of the developed products.