SOFTWARE QUALITY ASSURANCE

Download Report

Transcript SOFTWARE QUALITY ASSURANCE

SOFTWARE QUALITY ASSURANCE

DEFINITIONS OF SQA
 SOFTWARE STANDARDS
Process Quality Assurance
Product Quality Assurance



SQA ATTRIBUTES
SOFTWARE METRICS:
CONTROL METRICS
PREDICTOR METRICS
DOCUMENTATAION
DEFINITION OF SQA
Bersoff (1984) provides a good working
definition of SQA;
“SQA consists
of
those
procedures,
techniques
and
tools
applied
by
professionals to ensure that a product meets
or exceeds pre-specified standards during a
product's development cycle; and without
specific
prescribed
standards,
quality
assurance entails ensuring that a product
meets or exceeds a minimal industrial and /or
commercially acceptable level of excellence.”
SOFTWARE QUALITY ASSURANCE

SQA is defined as;
“Conformance to explicitly stated
functional
and
performance
requirements, explicitly documented
development standards and implicit
characteristics that are expected of
all
professionally
developed
software.”
SQA DEFINITION
According to Dunn and Ullman;
 “SQA is the mapping of managerial
precepts and design disciplines of
quality
assurance
onto
the
applicable
managerial
and
technological space of software
engineering.”
SOFTWARE QUALITY ASSURANCE
SQA encompasses;




A Quality Management Approach;
Effective
Software
Engineering
Technology;
Formal Technical Reviews that are applied
throughout the process;
A Multi-tiered Testing Strategy;
SOFTWARE QUALITY ASSURANCE



Control of Software Documentation
and changes made to it;
A procedure to ensure compliance to
software development standards;
Measurement
and
reporting
mechanism;
SQA ACTIVITIES


The SQA activities are divided between
two groups;
Software Engineer who incorporate the
quality into the design by using solid
technical methods and procedures;
SQA Team, who is responsible for quality
assurance planning, oversight, record
keeping, analysis and reporting.
SOFTWARE STANDARDS
One of the most important roles of the QA
team is the development of product and
process standards:
 Product
Standards:
These define
characteristics
which
all
product
components should exhibit. An example
is- Review Form- which defines the
information to be collected during review.
SOFTWARE STANDARDS
 Process
Standards:
These define how the software
process should be conducted.e.g.
procedural definition of how design
review should be conducted.
Why Standards are important ?



They provide an encapsulation of best or at least
most appropriate practice.This knowledge is often
only acquired after a great deal of trial and
error.Building it into standard avoids the repetition
of past mistakes.
They provide a framework around which QA
process may be implemented.
They assist in continuity where work carried out by
one person is taken up and continued by another.
They ensure that all SE follow the practice.
ISO9000 STANDARDS

The ISO 9000 standards have been adapted by
many countries like Canada, Mexico,The United
States and India and so on.

ISO 9001 STANDARD: This is the standard
applicable to Software Engineering.The standard
contains 20 requirements that must be present
for an effective Quality assurance system.

The actual standard for Software Process is ISO
9001.3.
ISO 9001 REQUIREMENTS
The requirements delineated by
ISO 9001 address topics such as;
Management Responsibilities;
Quality System;
Contact Review;
Process Control;
ISO 9001 REQUIREMENTS
Design Control;
Document and Data Control;
Corrective and preventive
Actions;
Internal Quality Audits;
SQA ATTRIBUTES
Boehm et.al. (1978) suggest that quality criteria
include, but not limited to, the attributes as shown;










ECONOMY
INTEGRITY
DOCUMENTATION
UNDERSTABILITY
FLEXIBILITY
INTEROPERABILITY
MODULARITY
CORRECTNESS
RELIABILITY
EVOLEVEBILITY










VALIDITY
GENERALITY
TESTABILITY
REUSABILITY
USABILITY
CLARITY
PORTABILITY
EFFICIENCY
RESILIENCE
MAINTAINABILITY
CORRECTNESS :
The extent to which a software
satisfies its specifications. A
program is functionally correct, if
it behaves according to the
specifications of the functions it is
suppose to provide, which are
called functional requirements
specifications.
RELIABILITY
 Informally,
software is reliable if the
user can depend on it. The
specialized literature on software
reliability defines reliability in terms
of statistical behavior, the probability
that the software will operate as
expected over a specified period of
time.
ROBUSTNESS
A program is robust if it behaves
“reasonably”, even in circumstances that
were not anticipated in the requirements
specifications, for example, it encounters
incorrect input data or some hardware
malfunction (disk crash).
 A program that assumes perfect input and
generates an unrecoverable run-time error,
if user type some commands, will not be
robust.

USER-FRIENDLYNESS
A
software is user-friendly if its human
interface is easy to use. An application
that is designed using GUI concept will
be more user friendly in comparison to
that which uses text Commands to be
typed from the key-board.
 MSDOS
Based:Not user friendly.
Windows-Based:User-friendly.
VERIFIABILITY
A software is “verifiable” if its properties
can be verified easily.For example it
correctness can be verified.
 A common technique for improving the
verifiability is the use of “Software
Monitors” that is, code inserted in the
software to monitor various qualities such
as performance or correctness.
 Verifiability is an Internal Quality.

MAINTAINABILITY
Software Maintenance is commonly used
to refer to the modifications that are to be
made to software system after initial
release and some user trial.
 Maintenance used to be viewed as;
BUG-FIXING
ENHANCING
THE
PRODUCT
CAPABILITY.

REUSABILITY
 Reusability
means to use the
functions or objects or components
written by other programmers in our
program to achieve our goals and
objectives in minimum possible time
with optimum coding at our end.
EFFICIENCY
 The
amount of computing resources
and code required by a software
system to perform its intended
functionality is called the efficiency of
the system.
 The efficiency comparison is done on
standard hardware to make a fair
decision.
ACCURACY AND
ERROR TOLERANCE
 The
correctness in intended precision
is called accuracy of the software
system.
 When program encounters an error,
what is the limit / extent to which the
program can tolerate this error (i.e.
program is not damaged due to this
error) is called error tolerance,
SOFTWARE QUALITY FACTOR
 The
Software
defined as;
Quality
Factor
is
Fq = C1*M1+C2*M2+…….Cn* Mn.
Where C1, C2 … are Regression Coeff.
M1,M2.. Are Software Metrics.
SOFTWARE METRICS
A software metric is any measurement
which relates to a software system, process
or related documents. Examples are
measures of the size of the product as;
 Line of Code,
 Fog Index of a product Manual,
 The number of faults reported in the
product,
 The number of Man-Months required for
development.

METRIC CATEGORIES
CONTROL METRICS: These are used by
management to control the software
process. Ex. are Efforts expended, elapsed
time and disk usage.
 PREDICTOR
METRICS:
These
are
measurements of a product attributes
which can be used to predict associated
product quality.Ex. are readability of
manual,ease of operation and maintenance
and so on.

SUMMARY
We have defined the SQA.
 The attributes of SQA are explained.
 Software
ISO 9001 Standard
discussed.
 Software Metrics were presented.
Control Metrics
Predictor Metrics

was