Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 34

Imran Khawar Bodla

Instructor Imran Khawar Bodla

Email ikbodla@hotmail.com

Class Session TBD


Communication Hours After class, via email, or by
appointment

SE-471 SOFTWARE QUALITY ENGINEERING 2


YOUR BACKGROUND

Name
Day Job or Equivalent
Final Project
Quality Experience
Industry Experience
Optional: Any thing else

SE-471 SOFTWARE QUALITY ENGINEERING 3


EVALUATION COMPONENTS
Quizzes 3-5 5%
Assignments 3-5 10%
Project 15%
Mid 20%
Final 60%

SE-471 SOFTWARE QUALITY ENGINEERING 4


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

SE-471 SOFTWARE QUALITY ENGINEERING 5


COURSE INTRODUCTION

Course Code: SE-471


Credits: 3+0
Contact Hours: 3

SE-471 SOFTWARE QUALITY ENGINEERING 6


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

SE-471 SOFTWARE QUALITY ENGINEERING 7


BUILDING THE RIGHT SYSTEM VS.
BUILDING THE SYSTEM RIGHT

Don’t Just Build the System Right, Build


the Right System:

Validation: Are we building


the right system?
Verification: Are we building
the system right?

SE-471 SOFTWARE QUALITY ENGINEERING 8


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.

SE-471 SOFTWARE QUALITY ENGINEERING 9


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.

SE-471 SOFTWARE QUALITY ENGINEERING 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.

SE-471 SOFTWARE QUALITY ENGINEERING 11


ANY QUESTIONS
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

SE-471 SOFTWARE QUALITY ENGINEERING


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

SE-471 SOFTWARE QUALITY ENGINEERING 12


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

SE-471 SOFTWARE QUALITY ENGINEERING 13


OVERVIEW
• MEETING PEOPLE’S 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.

SE-471 SOFTWARE QUALITY ENGINEERING 14


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.

SE-471 SOFTWARE QUALITY ENGINEERING 15


AN INITIAL DEFINITION OF (SOFTWARE) QUALITY
Quality =
 ...meeting the customer’s requirements,
 ...at the agreed cost,
 ...within the agreed timescales.
Quality = “Fitness for purpose”
Quality = Customer satisfaction

SE-471 SOFTWARE QUALITY ENGINEERING 16


STANDARD DEFINITIONS OF (SOFTWARE)
QUALITY
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

SE-471 SOFTWARE QUALITY ENGINEERING 17


QUALITY PROBLEMS IN LARGE
SOFTWARE
Pervasive use of software
Growing reliance on software
Large software systems

SE-471 SOFTWARE QUALITY ENGINEERING 18


SOFTWARE FAILURES: THE STATISTICS

Cancelled
31%

Successful
16%

Challenged
53%

SE-471 SOFTWARE QUALITY ENGINEERING 19


SOFTWARE FAILURES: COST OVERRUNS
Overrun Amount % cases
Under 20% 15.5%
21 - 50% 31.5%
51 - 100% 29.6%
101 - 200% 10.2%
201 - 400% 8.8%
Over 400% 4.4%

Average cost for “failed” projects is 189% of the original estimate, i.e.
almost double.
SE-471 SOFTWARE QUALITY ENGINEERING 20
SOFTWARE FAILURES: TIME OVERRUNS
Overrun Amount % cases
Under 20% 13.9%
21 - 50% 18.3%
51 - 100% 20.0%
101 - 200% 35.5%
201 - 400% 11.2%
Over 400% 1.1%
Average time for “failed” projects is 222% of original estimate, i.e.
more than double.
SE-471 SOFTWARE QUALITY ENGINEERING 21
SOFTWARE FAILURES: CONTENT
DEFICIENCIES
Under 25% 4.6%
25 – 49% 27.2%
50 – 74% 21.8%
75 – 99% 39.1%
100% 7.3%

On average “challenged” projects deliver 61% of specified functions

SE-471 SOFTWARE QUALITY ENGINEERING 22


TURNING FAILURE TO SUCCESS:
SQE
Failure Failure

Success

Scope / Content

Failure

SE-471 SOFTWARE QUALITY ENGINEERING 23


SQE FOR MEETING QUALITY
EXPECTATIONS
Expectations for quality and reliability
 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

SE-471 SOFTWARE QUALITY ENGINEERING 24


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

SE-471 SOFTWARE QUALITY ENGINEERING 25


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.

SE-471 SOFTWARE QUALITY ENGINEERING 26


SCOPE OF MAJOR SQE ACTIVITIES

Software Quality Engineering

Quality Assurance

Testing

SE-471 SOFTWARE QUALITY ENGINEERING 27


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!

SE-471 SOFTWARE QUALITY ENGINEERING 230


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 it’s quality?

SE-471 SOFTWARE QUALITY ENGINEERING 29


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 it’s good?
Looks good, fast, accurate … etc.
How did you measure it’s goodness?
Can you compare it to other similar software?

SE-471 SOFTWARE QUALITY ENGINEERING 30


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?

SE-471 SOFTWARE QUALITY ENGINEERING 31


YOUR EXPECTATIONS?

What do you expect to learn in


this course?

SE-471 SOFTWARE QUALITY ENGINEERING 32

You might also like