01 - Introduction To Software Quality Engineering
01 - Introduction To Software Quality Engineering
Introduction
Objectives
2
What is software quality?
3
High quality software
4
Quality control and quality assurance
There are two ways of knowing whether good quality software has been
produced or NOT:
Measuring the attributes of the software that has been developed (quality control)
Monitoring and controlling the development process of the software (quality assurance)
5
Views for quality
In the user view, quality is fitness for purpose or meeting user’s needs
In the manufacturing view, quality means conformance to process
standards
In the product view, the focus is on inherent characteristics in the product
itself in the hope that controlling these internal quality indicators (product
internal metrics) will result in improved external product behavior (quality in
use)
In the value-based view, quality is the customers’ willingness to pay for a
software
6
What is the benefit of software quality
Quality provides:
The potential for an increased profit
Consumers with quality in return for the money they pay
7
Main tasks for software quality engineering
SWE 387
Quality planning
SWE 326
SWE 439
8
Quality engineering activities and process
Entry Quality
Quality No Quality goals Yes
Assurance
Planning Selected QA Feedback & satisfied?
Activities Exit
activities adjustment
Measurements
Selected
measurements Analysis/
& models modeling
Quality
results
Assessment &
Improvement
Jeff Tian, “Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement”, Wiley-IEEE Computer Society, 2005. 9
Quality engineering activities and process
Quality Planning:
Making adjustments based on
Setting quality goals feedback
Select quality assurance strategies
Quality Assurance:
QA Phase: Testing
Quality gates: at phase transition pairs, e.g., passing design reviews before coding
Other QA activities scattered over all phases, e.g., inspection specs/design/code/test cases
Quality Assessment and improvement
Jeff Tian, “Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement”, Wiley-IEEE Computer Society, 2005. 10
Quality engineering effort
Jeff Tian, “Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement”, Wiley-IEEE Computer Society, 2005. 11
Quality engineering process
12
Pre-QA activities - Quality planning
Activities that should be carried out before carrying the regular QA activities
Pre-QA quality planning includes setting quality goals and forming a QA
strategy:
Setting quality goals to manage the QA activities and stop when the quality goals are me
by matching the quality expectations with what can be economically achieved:
• Identify quality views and attributes meaningful to target customers and users
• Select direct quality measures that can be used to measure the selected quality attributes
• Quantify these quality measures to set quality goals
Forming a QA strategy: should be selected, before we can carry out specific QA activities,
collect data, perform analysis, and provide feedback
• Select appropriate QA activities to perform
• Choose appropriate quality measurements and models to provide feedback, quality assessment
and improvement
• Map the external quality measures into internal ones via selected quality models
13
Setting quality goals
14
Setting quality goals
15
Forming a QA strategy
16
In-QA activities - Executing QA activities
17
Quality assurance
People’s quality expectations for software systems they use rely upon are:
They must perform these specific tasks correctly or satisfactorily (things right) – Verification
The software systems must do what they are supposed to do (right things) – Validation
Verification requires that the software systems perform their intended functions without
problems.
For example, in the airline reservation system, the system should help travel agents or individual travelers make
valid reservations within a pre-specified time limit, instead of making invalid ones, taking too long to make a
reservation, or refusing to make reservations without proper justification.
The focus of the related activities is to verify that the implemented software functions operate as specified.
Validation requires that the software be the “right software” or perform the right functions.
For example, an airline reservation system is supposed to handle reservations, not intended to fly airplanes
automatically.
The focus of the related activities is to validate the required software functions under their intended operational
environment.
19
Verification and Validation (V&V)
Before being executed, V&V should be carefully planned as different quality attributes can
be verified in different phases of the life cycle of a system or software
For example, static (internal) quality can be only verified during the coding phase
Dynamic (external) quality requires a running code, so the first moment any measure may be taken is in the
phase of system tests
21
Role of V&V in requirements
22
Role of V&V in design
23
Role of V&V in implementation
24
Role of V&V in testing
25
Role of V&V in maintenance
26
Positive effects of Software V&V on software projects
28
Post-QA activities - Quality measurement, assessment and
improvement
29
Quality assessment and improvement
Various parallel and post-QA activities are carried out to close the quality
engineering loop
The primary purpose of these activities is to provide quality assessment and
feedback so that various management decisions, such as product release,
can be made and possible quality and process improvement initiatives can
be carried out
The major activities in this category include:
Measurement
Analysis and modeling
Providing feedback and identifying improvement potentials
Follow-up activities
30
Cost of software quality
Cost of software quality (CoSQ) is defined as the sum of the following project
costs:
Cost of planning and construction activities (e.g., planning, designing, development);
Cost of prevention activities (process improvement, tools, training);
Cost of appraisal activities for defect detection (e.g., reviews, audits, testing);
Cost of nonconformance rework (internal failure cost and external failure cost).
Software quality may include many different attributes and may be defined and perceived differently
based on people’s different roles and responsibilities
To ensure quality, perform many software QA and quality engineering activities
To manage the quality assurance (QA) activities and to provide realistic opportunities of quantifiable
quality improvement, we need to go beyond QA to perform the following:
Quality planning before specific QA activities are carried out, in the so-called pre-QA activities in software quality engineering.
• Set the overall quality goal.
• Select specific QA alternatives and techniques to implement as well as measurement and models
Quality quantification and improvement through measurement, analysis, feedback, and follow-up activities.
• These activities need to be carried out after the start of specific QA activities,
• The analyses would provide us with quantitative assessment of product quality, and identification of improvement
opportunities
• The follow-up actions would implement these quality and process improvement initiatives and help us achieve quantifiable
quality improvement
The integration of these activities with the QA activities forms our software quality engineering process
32
Summary
33
Resources
34