2. Ms. AYESHA RAANA [Lecturer]
COMPUTER SCIENCE DEPARTMENT
GC WOMEN UNIVERSITY,SIALKOT
Email:: ayesha.raana@gcwus.edu.pk
Office :: IT Block, GC Women University Sialkot
Student Hours: Mentioned outside my office
INSTRUCTOR INFORMATION
3. This course deals with a very important aspect of
software engineering: quality assurance
of software products and services
We’ll learn different aspects of software quality
assurance in this course
4. - Software Quality Engineering By JEF TIAN
- Software Testing & Continuous quality improvement 2nd Edition by
William Lewis.
Books
5. - Quality
- Quality Types
- Quality Control
- Different views of Quality
- Quality Models
Presentation Outline
6. What is Quality?
Can you define quality?
You must be thinking, what kind of question is
that. It is very easy to define quality, but if you
think really hard, it is not that easy to define
quality
Have you come with a definition? Let’s see what
I have in store for you
9. Quality
Quality means::
meeting the customer’s requirements, at the agreed
cost, within the agreed timescales.
“Fitness for purpose”
Customer satisfaction
10. So, What is Quality ?
Quality can mean different things to different people. What 'quality' features would you look for in a car, for example ? Speed,
comfort, style, reliability, safety, serviceability ? How much would you be willing to pay for these things ?
In software terms, we consider Quality to be about delivering a product that meets the customer's requirements, at an agreed
cost, and within agreed timescales. It is no use delivering a perfect piece of code that cost twice as much as intended...
Of course, customer requirements can include some expectations of usability, reliability, maintainability, portability,
extendibility, security, etc. These are what we call Non-Functional Requirements.
We also use the term "fitness for purpose". What we mean by that is that we shouldn't waste time & effort building in features
that the customer doesn't really want. Why build a Rolls Royce when the customer only needs a Bicycle ?
Ultimately, this leads us to the key criterion: That of customer satisfaction. Whatever we do, if the customer isn't satisfied (&
doesn't give us repeat business), then we've failed in some way.
11. Standard Definitions of Quality
There are many quality definitions some of them are listed below
The American Heritage dictionary defines quality as ‘a characteristic or
attribute of something’.
IEEE Glossary: Degree to which a system, component, or process
meets (1) specified requirements, and (2) customer or user needs or
expectations
ISO 8402: The totality of features and characteristics of a product or
service that bear on its ability to satisfy specified or implied needs
Another definition, coined by Gerald Weinberg in Quality Software
Management: Systems Thinking, is "Quality is value to some person." This
definition stresses that quality is inherently subjective - different people
will experience the quality of the same software very differently. One strength
of this definition is the questions it invites software teams to consider, such as
"Who are the people we want to value our software?" and "What will be
valuable to them?"
13. Software Quality
Software Quality can be 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”
This definition emphasizes three important points
Software requirements are the foundation from which quality is
measured. Lack of conformance to requirements is lack of quality
Specified standards define a set of development criteria that guide
the way in which software is engineered. If the criteria are not
followed , lack of quality will almost surely result.
If a software conforms to its explicit requirements but fails to meet
implicit requirements, software quality is suspect.
14. Quality Types
Quality of Design (how well software is designed )
the characteristics that designers specify for an item.
In Software development, quality of design includes requirements
and the design of the system.
measures how valid the design and requirements are in creating a
worthwhile product
Quality of Conformance (how well the software conforms to that
design)
the degree to which the design specification are followed.
It focuses on implementation based on the design.
16. Quality Control
What is quality control?
Quality control is defined as the processes and methods
used to monitor work and observe whether requirements
are met. It focuses on reviews and removal of defects
before shipment of products.
It is possible to have the same group that builds the product
perform the quality control function, or to establish a quality
control group or department within the organizational unit
that develops the product.
For software products, quality control typically includes
specification reviews, inspections of code and documents,
and checks for user deliverables.
17. Quality Control
Objective
minimize the produced
defects, increase the product
quality
Implementation
approaches
Fully automated
Entirely manual
Combination of automated
tools and human interactions
18. Quality Control
Key concept of quality
control
compare the work products
with the specified and
measurable standards
Quality control can be provided
by various sources.
Quality control is designed to
detect and correct defects.
Detection implies flaws in the
processes that are supposed to
produce defect-free products
and services.
19. Variation Control
Variation is the heart of quality control
We want to minimize the difference between the predicted
resources needed to complete a project and actual resources
used including Staff, equipment and time
20. Objective Quality VS Perceived Quality
• Quality might be the most important factor underlying the long-term success
of products and firms. The business press routinely cites quality as the cause
of firm success and failure.
• Objective quality is operationalized as a composite of instrument measures
and expert ratings on multiple product attributes. For example, a personal
computer’s objective quality attributes include processing speed, hard disk
capacity, reliability, and features like the modem. Objective quality does not
include intangible attributes like aesthetics and brand image or salesperson
behavior.
• Perceived quality is the overall subjective judgment of quality relative to
the expectation of quality. These expectations are based on one’s own and
others’ experiences, and on sources including brand reputation, price, and
advertising. It is not necessary to use or examine a product to form
perceptions of quality.
21. Objective Quality VS Perceived Quality
However, it is now well established that it is not the objective
quality but rather customers’ perceptions of quality that drive
preferences and, ultimately, satisfaction, loyalty, sales, and
profitability.
Numerous anecdotes suggest that customer perceptions of
quality do not reflect objective quality. Companies frequently find
that negative perceptions persist even after products perform
well in quality tests. For example it took Google three years after
its launch to be perceived as the superior search engine.
22. Different Views of Quality
Transcendental view:
associated with
intangible properties
that delight users
User view: fitness for
purpose or meeting
user’s needs
Manufacturing view:
conformance to
process standards or
the right
development of the
product
23. Different Views of Quality
Product view: inherent characteristics in the product
itself
Value-based view: customers willingness to pay
24. People’s/ User’s Quality Expectations
People’s quality expectation for software systems they use and rely upon are
two-fold:
The software system must do what they are supposed to do. In
other words , they must do the right things (Validation)
They must perform these specific tasks correctly. In other words,
they must do the things right (Verification)
Verification --> refers to the set of
activities that ensure that software
correctly implements a specific function.
Validation --> refers to a different set
of activities that ensure that the software
that has been built is traceable to customer
requirements.
25. Internal/Producer Quality Expectations
For managers: adherence to process standards, proper
choice of methodologies and tools
Service related producers: usability, maintainability
3rd party or software packaging producers: modularity
Marketing personnel: profitability and customer value
26. Quality Models
A Quality Model is defined as, “ the set of characteristics and the
relationships between them which provides the basis for specifying
quality requirements and evaluating quality”
Software quality is described by specific quality models
Two main approaches:
Standard Models:
McCall
ISO/IEC 9126
Application or company specific quality models
FURPS
GQM Approach
27. Factor-Criteria-Metrics-Model
Classification into :
Factors (to specify):
They describe the external view of the software, as viewed
by the users.
Criteria (to build):
They describe the internal view of the software, as seen by
the developer.
Metrics (to control):
They are defined and used to provide a scale and method
for measurement.
28. McCall’s Quality Factors and Criteria
McCall, Richards, and Walters studied the concept of software
quality in terms of two key concepts as follows:
quality factors, and
quality criteria.
A quality factor represents the behavioral characteristic of a
system.
Examples: correctness, reliability, efficiency, testability,
portability e.t.c
A quality criterion is an attribute of a quality factor that is
related to software development.
Example: Modularity is an attribute of the architecture of a
software system. A highly modular software allows designers to
put cohesive components in one module, thereby increasing the
maintainability of the system.
31. McCall’s 11 Quality Factors
Product Revision
Maintainability - Can I fix it?
Flexibility - Can I change it?
Testability - Can I test it?
Product Transition
Portability - Will I be able to
use on another machine?
Reusability - Will I be able to
reuse some of the software?
Interoperability - Will I be able
to interface it with another
application?
Product Operation
Correctness - Does it do what I
want?
Reliability - Does it do it
accurately all the time?
Efficiency - Will it run on my
machine as well as it can?
Integrity - Is it secure?
Usability - Can I run it?
Attributes of Quality Factors
33. McCall’s Quality Criteria’s
Some Quality Criteria’s from McCall’s Model is listed below:
Accuracy (The precisions of computations and outputs)
Completeness (The degree to which the full implementation of the
required functionalities has been achieved)
Error Tolerance (The degree to which the continuity of operations
is ensured under adverse conditions)
Expandability (The degree to which software functions can be
expanded )
Hardware Independence (The degree to which the software is
dependent on the underlying hardware)
Modularity (The provision of highly independent modules)
Simplicity (The ease with which the software can be understood)
34. McCall’s Quality Factors and Criteria
Relationship Between Quality Factors and Quality Criteria
Each quality factor is positively influenced by a set of quality
criteria, and the same quality criterion impacts a number of
quality factors.
Example: Simplicity impacts reliability, usability, and
testability.
If an effort is made to improve one quality factor, another
quality factor may be degraded.
Example: Portable code may be less efficient.
Some quality factors positively impact others.
Example: An effort to improve the correctness of a system
will increase its reliability.