E
A E
W E
T
F GIN
SO EN
3 Y
6
8 IT
L
E
A
S U E1
QECTUR
L
I
R
G
N
MS-15
Dr Muhammad Abbas
Instructor
Dr Muhammad Abbas
Email
abbasamir@hotmail.com
Class Session TUE 5:30---8:30 pm
Office Hours After class, via email, or by
appointment
YOUR BACKGROUND
Name
Day Job or Equivalent
Final Project
Quality Experience
Industry Experience
Optional: Any thing else
EVALUATION COMPONENTS
Quizzes
5
10%
Assignments 5
Project
10%
Sessional I
15%
Sessional II 15%
Final 40%
10%
TEXTBOOKS
Required Textbooks
Software Quality Engineering: Testing,
Quality Assurance, and Quantifiable
Improvement, by Jeff Tian
Reference:
1. The Art of Software Testing by Glenford
Myers
2. Managing the Testing Process: Practical
Tools and Techniques for Managing
Hardware and Software Testing, by Rex
Black
COURSE INTRODUCTION
Course Code: SE-863
Credits: 3+0
Contact Hours: 3
COURSE OBJECTIVES
Introduction to the concepts, philosophies,
tools,
techniques,
guidelines,
and
framework for software quality assurance
Verification and validation of software
Measurement of quality, quality factors,
quality costs at different stages of
software development lifecycle
Software testing and usability evaluation
methods
Software quality standards
COURSE OBJECTIVES
Software Quality Engineering, which is
organized into three major topics:
Software testing as a primary means to ensure
software quality;
Other alternatives for quality assurance (QA),
including
defect
prevention,
process
improvement, inspection, formal verification, fault
tolerance, safety assurance, and damage control;
Measurement and analysis to close the feedback
loop for quality assessment and quantifiable
improvement.
COURSE CONTENTS
Overview
of
Software
Quality:
Quality
Assurance, Quality Aspects and factors,
Quality Principles
Software Models for testing and quality
analysis: Control and Data flow graphs
Quality
Processes:
Planning
and
Documentation, Risk Analysis, Metrics
Software Testing: Phases of Testing, Test
Coverage,
Verification
and
Validation
Techniques, Black box, white-box testing
techniques, Testing using Fault Models, Test
Execution
Software Quality Standards: ISO-9126, CMMI
WHAT IS THIS COURSE ALL ABOUT
Computers and software systems are
becoming ubiquitous in modern society.
Worldwide users rely on individual and
interconnected computers to fulfill their
needs for
information processing,
storage,
search,
and retrieval.
All these needs are met with the support of
the underlying software.
10
WHAT IS THIS COURSE ALL ABOUT
This high quality need to be satisfied
through various Quality Assurance
activities
Claims for high quality need to be
supported by evidence based on
concrete measurements and analyses.
11
ANY QUESTIONS
12
LECTURE OVERVIEW
Course Introduction
Course Objectives
Course Contents
Quality expectations
An Initial Definition of (Software) Quality
Standard Definitions of (Software) Quality
Quality Problems in Large Software
Turning Failure to Success: SQE
SQE for Meeting Quality Expectations
The SQE Process
Scope of Major SQE Activities
13
QUALITY EXPECTATIONS
Our (as developers) objective is to deliver
software system that...
does what it is supposed to do
needs to be validated
does the things correctly
needs to be verified
show/demonstrate/prove it
modeling/analysis needed
14
MEETING QUALITY EXPECTATIONS
Difficulties in achieving good quality:
size: MLOC products common
complexity
environmental stress/constraints
flexibility/adaptability expected
Other difficulties/factors:
product type
cost and market conditions
Others .. (discussed in Part III of the book)
No silver bullet", but...
SQE (software quality engineering) helps
15
OVERVIEW
MEETING PEOPLES QUALITY EXPECTATIONS
The software systems must do what they are supposed
to do. In other words, they must do the right things.
They must perform these specific tasks correctly or
satisfactorily. In other words, they must do the things
right.
16
OVERVIEW
Main tasks for software quality
engineering
quality planning;
execution of selected QA or software
validation and verification activities;
measurement and analysis to provide
convincing evidence to demonstrate
software quality to all parties involved.
17
AN INITIAL DEFINITION OF (SOFTWARE)
QUALITY
Quality =
...meeting the customers
requirements,
...at the agreed cost,
...within the agreed timescales.
Quality = Fitness for
purpose
Quality = Customer
satisfaction
18
STANDARD DEFINITIONS OF
(SOFTWARE) QUALITY
IEEE Glossary: Degree to which a system,
component, or process meets (1) specified
requirements, and (2) customer
user needs or expectations
or
ISO 8402: The totality of features and
characteristics of a product or service
that bear on its ability to satisfy
specified or implied needs
19
QUALITY PROBLEMS IN
LARGE SOFTWARE
Pervasive use of software
Growing reliance on software
Large software systems
20
SOFTWARE FAILURES: THE STATISTICS
21
SOFTWARE FAILURES: COST
OVERRUNS
Overrun Amount
% cases
Average cost for failed projects is 189% of the original estimate, i.e.
almost double.
22
SOFTWARE FAILURES: TIME
OVERRUNS
Overrun Amount
% cases
Average time for failed projects is 222% of original estimate, i.e.
more than double.
23
SOFTWARE FAILURES: CONTENT
DEFICIENCIES
On average challenged projects deliver 61% of specified functions 24
TURNING FAILURE TO
SUCCESS: SQE
Failure
On
t im
W
i th
in
e
Success
Failure
bu
dg
e
Content
Failure
25
SQE FOR MEETING QUALITY
EXPECTATIONS
Expectations
reliability
for
quality
and
Validation: software systems must do
what they are supposed to do
Verification: must perform these tasks
correctly, without problems
Measurement/analysis: supported by
evidence
based
on
concrete
measurements
26
THE SQE PROCESS
1. Quality planning: plans assure that
Software development, evaluation, and acceptance standards
are developed, documented and followed
The results of quality reviews are given to appropriate
management
That test results adhere to acceptance standards
2. Software testing as the primary means to
ensure quality
3. Other alternatives for quality assurance
(QA) e.g. defect prevention, process
improvement,
inspection,
formal
verification,
fault
tolerance,
safety
assurance, and damage control
4. Measurement and analysis to close the
feedback
loop
for
assessment
and
quantifiable improvement
27
THE SQE PROCESS
This is the general subject of Software
Quality Engineering, which is organized
into three Major topics:
Software testing as a primary means to ensure
software quality;
Other alternatives for quality assurance (QA),
including
defect
prevention,
process
improvement, inspection, formal verification, fault
tolerance, safety assurance, and damage control;
Measurement and analysis to close the feedback
loop for quality assessment and quantifiable
improvement.
28
SCOPE OF MAJOR SQE ACTIVITIES
Software Quality Engineering
Quality Assurance
Testing
29
SOFTWARE FAILURES: SOME FAMOUS
EXAMPLES
Taurus (London Stock Exchange)
11 years late & 13,200% over budget
London Ambulance Service
faults led to reversion to manual processes
NHS Service
2008 was the start date, still not finished!
30
IN CLASS ACTIVITY #1
(TAKE 5 TO 10 MINS TO ANSWER THESE
QUESTIONS)
Your experience as a developer
What programming experience do you have?
(e.g. course project, internship ... Etc.)
What language did you use?
What level of quality you think it had?
How did you assure its quality?
31
IN CLASS ACTIVITY #2
(TAKE 5 TO 10 MINS TO ANSWER THESE
QUESTIONS)
Your experience as a customer
What software do you use and think it is a
good software?
Why do you think its good?
Looks good, fast, accurate etc.
How did you measure its goodness?
Can you compare it to other similar
software?
32
IN CLASS ACTIVITY #3
(TAKE 5 TO 10 MINS TO ANSWER THESE
QUESTIONS)
Your experience in management
Did you work in a team for developing a software
before? What was it?
What was your role in the team?
Was there any team member responsible for QA?
How did you divide QA tasks amongst team
members?
What can you do to enhance management of
your team with regards to QA activities?
33
YOUR EXPECTATIONS?
What do you expect to
learn in this course?
34