1 - software quality engineering
DESCRIPTION
SQE lec 1TRANSCRIPT
SE-863 SOFTWARE
QUALITY E
NGINEERING
LECTURE 1
MS-15
Dr Muhammad Abbas
1
2
Instructor Dr Muhammad Abbas
Email [email protected]
Class SessionTUE 5:30---8:30 pmOffice Hours After class, via email, or by
appointment
YOUR BACKGROUND
NameDay Job or EquivalentFinal ProjectQuality ExperienceIndustry ExperienceOptional: Any thing else
3
EVALUATION COMPONENTS
4
Quizzes 5 10%Assignments 5 10%Project 10%Sessional I 15%Sessional II 15%Final 40%
TEXTBOOKS
5
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-863Credits: 3+0Contact Hours: 3
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
7
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.
8
COURSE CONTENTSOverview 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
9
WHAT IS THIS COURSE ALL ABOUTComputers 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 EXPECTATIONSOur (as developers) objective is to deliver
software system that...
does what it is supposed to do needs to be “validated“
does the things correctlyneeds to be “verified“
show/demonstrate/prove it modeling/analysis needed
14
MEETING QUALITY EXPECTATIONSDifficulties 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 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.
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) QUALITYQuality = ...meeting the customer’s requirements,
...at the agreed cost, ...within the agreed timescales.Quality = “Fitness for purpose”Quality = Customer satisfaction
18
STANDARD DEFINITIONS OF (SOFTWARE) QUALITYIEEE 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
19
QUALITY PROBLEMS IN LARGE SOFTWAREPervasive use of softwareGrowing reliance on softwareLarge software systems
20
SOFTWARE FAILURES: THE STATISTICS
21
SOFTWARE FAILURES: COST OVERRUNS
Average cost for “failed” projects is 189% of the original estimate, i.e. almost double.
Overrun Amount % cases
22
SOFTWARE FAILURES: TIME OVERRUNS
Average time for “failed” projects is 222% of original estimate, i.e. more than double.
Overrun Amount % cases
23
SOFTWARE FAILURES: CONTENT DEFICIENCIES
On average “challenged” projects deliver 61% of specified functions 24
TURNING FAILURE TO SUCCESS: SQE
SuccessOn tim
eWithin budget
Content
Failure
Failure
Failure
25
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
26
THE SQE PROCESS1. 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 standards2. Software testing as the primary means to
ensure quality3. 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 budgetLondon Ambulance Service faults led to reversion to manual processesNHS Service2008 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 developerWhat 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?
31
Your experience as a customerWhat 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?
IN CLASS ACTIVITY #2(TAKE 5 TO 10 MINS TO ANSWER THESE
QUESTIONS)
32
Your experience in managementDid 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?
IN CLASS ACTIVITY #3(TAKE 5 TO 10 MINS TO ANSWER THESE
QUESTIONS)
33
YOUR EXPECTATIONS?
What do you expect to learn in this course?
34