Software quality assurance


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 of audits of the quality management system under which the software system is created. These audits are backed by one or more standards, usually ISO 9000 or CMMI.

Overview

Software quality assurance is distinct from software quality control which includes reviewing requirements documents, and software testing. SQA encompasses the entire software development process, which includes processes such as software design, coding, source code control, code reviews, 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 product manufacturing. 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.

Look at other dictionaries:

  • Software Quality Assurance Plan — o SQAP (es decir, Plan de Garantía de Calidad de Software) es un documento que organiza el desarrollo del software con el fin de que el proceso de creación de este siga unas pautas que aseguren la calidad del resultado. Este plan de garantía… …   Wikipedia Español

  • Software Quality Assurance Plan — Definitionen von IEEE SQAP – Software Quality Assurance Plan IEEE 730 SCMP – Software Configuration Management Plan IEEE 828 STD – Software Test Documentation IEEE 829 SRS – Software Requirements Specification IEEE 830 SVVP – Software Validation… …   Deutsch Wikipedia

  • Software Security Assurance — Software is itself a resource and thus must be afforded appropriate security. Software also contains and controls data and other resources. Therefore, it must be designed and implemented to protect those resources. Software Security Assurance is… …   Wikipedia

  • Quality assurance — Quality assurance, or QA for short, refers to planned and systematic production processes that provide confidence in a product s suitability for its intended purpose. It is a set of activities intended to ensure that products (goods and/or… …   Wikipedia

  • Software quality control — (also known as Verification and Validation) consists of a means of controlling the quality of software engineering products. It does this by means of tests of the software system. These tests can be unit tests, integration tests, or system tests …   Wikipedia

  • Software Quality Model — Software quality can be defined as conformance to requirements and/or fitness of use . Quality achievements start with a loud and clear definition of what quality of source code means to your organization or project. In simple terms all the… …   Wikipedia

  • Software quality — Contents 1 Motivation for Defining Software Quality 2 Definition 3 Alternative Approaches to Software Quality Defin …   Wikipedia

  • Software Quality Analyst — A Software Quality Analyst is responsible for applying the principles and practices of software quality assurance throughout the software development life cycle. The role of a software quality analyst is often confused with the software testing… …   Wikipedia

  • Software quality management — The computer scientist Ian Sommerville uses software quality management (SQM) as an umbrella term that includes:* Software quality assurance * Software configuration management * Verification and Validation.SQM aims to put in place software… …   Wikipedia

  • Quality Assurance — Qualitätssicherung oder Qualitätskontrolle ist ein Sammelbegriff für unterschiedliche Ansätze und Maßnahmen zur Sicherstellung festgelegter Qualitätsanforderungen. Inhaltsverzeichnis 1 Definition nach EN ISO 9000 2 Qualitätssicherung 3 Begriffe 4 …   Deutsch Wikipedia