Jamie Wilson

QMCS 425 - First Paper

Software Bugs

Software bugs increase the vulnerability of information systems by compromising the integrity of expected results. Almost every computer in every system is subject to bugs, thus creating an information environment filled with inconsistency and even danger. The damage these bugs can cause ranges from near harmless to fatal, and they encompass the computing industry from PCs to multi-million dollar companies such as Microsoft and Intel. This paper discusses the cause of software bugs, coping with bugs, and specific examples of bugs that had major impacts on the environment they infested.

There are two parts to the cause of software bugs. Software bugs exist because people are not perfect and because in an industry demanding instant gratification, time is critical. In other words, the faster a company can come out with a faster, better version of a software package, the more money they make, and money drives the business.(Glaser). "The faster you bring it out, the more money you make. You can always fix it later, when people howl. It's a fine line when to release something, and the industry accepts defects," (Bruce Brown, BugNet newsletter). Faster, in this case, does not mean better when it comes to defects or errors in program code. Another probable cause of bugs is that specifications in the design documentation for software are sometimes "missing, ambiguous, in error, or in conflict," (Laudon and Laudon). Lack of project development and quality-assurance testing leads to faulty, bug-filled programs that in the long run are detrimental to the consumer. Some suggest that the cost of trying to eliminate all software bugs would be too great for the consumer but it is still necessary to come up with better standards, as the shocking examples below illustrate.

As consumers and possibly developers of multiple versions of as many software packages, it is important to learn means of coping with and preventing bugs. First, it is important to register your hardware and software in order to receive bug alerts from the manufacturers. Most companies list their known problems and alert customers about them through read-me files and user manuals. Second, once bugs are found, a manufacturer will release a fix, or "patch" for the software that is either sent out to registered users or posted on a technical support site. Installing the latest version will prevent consumers from experiencing the problems that others have already tested and tracked. A third method of combating bugs is through the use of software applications that are specifically designed to fix other companies' software (Glaser). Glaser lists the following two examples in his article: SystemSoft's System Wizard and Quarterdeck's TuneUp. However, these fixes and others only address an estimated 10 percent of common bug problems (Brown). A final option is to report any bugs that are found on a system. If this option is appealing, a consumer should make sure the circumstances of the bug occurrence are repeatable because most manufacturers look for proof before they will go back and test for possible bug causes.

For illustrative purposes, the following are excerpts from the article "Bugs: How They Breed and the Damage They Do," by Mark Glaser. Their purpose in this paper is to provide motivation for developers to pay more attention to planning and testing, and for consumers to be more aware of bugs and their possible consequences.

"Mariner 1 Venus probe loses its way: 1962"

A probe launched from Cape Canaveral was set to go to Venus. After takeoff, the unmanned rocket carrying the probe went off course, and NASA had to blow up the rocket to avoid endangering lives on earth. NASA later attributed the error to a faulty line of Fortran code. The report stated, "Somehow a hyphen had been dropped from the guidance program loaded aboard the computer, allowing the flawed signals to command the rocket to veer left and nose down...Suffice it to say, the first U.S. attempt at interplanetary flight failed for want of a hyphen." the vehicle cost more than $80 million, prompting Arthur C. Clarke to refer to the mission as "the most expensive hyphen in history."

"Patriot missile misses: 1991"

The U.S. Patriot missile's battery successfully headed off many Iraqi Scuds during the Gulf War. But the system also failed to track several incoming Scud missiles, including one that killed 28 U.S. soldiers in a barracks in Dhahran, Saudi Arabia. The problem stemmed from a software error that put the tracking system off by 0.34 of a second. As Ivars Peterson states in Fatal Defect, the system was originally supposed to be operated for only 14 hours at a time. In the Dhahran attack, the errors in the system's clock accumulated to the point that the tracking system no longer functioned. The military had in fact already found the problem but hadn't sent the fix in time to prevent the barracks explosion.

One we're all familiar with...

"New Denver airport misses its opening: 1995"

The Denver International Airport was intended to be a state-of-the-art airport, with a complex computerized baggage-handling system and 5,300 miles of fiber-optic cabling. Unfortunately, bugs in the baggage system caused suitcases to be chewed up and drove automated baggage cars into walls. The airport eventually opened 16 months late, $ 3.2 billion over budget, and with a mainly manual baggage system.

 

These examples are only a very small percentage of the millions of bugs out there that are potentially harmful. Although it is seemingly impossible to extensively and completely test a program for bugs, an increased effort is mandatory. There is no excuse for those companies that rely on quick fixes and hundreds of new releases to skirt around their programs' bugs, especially when there are automated testing tools that cut hours, even days off of testing time. Don't waste time, but take enough time to ensure that programs, packages, applications, fixes, and versions are the best they can be with the given tools and resources.