Software Bug Caused Qantas Airbus A330 To Nose-Dive
pdcull writes "According to Stuff.co.nz, the Australian Transport Safety Board found that a software bug was responsible for a Qantas Airbus A330 nose-diving twice while at cruising altitude, injuring 12 people seriously and causing 39 to be taken to the hospital. The event, which happened three years ago, was found to be caused by an airspeed sensor malfunction, linked to a bug in an algorithm which 'translated the sensors' data into actions, where the flight control computer could put the plane into a nosedive using bad data from just one sensor.' A software update was installed in November 2009, and the ATSB concluded that 'as a result of this redesign, passengers, crew and operators can be confident that the same type of accident will not reoccur.' I can't help wondering just how a piece of code, which presumably didn't test its input data for validity before acting on it, could become part of a modern jet's onboard software suite?"
A CS lecturer of mine at a well known Australian University used to love telling a story from when he used to work at Microsoft in the late 90s. He was sent to a CS conference on a red-eye flight which caused him to arrive hours early. Having nothing better to do, he entered the conference room and found the Microsoft table, where he sat by himself.
Being so early, the entire conference room was empty except for one other table that already had several engineers sitting at it, having a rousing discussion. Everyone at the table was telling stories about the ridiculous routes they had taken to get there, some of them taking three or more connecting flights to seemingly random places before arriving at the city where the conference was being held.
During the conference he found out that the table with the crazy connecting flights was for engineers for Airbus, and by some casual snooping he discovered that these seemingly insane flight arrangements had been made by the Airbus employees to make sure that they weren't on a flight in an Airbus plane. At the time Boeing planes still had mechanical cockpit controls, whereas Airbus had a layer of software which translated cockpit controls into signals to mechanical actuators. Being engineers, these guys all understood that even very high quality software has bugs, and they didn't want to put their own safety in the hands of the code they had helped develop.
Now, whether my lecturer's story was true or not I have no idea (I believed him at the time). But the point of the story was that all software has bugs, and anything short of NASA-level diligence is probably not going to eliminate all of them. This story seems to prove that he was right!