Вы находитесь на странице: 1из 5

Software Quality

Software quality measures how well software is designed (quality of design), and how
well the software conforms to that design (quality of conformance), although there are
several different definitions. It is often described as the 'fitness for purpose' of a piece of
software.

Quality is defined by International organisations as follows:


"Quality comprises all characteristics and significant features of a product or an activity
which relate to the satisfying of given requirements".
- German Industry Standard DIN 55350 Part 11
"Quality is the totality of features and characteristics of a product or a service that bears
on its ability to satisfy the given needs".
- ANSI Standard (ANSI/ASQC A3/1978)
"a) The totality of features and characteristics of a software product that bear on its
ability to satisfy given needs: for example, conform to specifications.
b) The degree to which software possesses a desired combination of attributes.
c) The degree to which a customer or user perceives that software meets his or her
composite
expectations.
d) The composite characteristics of software that determine the degree to which the
software
in use will meet the expectations of the customer".
- IEEE Standard (IEEE Std 729-1983)
Definition –
Software quality is the degree of conformance to explicit or implicit requirements and
expectations.
Explanation:
 Explicit: clearly defined and documented
 Implicit: not clearly defined and documented but indirectly suggested
 Requirements: business/product/software requirements
 Expectations: mainly end-user expectations
Note: Some people tend to accept quality as compliance to only explicit requirements
and not implicit requirements. We tend to think of such people as lazy.

1. Software requirements are the foundations from which quality is measured.


Lack of conformance to requirement is lack of quality.
2. Specified standards define a set of development criteria that guide the manager
is software engineering.
If criteria are not followed lack of quality will usually result.
3. A set of implicit requirements often goes unmentioned, for example ease of use,
maintainability etc.
If software confirms to its explicit requirement but fails to meet implicit requirements,
software quality is suspected.

Quality Attributes

1 Reliability The extent to which a software performs its intended functions without failure.
2 Correctness The extent to which a software meets its specifications.
3 Consistency & The extent to which a software is consistent and give results with precision.
precision
4 Robustness The extent to which a software tolerates the unexpected problems.
5 Simplicity The extent to which a software is simple in its operations.
6 Traceability The extent to which an error is traceable in order to fix it.
7 Usability The extent of effort required to learn, operate and understand the functions of the
software

8 Accuracy Meeting specifications with precision.


9 Completeness The extent to which a software has specified functions.
10 Efficiency The amount of computing resources and code required by software to
perform a function.
11 Testability The effort required to test a software to ensure that it performs its intended
functions.
12 Maintainability The effort required to locate and fix an error during maintenance phase.

13 Portability The effort required to transfer a program from one platform to another
platform.

14 Understandability The effort required for a user to recognize the logical concept and its applicability.

Some models for software quality are McCall Software Quality Model, Boehm Software
Quality Model and ISO 9126 quality model.

Software Quality Control (SQC) is a set of activities for ensuring quality in software
products.
It includes the following activities:
 Reviews
o Requirement Review
o Design Review
o Code Review
o Deployment Plan Review
o Test Plan Review
o Test Cases Review
 Testing
o Unit Testing
o Integration Testing
o System Testing
o Acceptance Testing
Software Quality Control is limited to the Review/Testing phases of the Software
Development Life Cycle and the goal is to ensure that the products meet
specifications/requirements.
The process of Software Quality Control (SQC) is governed by Software Quality
Assurance (SQA). While SQA is oriented towards prevention, SQC is oriented towards
detection.

Software Quality Assurance (SQA) is a set of activities for ensuring quality in software
engineering processes (that ultimately result in quality in software products).
It includes the following activities:
 Process definition and implementation
 Auditing
 Training
Processes could be:
 Software Development Methodology
 Project Management
 Configuration Management
 Requirements Development/Management
 Estimation
 Software Design
 Testing
 etc
Once the processes have been defined and implemented, Quality Assurance has the
following responsibilities:
 identify weaknesses in the processes
 correct those weaknesses to continually improve the process
The quality management system under which the software system is created is
normally based on one or more of the following models/standards:
 CMMI
 Six Sigma
 ISO 9000
