
Consumers today are extremely intolerant of bugs, oversights, and inefficiencies largely because computers have become integrated into countless areas of life. Both in work and play, people tend increasingly to take them for granted. This in turn means that people are unwilling to accept anything less than flawless operation. An application defect is practically taken as a personal insult. So, for the software developer, "Design it, Deploy it, Fix it" is no longer an acceptable adage. That's because no one is willing to wait around for the fix -- they'll have abandoned the application for the competition's before it ever arrives.
This is why Software Quality Assurance processes (SQA) are some of the most important in the software development life cycle. SQA does what it says: it assures software quality. It does this by applying a proactive, meticulous, rigorous, repeatable methods to the testing of software, in this way assuring that defects are recognized and eliminated before the application is ever launched. Only quality software can hope to compete in today's market.
What is Software Quality? The Informatics Computer School's Software Engineering course-text (http://informaticshelp.hypermart.net/se203/Ch8_se203_sum.htm) defines Software Quality as:
- Conformance to clearly stated functional and performance requirements
- Conformance to clearly documented development standards
- Conformance to implicit characteristics that are expected of all professionally developed software
But the bottom line of software quality is conformance to the user's needs -- or requirements, or desires, or wants. The point is, any definition of software quality must take into consideration the end user's perspective. An application may do all that it was designed to do, and according to professional standards, but if users hate using it, find it difficult, unintuitive, or error-prone, then its quality is at best in question.
Being free of defects is not enough. For a software product to achieve quality it must also provide exceptional functionality, usability, and compatibility.
The Role of Software Quality Assurance (SQA) Most developers understand that defects are not an option -- that is why huge percentages of project budgets are spent on testing. But too often this testing searches only for defects -- things that fail to happen or are not supposed to happen, according to the letter of the programmed law -- and does not take into consideration the less easily identifiable factors, such as efficiency and usability, which contribute to a product's overall quality.
But SQA does. SQA ensures not only that an application is error-free, but that it is dependable, fully documented, maintainable down the line, and entirely functional according to every specification and requirement. In essence, SQA is a way to make sure that ordinary people, regular users, will be able to do everything that the application is supposed to empower them to do.
The Benefits of SQA An SQA plan can take a number of paths, testing for different capabilities and performing different analyses, depending on the demands of project, the users, and the software itself. But any rigorous SQA plan carried out scrupulously by seasoned QA professionals will confer certain benefits:
Improved Customer Satisfaction Improved customer satisfaction means longer, more profitable customer relationships, positive customer testimonials, and waves of referral business generated from positive word of mouth.
If customers are dissatisfied with a product they've purchased from a particular software vendor, they're likely never to recommend that product nor buy from that software vendor again. Bugs and defects, in addition to seriously hampering an application's functionality, look sloppy and unprofessional, and reflect poorly on a company's reputation.
What's more, without proper testing, it's virtually impossible to know how new users will respond to an application's functions, options, and usability features. Unbiased software quality assurance (SQA) specialists come to a project fresh, with a clear outlook, and so serve as the first line of defense against unintuitive user interfaces and broken application functionality. A quality application is guaranteed to result in enhanced customer satisfaction.
Reduced Cost of Development Because the process of software quality assurance (SQA) is designed to prevent software defects and inefficiencies, projects that incorporate rigorous, objective testing will find that development costs are significantly reduced since all later stages of the development life cycle become streamlined and simplified. With SQA, all further testing and development including user testing and customer deployments will go more smoothly, and of course more quickly -- which means your software development project will consistently reach completion on time and within budget, release after release.
Reduced Cost of Maintenance Bug-infested applications are troublesome to support. The combined cost of unnecessary recalls, returns, and patches can be frightful. And that says nothing of what will have to be spent on ongoing customer support, be it by telephone, email, or in person. All these costs and more can be dramatically reduced by releasing only rigorously quality-assured products. Software vendors that invest in quality now can avoid big losses in the future.
Achieving Objectivity Through Independence It's not enough for project managers to include testing periods in their development timeline. SQA cannot be treated as one additional "Thing To Do" on the way to the final launch, or a task that can be taken care of as the project proceeds, alongside or in tandem with the development itself. This is because individuals closely associated with the project are less likely to spot the problems that an external party would find easy to identify. Independent testing efforts ensure that your product is tested by individuals who will be just as objective and unforgiving as your customers in the case of potential defect.
This is simply a fact, and not a judgment of or reflection on the developers' talents. And it's a fact in every walk of life. The person who spends the most time working on a project intended for an audience cannot simply step back and look at it as though through that audience's eyes. The creator is too familiar with his work to view it objectively.
As humans we tend, whenever possible, to pass over inconsistencies and see only the big picture as an unblemished whole. Most of the time we're not even aware that we do this. Indisputably, this tendency has its benefits. Usually it's far more advantageous for us to see the overall pattern or the shape, and not the exception or the irregularity.
But this is why professional proofreaders, copy editors, test audiences, and SQA experts exist: because they bring the much-needed objectivity to the appraisal of an essay, an article, a film, or a software development project.
This is why it is of the utmost importance that SQA be independent of project management for it to be completely effective. Outsourcing SQA to an independent, unbiased source is the most effective way to achieve the objectivity that a project needs. |