Dr. Uzzal K. Acharjee
Associate Professor & Chairman
Dept. of CSE
Jagannath University
Mobile:01625099037
What is quality ?
Quality popular view:
– Something “good” but not
quantifiable
– Something luxury and classy
Quality professional view:
– Fitness for use (Juran, 1970):
Fit to user expectations: meet
user’s needs
A good quality product
provides
better user satisfaction
Definition of Quality
ISO 8402 definition of QUALITY:
The totality of features and characteristics of a product
or a service that bear on its ability to satisfy stated or
Software Quality - IEEE
Definition
Software quality is:
(1) The degree to which a system, component,
or process meets specified requirements.
(2) The degree to which a system, component,
or process meets customer or user needs
or expectations.
Modern view of Software Quality
• Associates several quality factors with a
software product :
– Correctness
– Reliability
– Efficiency
(includes efficiency of resource utilization)
7
Correctness
• A software product is correct,
– if different requirements as specified in the
SRS document have been correctly
implemented.
Portability
• A software product is said to be
portable,
–if it can be easily made to work in
different operating systems,
–in different machines,
9
Reusability
A software product has good
reusability,
– if different modules of the product can
easily be reused to develop new
Usability
• A software product has good
usability,
11
Maintainability
• A software product is maintainable:
– if errors can be easily corrected as
and when they show up,
– new functions can be easily added to
the product,
Five views of software
quality
• Transcendental view: Quality is viewed to be something ideal. In this case, no effort is made to express it using concrete measures. • User view: In this view, the user is concerned with whether or not the product is fit for use. The product should meet user needs and expectations.
• Manufacturing view: In this view, quality is seen as conforming to requirements.
• Product view: if a product is manufactured with good internal characteristics then it will have good external qualities.
Aspects of Software Quality
The three aspects of software quality are:
• Functional quality
• Structural quality
• Process quality.
Functional quality
Functional quality means that the software
correctly performs the tasks it’s intended to do
for its users.
Attributes of Functional Quality are:
• Meeting the specified requirements
• Creating software that has few defects
• Good enough performance.
Structural Quality
Structural quality, means that the code itself is well
structured
Attributes of Structural Quality are:
• Code testability:
Is the code organized in a way that makes testing eas
y?
• Code maintainability:
How easy is it to add new code or change existing code without introducing bugs?
Code understandability:
Structural Quality
(cont)
• Code efficiency:
Especially in resource-constrained situations, writing efficient code can be critically important.
• Code security:
Process Quality
The quality of the development process significantly
affects the value received by users, development teams,
and sponsors.
Attributers of process quality:
• Meeting delivery dates.
• Meeting budgets.
Tools for Improving Software Quality
• Tools for improving functional quality include
manual testing tools that let a tester explore the
software through its user interface, along with
tools for automated testing, such as frameworks
for unit testing.
• Tools for load testing and performance testing
can also help measure and improve those
Tools for Improving Software Quality(cont.)
• Tools that help improve the structural quality of
software provide services such as refactoring,
which lets a developer improve how code is
organized without changing what that code
does.
Software Quality - NASA
• Assures that quality is built into the software
through the functions of
– Software quality assurance
– Software quality engineering
– Software quality control
• Ensures conformance of software life cycle processes
and products to requirements, standards, and
procedures
• Performs process and product activities throughout the
life cycle to provide objective insight into the maturity and
quality of the software processes and products
• Promotes continuous process improvement
SQA – IEEE Definition
Software quality assurance is:
1. A planned and systematic pattern of all actions
necessary to provide adequate confidence that an
item or product conforms to established technical
requirements.
2. A set of activities designed to evaluate the process
by which the products are developed or
The objectives of SQA
activities in software
development
(1) Assuring an acceptable level of confidence
that the software will conform to functional
technical requirements.
(2) Assuring an acceptable level of confidence
that the software will conform to managerial
scheduling and budgetary requirements.
(3) Initiation and management of activities for
the improvement and greater efficiency of
software development and SQA activities.
The objectives of SQA
activities in software
maintenance
(1) Assuring an acceptable level of confidence that the
software maintenance activities will conform to the
functional technical requirements.
(2) Assuring an acceptable level of confidence that the
software maintenance activities will conform to
managerial scheduling and budgetary
requirements.
Software Quality Assurance
and Software Engineering
• The characteristics of software engineering, especially
the systematic, disciplined and quantitative approach at
its core, make
the software engineering environment a
good infrastructure for achieving SQA objectives
.
• The
methodologies and tools that are applied
by
software engineering determine, to a considerable
extent, the
level of quality
to be expected from the
software process and the maintenance services.
Measuring Quality
• Measurement allows us to establish
baselines for qualities. Developers must
know the
minimum level of quality
required
.
• The present level of quality of a product
needs to be evaluated so the need of
Measurement, Measure, and
Metric
• Measurement
– is the act of obtaining a measure
• Measure
– provides a quantitative indication of the size of some
product or process attribute
• Metric
– is a quantitative measure of the degree to which a
system, component, or process possesses a given
attribute
Quality as Dealing with
defects
• When people associate Quality or High Quality with software
system, it is an indication that few, if any, defects are expected to occur during its operations or when problems do occur, the negative impact is expected to be minimized.
• Key of the correctness aspect of software quality is the concept of defect, failure, fault and error.
Software Defects
The IEEE Standard 610.12 (IEEE, 1990) defines the
following terms related to defects:
• Failure: the inability of a system or component to perform
its required functions within specified performance
requirements.
• Fault: An incorrect step, process, or data definition in a
computer program.
• Error: A human action that produces an incorrect result.
Software errors, software
faults and software failures
More precisely:
• An error can be a grammatical error in one or more of the code lines, or a logical error in carrying out one or more of the client’s requirements.
• Not all software errors become software faults. in some cases, the software error can cause improper functioning of the software. In many other cases, erroneous code lines will not affect the
functionality of the software as a whole.
Software errors, software
faults and software failures
31
Software development process
software fault
software failure