Software quality management (SQM) is a management process that aims to develop and manage the
quality of software in such a way so as to best ensure that the product meets the quality standards expected by the customer while also meeting any necessary regulatory and developer requirements, if any.
Software quality managers require software to be tested before it is released to the market, and they do this using a cyclical process-based quality assessment in order to reveal and fix bugs before release. Their job is not only to ensure their software is in good shape for the consumer but also to encourage a culture of quality throughout the enterprise.
Quality management activities
Software quality management activities are generally split up into three core components: quality assurance, quality planning, and quality control.
Some like software engineer and author Ian Sommerville don't use the term "quality control" (as quality control is often viewed as more a manufacturing term than a software development term), rather, linking its associated concepts with the concept of quality assurance.
However, the three core components otherwise remain the same.
Quality assurance
Software quality assurance sets up an organized and logical set of organizational processes and deciding on that software development standards — based on industry best practices — that should be paired with those organizational processes, software developers stand a better chance of producing higher quality software. However, linking quality attributes such as "maintainability" and "reliability" to processes is more difficult in software development due to its creative design elements versus the mechanical processes of manufacturing.
Additionally, "process standardization can sometimes stifle creativity, which leads to poorer rather than better quality software."
This stage can include:
* encouraging documentation process standards, such as the creation of well-defined engineering documents using standard templates
* mentoring how to conduct standard processes, such as quality reviews
* performing in-process test data recording procedures
* identifying standards, if any, that should be used in software development processes
Quality planning
Quality planning works at a more granular, project-based level, defining the quality attributes to be associated with the output of the project and how those attributes should be assessed. Additionally, any existing organizational standards may also be assigned to the project at this phase. Attributes such as "robustness," "accessibility," and "modularity" may be assigned to the software development project.
While this may be a more formalized, integral process, those using a more agile method of quality management may place less emphasis on strict planning structures.
The quality plan may also address intended market, critical release dates, quality goals, expected risks, and risk management policy.
Quality control
The quality control team tests and reviews software at its various stages to ensure quality assurance processes and standards at both the organizational and project level are being followed.
(Some like Sommerville link these responsibilities to quality assurance rather than call it quality control.
) These checks are optimally separate from the development team so as to lend more of an objective view of the product to be tested.
However, project managers on the development side must also assist, helping to promote as part of this phase a "culture that provides support without blame when errors are discovered."
In software development firms implementing a more agile quality approach, these activities may be less formal; however, a switch to agile methods from a more formal quality management structure may create problems if management procedures aren't appropriately adapted.
Activities include:
* release testing of software, including proper documentation of the testing process
* examination of software and associated documentation for non-conformance with standards
* follow-up review of software to ensure any required changes detailed in previous testing are addressed
* application of software measurement and metrics for assessment
Software quality and the software lifecycle
The measurement of software quality is different from manufacturing; tolerances aren't applicable (at least in the same way), and objective conclusions concerning if software meets specifications are difficult if not impossible to achieve.
However, software's quality and fit-for-purpose status can still be realized in various ways depending on the organization and type of realized project. This done through the support of the entire
software development lifecycle
In software engineering, a software development process is a process of dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design, product management. It is also known as a software devel ...
, meaning:
* collecting requirements and defining the scope of an IT project, focused on verification if defined requirements will be testable;
* designing the solution, focused on planning a test process, e.g., what type of tests will be performed and how they will be performed in the context of test environments and test data?;
* implementing a solution supported by test cases and scenarios, executing them, and registering defects, including the coordination of resolving the defects;
* implementing change management, supported by verification of how planned changes can influence the quality of a created solution and eventual change of a test plan; and
* closing the project, supported by the realization of tests focused on complex verification of the overall quality of the created solution.
Links to IT methods
Software quality management is a topic strongly linked with various project management, development, and IT operation methods, including:
![Extended VModelRUP EN 01](https://upload.wikimedia.org/wikipedia/commons/8/87/Extended_VModelRUP_EN_01.jpg)
* Project management method
PRINCE2
PRINCE2 (PRojects IN Controlled Environments) is a structured project management method and practitioner certification programme. PRINCE2 emphasises dividing projects into manageable and controllable stages.
It is adopted in many countries wor ...
defines:
:* component "Quality in a project environment", which describes necessity of double-checked and objective control of created products. It proposes using 4 elements: quality management system, function of quality control, planning quality and quality controls.
:* "Quality Review Technique" which is focused on verification if created products fulfills defined quality criteria.
* Project management method
PMBOK
The Project Management Body of Knowledge (PMBOK) is a set of standard terminology and guidelines (a body of knowledge) for project management. The body of knowledge evolves over time and is presented in ''A Guide to the Project Management Body of ...
4th edition defines knowledge area Project Quality Management and following processes:
:* 3.4.12 Plan Quality,
:* 3.5.2. Perform Quality Assurance,
:* 3.6.7. Perform Quality Control
* Development method
RUP defines discipline testing, which is engaged in all phases starting from Inception, finishing at Transition.
* Development method
MSF defines tester role and stabilization phase, which focuses mainly on testing a solution.
[Microsoft Solution Framework - Chapter 18 Stabilization phase, Published: April 27, 200]
/ref>
* Agile software development, Agile methods do not precisely define the tester's role or mechanisms related to software quality management. The methods define only such techniques as continuous integration and test-driven development
Test-driven development (TDD) is a software development process relying on software requirements being converted to test cases before software is fully developed, and tracking all software development by repeatedly testing the software against al ...
. Nevertheless, there appears lastly the publication about agile testing
Agile testing is a software testing practice that follows the principles of agile software development. Agile testing involves all members of a cross-functional agile team, with special expertise contributed by testers, to ensure delivering the bus ...
.
* Operational method CMMI
Capability Maturity Model Integration (CMMI) is a process level improvement training and appraisal program. Administered by the CMMI Institute, a subsidiary of ISACA, it was developed at Carnegie Mellon University (CMU). It is required by many U ...
defines among others process area PPQA "Process and Product Quality Assurance", which is required already at CMMI level 2.
* Operational method COBIT
COBIT (Control Objectives for Information and Related Technologies) is a framework created by ISACA for information technology (IT) management and IT governance.
The framework is business focused and defines a set of generic processes for the ma ...
defines among others process P08 Manage Quality.
* Operational method ITIL
The Information Technology Infrastructure Library (ITIL) is a set of detailed practices for IT activities such as IT service management (ITSM) and IT asset management (ITAM) that focus on aligning IT services with the needs of business.
ITIL de ...
is defined among others by publication Continual service improvement.
* V-Model
The V-model is a graphical representation of a systems development lifecycle. It is used to produce rigorous development lifecycle models and project management models. The V-model falls into three broad categories, the German ''V-Modell'', a g ...
– model, which defines the software development lifecycle and test process.
* ISO 9000
The ISO 9000 family is a set of five quality management systems (QMS) standards that help organizations ensure they meet customer and other stakeholder needs within statutory and regulatory requirements related to a product or service. ISO 90 ...
– family of standards is related to quality management systems and designed to help organizations ensure that they meet the needs of customers and other stakeholders while meeting statutory and regulatory requirements related to the product.
Associations and organizations
* The American Society for Quality
The American Society for Quality (ASQ), formerly the American Society for Quality Control (ASQC), is a society of quality professionals, with nearly 80,000 members.
History
ASQC was established on 16 February 1946 by 253 members in Milwaukee, ...
(ASQ) is a professional organization that provides its members with certification, training, publications, conferences, and other services related to quality management, continual improvement, and product safety.
* The International Software Testing Qualifications Board
The International Software Testing Qualifications Board (ISTQB) is a software testing certification board that operates internationally. Founded in Edinburgh in November 2002, the ISTQB is a non-profit association legally registered in Belgium.
...
(ISTQBP is a non-profit, international association registered in Belgium. It manages the certification process for software testers and boasts more than 535,000 certificates issues in over 120 countries.
See also
* Agile testing
Agile testing is a software testing practice that follows the principles of agile software development. Agile testing involves all members of a cross-functional agile team, with special expertise contributed by testers, to ensure delivering the bus ...
* Software assurance
Software assurance (SwA) is defined as "the level of confidence that software is free from vulnerabilities, either intentionally designed into the software or accidentally inserted at any time during its lifecycle, and that the software functions ...
* Quality assurance
Quality assurance (QA) is the term used in both manufacturing and service industries to describe the systematic efforts taken to ensure that the product(s) delivered to customer(s) meet with the contractual and other agreed upon performance, design ...
* Software quality
In the context of software engineering, software quality refers to two related but distinct notions:
* Software functional quality reflects how well it complies with or conforms to a given design, based on functional requirements or specification ...
* Software quality control Software quality control is the set of procedures used by organizationsClapp, Judith A, ''Software Quality Control, Error Analysis, and Testing'', 1995 William Andrew In. to ensure that a software product will meet its quality goals at the best val ...
* Software quality assurance
Software quality assurance (SQA) is a means and practice of monitoring all software engineering processes, methods, and work products to ensure compliance against defined standards. It may include ensuring conformance to standards or models, suc ...
* Software quality analyst A software quality assurance (QA) analyst, also referred to as a software quality analyst or simply a quality assurance (QA) analyst, is an individual who is responsible for applying the principles and practices of software quality assurance through ...
References
{{Software quality
Software quality