Escolar Documentos
Profissional Documentos
Cultura Documentos
Quality Assurance
Abstract:
In order to control risk, time, cost and quality, organizations have to test
their software systems thoroughly to ensure that these systems fulfill
industry requirements and meet their customer’s needs. Thorough testing is
therefore beneficial to ensure that newly developed software systems
contain attributes of correctness, reliability, performance, security, usability
etc. The principal aim of testing is to detect faults so that they can be
removed before the product is made available to customers. Faults in
software are made for a variety of reasons, from misinterpreting the
requirements through to simple typing mistakes. It is the role of software
testing and quality assurance, to reduce those faults by identifying the
failures.Software Quality assurance and testing are an essential component
that produces software applications. Testing has thus become a serious
undertaking in most organizations. A well defined quality assurance
procedure that operates throughout the development cycle is the key to
software quality and cost management and to integrate this, implementation
of international standards can help companies reach their quality goals.
Introduction:
What is Quality?
Software Quality
High quality software meets the needs of users while
being reliable, well supported, maintainable, portable,
and easily integrated with other tools.
A
Design
0
Code
C
T
v
Review
Revie
o
e
g
d
sm
t
e
p
f
i
i
lx
e
t
i
m
e
Most products have safety standards, and many have usability standards,
but computer software rarely has such standards.
• Standardizing the process can help make sure that no steps are skipped
ANSI:
American National Standards Institute.
Does not itself make standards but approves them.
AIAA:
American Institute of Aeronautics and Astronautics (e.g.
AIAA R-013-1992 Recommended Practice for Software Reliability).
EIA:
Electronic Industries Association (e.g. EIA/IS-632 Systems
Engineering)
IEC:
International Electrotechnical Commission (e.g. IEC 61508
Functional Safety - Safety-Related Systems)
IEEE:
Institute of Electrical and Electronics Engineers Computer Society
Software Engineering Standards Committee (e.g.IEEE Std 1228-1994
Standard for Software Safety Plans)
ISO:
International Organization for Standardization (e.g.ISO/IEC 2382-
7:1989 Vocabulary-Part 7: Computer Programming).
Quality Assurance
[NASA]
The function of software quality that assures that the standards, processes,
and procedures are appropriate for the project and are correctly
implemented.
What is QA?
QA 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 services) satisfy
customer requirements in a systematic, reliable fashion. Two key principles
characterize QA: "fit for purpose" (the product should be suitable for the
intended purpose) and "right first time" (mistakes should be eliminated). QA
includes regulation of the quality of raw materials, assemblies, products and
components; services related to production; and management, production
and inspection processes.
(I) ISO
(International Organization of Standards)
ISO 9126 is an international standard for the evaluation of software quality.
The fundamental objective of this standard is to address some of the well
known human biases that can adversely effect the delivery and perception of
a software development project.
[1]Quality Models
The quality model established in the first part of the standard, ISO 9126-1,
classifies software quality in a structured set of characteristics and sub-
characteristics as follows:
Functionality - A set of attributes that bear on the existence of a set of
functions and their specified properties.
Reliability - A set of attributes that bear on the capability of software to
maintain its level of performance under stated conditions for a stated period
of time.
Usability - A set of attributes that bear on the effort needed for use, and on
the individual assessment of such use, by a stated or implied set of users.
Efficiency - A set of attributes that bear on the relationship between the
level of performance of the software and the amount of resources used,
under stated conditions.
Maintainability - A set of attributes that bear on the effort needed to make
specified modifications.
Portability - A set of attributes that bear on the ability of software to be
transferred from one environment to another.
[2]Internal Metrics
Internal metrics are those which do not rely on software execution (static
measures).
[3]External Metrics
External metrics are applicable to running software.
[4]Quality in Use Metrics
Qualities in use metrics are only available when the final product is used in
real conditions.
ISO 9001
ISO 9001 is a standard based on quality management principles.It covers
product design,development,production,installation and services.ISO 9001
places great emphasis on documentation,control,traceability,measurement
and accountability.Corrective action and follow-through are also key themes.
ISO 9001 states what must be done to achieve a quality environment,it
does not say how to do this.Definition of the actual procedures is left to each
individual organization,with the goal that the procedures meet the
customer’s needs.Thus,the standard states key functional requirements for
which you must “say what you do,do what you say,and be able to
show what you have done”.The guideline ISO 9000-3 and the British
guide TickIT describe how to apply the ISO 9001 standard to the software
development environment.
(II) IEEE
(Institute of Electrical and Electronics Engineers)
The Institute of Electrical and Electronics Engineers(IEEE) issues a
collection of standards that pertain to software engineering.Each
individual standard describes a particular aspect of software
development and provides specific directions on performing that
task.The IEEE software engineering standards most directly describe
how to perform software testing activities.
The IEEE standards relevant to software testing include:
• Well defined requirements.
• Configuration management
• Reviews and audits
• Requirements traceability
(IV)CMMI:
CMMI (CMM Integration) [2] was proposed by SEI in 2000 to facilitate
integration of the contents of SW-CMM, SECM (for Systems Engineering) and
IPD-CMM (for Product Development). SW-CMM is withdrawn and SEI only
assesses companies for CMMI. CMMI has two representations: Staged and
Continuous. The continuous Representation deals with developing maturity
in selected group of process areas: Project Management, Support,
Engineering and Process Management. Staged Representation has five levels
with level 5 being the highest mark of maturity. The practices prescribed in
CMMI framework are very detailed and organizations intending to move up
the maturity levels are to show objective evidences of following the
prescribed practices.