Lecture 1: Introduction to
Software Quality Assurance
Software Quality Assurance (INSE
6260/4-UU)
Winter 2015
Overview
Course Outline
Project
Software Quality
Software Quality Assurance
2
Course Outline
Instructor: Dr. J. Bentahar
Office: EV7.630
Lectures: Tuesday, 17h45 20h15
Office Hours: Friday, 10h30 12h00
Phone: 848-2424 ext. 5382
E-Mail:
[email protected] 3
Course Outline
Course Web:
http://www.ciise.concordia.ca/~bentahar/inse6260.html
Lecture notes
Useful links
Useful information
Software Systems Procurement 5
INSE 6260/4-UU
Software Quality Assurance:
Software Quality (factors, models, life cycles, and
standards)
Quality assurance for quality models and
specifications: verification, validation and testing
Objectives:
To discover and learn various concepts and
techniques related to software quality assurance
To learn to apply these techniques
To develop critical thinking skills
6
INSE 6260/4-UU
Software
Quality
Assurance
Software Quality
Quality Assurance
Factors and Testing Reachability
Metrics Inspection
Models Techniques Analysis
7
Textbooks for Reading
1) Software Quality Assurance: From
Theory to Implementation, 2012
This book covers several issues related to
software quality assurance. Some
important chapters are: software quality
challenge, what is software quality,
software quality factors, and software
testing
8
Textbooks for Reading
2) Metrics and Models in Software
Quality Engineering, 2010
This book is a reference in software
metrics. It covers a comprehensive breadth
of measurement theory and software
quality metrics
9
Requirements and Grading
One in-class midterm exam (closed book)
28%
One in-class final exam (closed book)
40%
One team project (2 members (No Exception),
presentation + report)
16% + 16% = 32%
10
Important dates
Project proposal February 02, 2016
Midterm exam March 01, 2016
Project presentation March 29, 2016
Final exam TBS
Project report April 12, 2016
11
Overview
Course Outline
Project
Software Quality
Software Quality Assurance
12
Project
Project proposal: Crowd sourcing
Deadline: February 02, 2016
Team members
Programming Language(s)
Abstract about the architecture and main
functionalities of the system
Main references
The topic will be discussed next week in
detail
13
Overview
Course Outline
Project
Software Quality
Software Quality Assurance
14
Definitions
Software
Software quality
Software quality assurance
Errors, faults, failures
Cause of errors
15
What is Software?
IEEE definition, ISO 1997 sec. 3.11 and
ISO/IEC 9000-3 SEC. 3.14
Software is:
Computer programs (Code)
Procedures
Documentation
Data necessary for operating the software
system
16
Software Quality
SQ- IEEE definition
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
17
SQ Pressmans Definition
SQ 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
18
Quality Problem
Users Decision maker
client
Request
software
Quality
Benefits
Developers
Intermediate
Decision maker
Products
provider
19
Quality Policies and Quality
System
Quality
Policies
Implements
Expressed and implicit
Requirements by the
users Product
Quality system
(quality)
20
Overview
Course Outline
Software Quality
Software Quality Assurance
Software Development Life Cycle
21
Quality Software Assurance
IEEE definition
Quality assurance is
1. A planed 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 manufactured
22
Software Quality Assurance
(cont.)
SQA expanded definition
A systematic, planed set of actions
necessary to provide adequate confidence
that the software development process or
the maintenance process of the software
system product conforms to established
functional technical requirements as well
as with the managerial requirements of
keeping the schedule and operating within
budgetary confines
23
Quality Control versus SQA
Quality Assurance is process oriented and focuses on
defect prevention, while quality control is product
oriented and focuses on defect identification.
Quality Assurance (QA) is meant to minimize the costs
of quality by introducing a variety of activities throughout
the development process and maintenance process in
order to prevent the causes of errors, detect them, and
correct them in the early stages of the development.
As a result, quality assurance substantially reduces the rate of
non-qualifying products
24
The Uniqueness of SQA
High complexity
Invisibility of software
Production process
Need for SQA methodologies and tools
25
Why do we care about
Quality?
Development cost Correction cost& source
Specification: 6% Req. & Specification:
Design: 5% 56%
Coding: 7% Design: 24%
V&V (Testing): 15% Coding: 10%
Maintenance: 67% Other: 10%
26
Relative Cost of Error
Correction
1000
100
10
1
Rqmts
Design
Code
Operation
Dev Test
Sys Test
27
Systems Complexity
28
Examples of Software Glitches
29
Examples of Software Glitches
30
Examples of Software Glitches
31
Distinction between Software
Errors and Faults
Software Error: section of the code that are
incorrect as a result of grammatical, logical or
other mistakes made by a system analyst, a
programmer, or another member of the
software development team
Software Faults are software errors that
cause the incorrect functioning of the
software during a specific application
32
From Errors to Failures
33
Causes of Software Errors
Client- developer communication failures
Deviations from software requirements
Logical design errors
Coding errors
Non compliance with documentation and coding
instructions
Shortcoming of the testing process
Documentation errors
34
Cost of Quality
Cost of quality includes all costs incurred in the pursuit of
quality or perform quality related work
Quality cost includes:
- Prevention cost:
- quality planning
- formal technical reviews
- testing equipment
- training
- Appraisal cost:
- in-process and inter-process inspection
- testing
- Failure cost:
- rework, repair, and failure mode analysis
- complaint resolution
- product return and replacement
35
Three Views of Quality
Product view: Business view:
functionality, correctness, timeliness, customer
performance, usability ... satisfaction
does it sell?
Process view: producing the right product
efficiency, cost & schedule, at the right time for the right
failures (rework). price?
36
SQA Group
People involved in quality assurance activities:
Software engineers, project managers, customers,
sales people, SQA group
Activities:
- apply technical methods and measures
- conduct formal technical review
- perform well-planned software testing
37
What Experts say about
Quality?
Two dominant views on software quality: Experts:
1. Conformance and degree Philip B. Crosby
of satisfaction to defined Edwards Deming
specification. Armand V. Feigenbaum
Joseph M. Juran
2. The products or services Walter A. Shewhart
capability to meet customer Kaoru Ishikawa
expectations explicitly or implicitly
stated.
38
Philip B. Crosby
Quality is a subjectively identified notion by
each individual and institution
As this is not useful in software engineering,
quality must be defined as conformance to
requirements
Nonconformance to requirements is the
absence of quality, quality problems become
nonconformance problems, and quality
becomes definable
39
W. Edwards Deming
Translating future needs of the user into measurable
characteristics
Constantly changing based on real world competitors,
solutions, technology, and price
40
Armand V. Feigenbaum
Quality is based upon the customers actual experience with the
product or service, measured against his or her requirements
stated or unstated
conscious or merely sensed
technically operational
entirely subjective
always representing a moving target
41
Kaoru Ishikawa
Quality defined according to standards (ISO, IEEE
etc.) contain shortcomings, does not reflect constantly
changing customer needs
Narrowly interpreted, quality means quality of
products
Broadly interpreted, quality means quality of product,
service, information, processes, people, systems etc.
42
Joseph M. Juran
Quality can be:
Those product features which meet the need of customers and
thereby provide product satisfaction
Freedom from deficiencies
Quality in terms of satisfying customer expectations or
specifications is not usable as it is very hard to achieve
Quality is fitness for use
43
Walter A. Shewhart
Quality from two perspectives:
An objective reality independent of the existence of the
customer
The subjective perspective dependent on individual
thoughts, feelings or senses as a result of the objective reality
44
References
Chap 1, 2, 3 &4 of Software Quality
Assurance Daniel Galin
45