Definition

quality assurance (QA)

Contributor(s): J. Alexander and Alexander Gillis
This definition is part of our Essential Guide: What you need to know about software testing automation

Quality assurance (QA) is any systematic process of determining whether a product or service meets specified requirements.

QA establishes and maintains set requirements for developing or manufacturing reliable products. A quality assurance system is meant to increase customer confidence and a company's credibility, while also improving work processes and efficiency, and it enables a company to better compete with others.

The ISO (International Organization for Standardization) is a driving force behind QA practices and mapping the processes used to implement QA. QA is often paired with the ISO 9000 international standard. Many companies use ISO 9000 to ensure that their quality assurance system is in place and effective.

The concept of QA as a formalized practice started in the manufacturing industry, and it has since spread to most industries, including software development.

QA versus QC

Some people may confuse the term quality assurance with quality control (QC). Although the two concepts share similarities, there are important distinctions between them.

In effect, QA provides the overall guidelines used anywhere, and QC is a production-focused process – for things such as inspections. QA is any systematic process for making sure a product meets specified requirements, whereas QC addresses other issues, such as individual inspections or defects.

In terms of software development, QA practices seek to prevent malfunctioning code or products, while QC implements testing and troubleshooting and fixes code.

Quality assurance checklist

History of ISO and QA

Although simple concepts of quality assurance can be traced back to the Middle Ages, QA practices became more important in the United States during World War II, when high volumes of munitions had to be inspected.

The ISO opened in Geneva in 1947 and published its first standard in 1951 on reference temperatures for industrial measurements. The ISO gradually grew and expanded its scope of standards.

The ISO 9000 family of standards was published in 1987; each 9000 number offers different standards for different scenarios.

QA standards

QA standards have changed and been updated over time, and ISO standards need to change in order to stay relevant to today's businesses.

The latest in the ISO 9000 series is ISO 9001:2015. The guidance in ISO 9001:2015 includes a stronger customer focus, top management practices and how they can change a company, and keeping apace of continuing improvements. Along with general improvements to ISO 9001, ISO 9001:2015 includes improvements to its structure and more information for risk-based decision-making.

Quality assurance in software

Software quality assurance (SQA) systematically finds patterns and the actions needed to improve development cycles. Finding and fixing coding errors can carry unintended consequences; it is possible to fix one thing, yet break other features and functionality at the same time.

SQA has become important for developers as a means of avoiding errors before they occur, saving development time and expenses. Even with SQA processes in place, an update to software can break other features and cause defects -- commonly known as bugs.

There have been numerous SQA strategies. For example, Capability Maturity Model Integration (CMMI) is a performance improvement-focused SQA model. CMMI works by ranking maturity levels of areas within an organization, and it identifies optimizations that can be used for improvement. Rank levels range from being disorganized to being fully optimal.

Software development methodologies have developed over time that rely on SQA, such as Waterfall, Agile and Scrum. Each development process seeks to optimize work efficiency.

Waterfall is the traditional linear approach to software development. It's a step-by-step process that typically involves gathering requirements, formalizing a design, implementing code, code testing and remediation, and release. It is often seen as too slow, which is why alternative development methods were constructed.

Agile is a team-oriented software development methodology where each step in the work process is approached as a sprint. Agile software development is highly adaptive, but it is less predictive because the scope of the project can easily change.

Scrum is a combination of both processes where developers are split into teams to handle specific tasks, and each task is separated into multiple sprints.

To implement a QA system, first set goals for the standard. Consider the advantages and tradeoffs of each approach, such as maximizing efficacy, reducing cost or minimizing errors. Management must be willing to implement process changes and to work together to support the QA system and establish standards for quality.

QA team

A portion of careers in SQA include job options like SQA engineers, SQA Analyst and SQA test automation. SQA engineers monitor and test software through development. An SQA Analyst will monitor the implication and practices of SQA over software development cycles. SQA test automation requires the individual to create programs to automate the SQA process.

These programs compare predicted outcomes with actual outcomes. This work is used for constant testing.

SQA tools

Software testing is an integral part of software quality assurance. Testing saves time, effort and cost, and it enables a quality end product to be optimally produced. There are numerous software tools and platforms that developers can employ to automate and orchestrate testing in order to facilitate SQA goals.

Selenium is an open source software testing program that can run tests in a variety of popular software languages, such as C#, Java and Python.

Another open source program, called Jenkins, enables developers and QA staff to run and test code in real time. It's well-suited for a fast-paced environment because it automates tasks related to the building and testing of software.

For web apps or application program interfaces, Postman will automate and run tests. It is available for Mac, Windows and Linux, and it can support Swagger and RAML formatting.

This was last updated in January 2018

Continue Reading About quality assurance (QA)

Join the conversation

6 comments

Send me notifications when other members comment.

Please create a username to comment.

How does your enterprise improve its software quality management processes?
Cancel

"Conformance to ISO 9000 is said to guarantee that a company delivers quality products and services."

To me, ISO 9000 is a very generic tool used to capture documentation around what you plan on doing and what you end up doing.  In capturing that documentation, it seems hard to claim any sort of guarantee.  Bureaucratic processes can make it such that your methods are more consistent, but in my experience when what you do varies from day to day, bureaucratic processes just get in the way.  That is to say, in the world of manufacturing, this standard is probably helpful, but in the world of software development, I would rather not be constrained by such a standard.

Cancel
Hi, please I need a comprehensive detail on QC and QA.
Cancel
It's important to mention here, that Quality Assurance applied in manufacturing is one thing. Software Quality Assurance is completely another, and methods from the former tend to fail. Software Development is Research-and-Development, and requirements are being developed, too, as the project unfolds, and technologies evolve.
Cancel
This article is well organized that made my process of understanding flow fluently. Thanks to all authors of this article.
Cancel
Can anybody tell me the relevancy of QA and QC for safety officer?
Cancel

-ADS BY GOOGLE

File Extensions and File Formats

Powered by:

SearchMicroservices

TheServerSide.com

SearchCloudApplications

SearchAWS

SearchBusinessAnalytics

SearchHRSoftware

SearchHealthIT

DevOpsAgenda

Close