Another major software vulnerability surfaced this month that has affected thousands of computer systems in the Twin Cities and across the country.
The "software glitch" that led to the development of the Blaster worm, is basically attributable to software quality problems.
Even though Microsoft provides rigorous quality assurance and testing procedures, this clearly points out the need for continued diligence.
It's almost becoming expected of software systems to be rife with serious errors. And it's not just the major software vendors who are at risk. Software quality is quickly becoming an oxymoron. Things are to the point now where virtually everyone depends upon software for most aspects of their life. Many people learned that the hard way these past two weeks when they spent hours trying to remove and patch their systems to eradicate the Blaster worm and its variants.
We bank online, send critical personal and business correspondence by e-mail, we even book our vacations online.
The fact is, most of the U.S. commercial infrastructure is managed and monitored by software systems. Think about it. Virtually every form of transportation is dependent upon software. Our power plants, water treatment plants, air traffic control and communication systems all depend upon vastly complex software systems.
In addition, nearly every company of any size depends upon dozens of software packages to run most facets of their business.
Our lives have become dominated by software, and in many cases we don't even know it.
As a result, software quality means more to all of us today because we've all become so much more reliant on it. Next time you watch or listen to the news, check to see if another glitch has made the program.
Well, it doesn't have to be that way. While software systems have become increasingly complex and exposed - via the Internet - so have the tools and techniques for testing software professionally. There are vendors, some of whom are very large, that specialize in the creation of automated software testing tools.
That's basically software that tests software. (And you didn't believe me when I said that software runs everything?)
There are also companies that specialize in improving software quality. These companies employ professional software testers who utilize these specialized testing tools, as well as proven manual methods and techniques to ensure that software systems meet certain quality guidelines before being released for general use.
While it is very unlikely that any significant software system is released today without some errors, making sure that the most serious glitches are caught is becoming imperative.
Oddly enough, however, it's usually the software testing phase of development that's cut short when software development projects are behind schedule or budget. Also, in many organizations junior software developers or other employees trying to break into the technology field, do the actual testing of these software systems. This is usually done because the project is behind schedule, over budget, or both.
But now that software so pervasive in our economy - and the effects of software glitches so profound - it is time for professional software developers to embrace more rigorous quality practices.
Organizations can vastly improve their software quality by employing some very fundamental practices:
- Automated testing
These automated tools have become very powerful and, when implemented properly, they will yield more consistent results in shorter time frames. These tools can be a great investment in software quality.
- Quality assurance experts
These professionals employ a systematic and proven process to detect software errors. They also approach software from a user's perspective instead of a developer's. I can't tell you how many times I've heard a developer say "Well why would anyone try that?"
Well let me tell you, my mother might try that and by the way, she might meet the profile of the intended audience for the particular software product or Web site being tested.
Quality assurance experts not only implement the test tools properly but also leave behind a valuable set of tools including test plans, test cases and test results as well as test scripts that may used over and over again on subsequent software releases.
- Embrace software quality from the outset
Professional testers, when involved from the very beginning, can actually help define system requirements in a meaningful way. They will ensure that system requirements are in fact testable and specific.
While it's unlikely that professional testing will identify every software glitch, the most serious of these problems needs to be addressed before unleashing these systems on unsuspecting users.
Giving software quality a touch of lip service at the tail end of a project is not adequate any more.
About the Author
John R. Fox is vice president for SWAT Solutions of Plymouth, a software testing service for Web and client/server based software. Fox has 23 years of experience in the software industry with companies such as Unisys, Young America Corp., and Wilson Learning His e-mail address is jfox@swatsolutions.com