Note: There are many other models/standards for quality management but the ones
mentioned above are the most popular.
Software Quality Assurance encompasses the entire software development life cycle
and the goal is to ensure that the development and/or maintenance processes are
continuously improved to produce products that meet specifications/requirements.
Differences between Software Quality Assurance (SQA) and Software Quality
Control (SQC):

Criteria Software Quality Assurance (SQA) Software Quality Control (SQC)


SQA is a set of activities for ensuring
SQC is a set of activities for
quality in software engineering processes
ensuring quality in software
(that ultimately result in quality in
Definition products. The activities focus on
software products). The SQA activities
identifying defects in the actual
establish and evaluate the processes that
products produced.
produce products.
Focus Process focused Product focused
Orientation Prevention oriented Detection oriented
Breadth Organization wide Product/project specific
Relates to all products that will ever be
Scope Relates to specific product
created by a process
 Process Definition and
Implementation  Reviews
Activities
 Audits  Testing
 Training
Software Quality Assurance Activities
SQA is the process of evaluating the quality of a product and enforcing adherence
to software product standards and procedures. It is an umbrella activity that
ensures conformance to standards and procedures throughout the SDLC of a
software product. There are a large number of tasks involved in SQA activities.
These include:
1. Formulating a quality management plan
2. Applying software engineering techniques
3. Conducting formal technical reviews
4. Applying a multi-tiered testing strategy
5. Controlling change
6. Measuring impact of change
7. Performing SQA audits
8. Keeping records and reporting

Formulating a Quality Management Plan


One of the tasks of SQA is the formulation of a quality management plan. The
quality management plan identifies the quality aspects of the software product to
be developed. It helps in planning checkpoints for work products and the
development process. It also tracks changes made to the development process
based on the results of the checks. The quality management plan is tracked as a
live plan throughout the SDLC.

Applying Software Engineering


Application of software engineering techniques helps the software designer to
achieve high quality specification. The designer gathers information using
techniques such as interviews and FAST. Using the information gathered, the
designer prepares project estimation with the help of techniques such as WBS,
SLOC estimation, or FP estimation.
Conducting Formal Technical Reviews
Formal technical review (FTR) in conducted to assess the quality and design of
the prototype. It is a meeting with the technical staff to discuss the quality
requirements of a software product and its design quality. FTRs help in detecting
errors at an early phase of development. This prevents errors from percolating
down to the latter phases and resulting in rework.

Applying a Multi-tiered Testing Strategy


Software testing is a critical task of SQA activity, which aims at error detection.
Unit testing is the first level of testing. The subsequence levels of testing are
integration testing and system level testing. There are various testing strategies
followed by organization. At times, developers perform unit testing and
integration testing with independence testing support. There are also occasions
where testers perform functional testing and system level testing with developer
support. Sometimes beta testing with selected clients is also conducted to test the
product before it is finally released.

Controlling Change
This task combines human procedures and automated tools to provide a
mechanism for change control. The change control mechanism ensures software
quality by formalizing requests for change, evaluating the nature of change, and
controlling the impact of change. Change control mechanism is implemented
during the development and maintenance stages.

Measuring Impact of Change


The change needs to be measured and
monitored. Changes in the product or process are measured using software quality
metrics. Software quality metrics helps in estimating the cost and resource
requirements of a project. To control software quality; it is essential to measure
quality and then compare it with established standards. Software qua1ity metrics
are used to evaluate the effectiveness of techniques and tools, the productivity of
development activities and the qua1ity of products. Metrics enables mangers and
developers to monitor the activities and proposed changes throughout the SDLC
and initiate corrective actions.

Performing SQA Audits


SQA audits scrutinize the software development process by comparing it to
established processes. This ensures that proper control is maintained over the
documents required during SDLC. Audits also ensure that the status of an activity
performed by the developer is reflected in the status report of the developer.

Keeping Records and Reporting


Keeping records and reporting ensure the collection and circulation of information
relevant to SQA. The results of reviews, audits, change control, testing, and other
SQA activities are reported and compiled for future reference.

Вам также может понравиться