Avionics software, the embedded software used in airplanes and flight control hardware that is subject to legally mandated safety and reliability standards, is required by law to meet Federal Aviation Administration DO-178B regulations, which sets it apart from traditional embedded software.
This software operates on many of an aircraft's critical systems, from navigation to the black box, and must be foolproof. As most software fails due to code errors, rigorous testing is required to ensure that avionics software is reliable. Failure to do so can result in very expensive mistakes, injury or even loss of life. Proof of the reliability of these testing procedures can be seen every day in the successful takeoff and landings of hundreds of planes, commercial or otherwise.
No aircraft, civilian or military, can operate in the United States without passing the stringent FAA standards, and the best and most cost-effective way to ensure that any software designed for use in an airborne vehicle passes those regulations is redundancy testing. Other steps must be taken when producing avionics software as well. All code must be reviewed by a programmer not involved in the original production, and run against software metrics and other programs to double- and triple-check for errors. Additionally, the software must be subjected to code coverage testing, and possibly integration testing, and receive DO-178B certification from the FAA.
Additionally, as aircraft become more complex, the standards that this embedded software must meet grow even stricter. Passengers put their lives in the hands of software producers every time they step foot on a plane, helicopter or other airborne vehicle, and as software begins to control more aspects of flight, it has to be more rigorously tested.
The standards that avionics software is tested against are some of the strictest in the industry, as even one flaw could send a plane thousands of miles off course or cause malfunctions that can result in death or other disasters. This high level of protection not only ensures against failure but provides peace of mind to pilots, passengers and operators, as well as protection against liability.