Month: July 2014
The software is the soul of all computers, controlling everything from your smartphone, to your alarm clock, and even your car. While these strings of ones and zeroes have made life considerably easier, they do encounter hiccups every now and then. For the most part, they cause only minor, if annoying, issues. In some cases, as you’ll see below, they can bring about major headaches which highlight the need for rigorous software testing:
Due to a software bug, the Therac-25 medical radiation therapy device inadvertently administered massive amounts of radiation to patients—up to 100 times the prescribed dose! As you might expect, many of the patients became even more ill and three of them even perished as a result of this mishap.
Are Ye a Pirate?
Microsoft’s Windows XP is one of the most popular operating systems (OS) in history—and also one of the most pirated. To counter this, they included an anti-piracy tool, called Windows Genuine Advantage (WGA), in the OS. A bug, however, identified thousands of legal copies as pirated versions, much to the chagrin of consumers.
Where’d the Money Go?
In 2012, Knight Capital was almost driven into bankruptcy when a software glitch caused its computers to buy and sell shares on a whim. The result: the company lost half a billion dollars in 30 minutes, and its stock price plummeted by about 75% in 48 hours.
When it comes to quality assurance, computer programs must meet certain parameters as defined by reputable governing bodies like the International Organization for Standardization (ISO). For this reason, software developers need to use reliable QA testing tools that allow them to identify and fix software problems from the get-go. Effective QA testing not only yields a product that not only satisfies clients’ needs but also minimizes the need for software patches in the future.
Efficiency is one factor that all kinds of software should meet. An inefficient program, after all, consumes more time and resources to perform its intended function. Software developers ensure the efficiency of each program by streamlining its coding or by removing bits of redundant code. An efficient program is also likely to satisfy the need for portability since it can be migrated from one system to another without much difficulty.
Usability, on the other hand, focuses on aesthetic value rather than functionality. Simply put, a program should have an easy-to-use interface that is accessible to beginners and advanced users alike. In a way, usability is also related to the program’s testability since a user-friendly software should be easy to test for bugs and oversights—preferably without having to access the program using its root language.