- Software quality assurance
Software quality assurance (SQA) consists of a means of monitoring the
software engineering processes and methods used to ensure quality. It does this by means ofaudit s of thequality management system under which the software system is created. These audits are backed by one or more standards, usuallyISO 9000 orCMMI .Overview
Software quality assurance is distinct from
software quality control which includes reviewingrequirement s documents, andsoftware testing . SQA encompasses the entiresoftware development process, which includes processes such assoftware design ,coding , source code control,code review s,change management ,configuration management , and release management. Whereas software quality control is a control of products, software quality assurance is a control of processes.Software quality assurance is related to the practice of
quality assurance in productmanufacturing . There are, however, some notable differences between software and a manufactured product. These differences stem from the fact that the manufactured product is physical and can be seen whereas the software product is not visible. Therefore its function, benefit and costs are not as easily measured. What's more, when a manufactured product rolls off the assembly line, it is essentially a complete, finished product, whereas software is never finished.Fact|date=June 2008 Software lives, grows, evolves, and metamorphoses, unlike its tangible counterparts. Therefore, the processes and methods to manage, monitor, and measure its ongoing quality are as fluid and sometimes elusive as are the defects that they are meant to keep in check.SQA Methodology
Software testing is as much an art as a science. In large, complex applications, such as operating systems, it is practically impossible to iron out every single bug before releasing it both from a difficulty point of view and due to time constraints. Different software applications require different approaches when it comes to testing, but some of the most common tasks in software QA include:
* PPQA audits: Process and Product Qualty Assurance is the activity of ensuring that the process and work product conform to the agreed upon process.The following quality control activities are often confused as quality assurance activities:
* Peer Reviews: Peer reviews of a project's work products are the most efficient defect removal (quality control) activity.
* Validation testing: Validation testing is the act of entering data that the tester knows to be erroneous into an application. For instance, typing "Hello" into an edit box that is expecting to receive a numeric entry.
* Data comparison: Comparing the output of an application with specific parameters to a previously created set of data with the same parameters that is known to be accurate.
* Stress testing: A stress test is when the software is used as heavily as possible for a period of time to see whether it copes with high levels of load. Often used for server software that will have multiple users connected to it simultaneously. Also known as Destruction testing.
* Usability testing: Sometimes getting users who are unfamiliar with the software to try it for a while and offer feedback to the developers about what they found difficult to do is the best way of making improvements to a user interface.Advantages of SQA
An SQA plan can take a number of paths, testing for different capabilities and performing different analysis, 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 have 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 is virtually impossible to know how new users will respond to an application's functions, options, and usability features. Unbiased software quality assurance 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 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.
ee also
*
Software Assurance
*Software quality control References
Furter reading
* [http://satc.gsfc.nasa.gov/assure/agbsec3.txt Software Quality Assurance] (Part I)
External links
* [http://www.swebok.org/ch11.html#Ref2.1 Software Engineering Body of Knowledge Ch. 11 Sec. 2.1]
* [http://www.sqazone.net/ Software Quality Assurance Zone]
* [http://www.qaiworldwide.org/qai.html Quality Assurance Institute Worldwide]
Wikimedia Foundation. 2010.