Introduction to Software Quality Assurance

Slides:



Advertisements
Similar presentations
OHT 2.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
Advertisements

Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
PERTEMUAN - 2 SOFTWARE QUALITY. OBJECTIVES After completing this chapter, you will be able to: ■ Define software, software quality and software quality.
Chapter 8 Representing Information Digitally.
CHAPTER 1 Introduction to SQA.
©Ian Sommerville 2000CS 365 Ariane 5 launcher failureSlide 1 The Ariane 5 Launcher Failure June 4th 1996 Total failure of the Ariane 5 launcher on its.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani University of Bozen- Bolzano Lesson 4 – Software Testing.
SWE Introduction to Software Engineering
1 SWE Introduction to Software Engineering Lecture 28 – Introduction to Software Testing.
OHT 2.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 What is software? Software errors, faults and failures Classification.
Modern Software Development Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
1 CMSC 132: Object-Oriented Programming II Software Development I Department of Computer Science University of Maryland, College Park.
Software Testing and Quality Assurance: Introduction and Terminology
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Software Quality Assurance
©Ian Sommerville 2006Critical Systems Slide 1 Critical Systems Engineering l Processes and techniques for developing critical systems.
 Software Software  Program vs Software Products Program vs Software Products  Software Characteristics Software Characteristics  Software Crisis.
©Ian Sommerville 2004Software Engineering Case Studies Slide 1 The Ariane 5 Launcher Failure June 4th 1996 Total failure of the Ariane 5 launcher on its.
System Software Integration Testing Mars Polar Lander Steven Ford SYSM /05/12.
Chapter 16 Software Quality Assurance
Software Reliability Growth. Three Questions Frequently Asked Just Prior to Release 1.Is this version of software ready for release (however “ready” is.
USS Yorktown (1998) A crew member of the guided-missile cruiser USS Yorktown mistakenly entered a zero for a data value, which resulted in a division by.
Software Quality Assurance & Testing Mistake in coding is called error, Error found by tester is called defect, Defect accepted by development team then.
Achieving Better Reliability With Software Reliability Engineering Russel D’Souza Russel D’Souza.
Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software.
Managing Software Quality
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
Information System Economics IT PROJECT MANAGEMENT.
The Ariane 5 Launcher Failure
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Ch 1: The Scope of Software Engineering
Software Metrics - Data Collection What is good data? Are they correct? Are they accurate? Are they appropriately precise? Are they consist? Are they associated.
SE513 Software Quality Control Lecture01: Introduction to Software Quality Assurance Galin, SQA from Theory to Education Limited.
Software is:  Computer programs, procedures, and possibly associated documentation and data relates to the operation of a computer system. [IEEE_Std_ ]
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
The Ariane 5 Launcher Failure June 4th 1996 Total failure of the Ariane 5 launcher on its maiden flight.
Introduction to Software Testing
INVARIANTS EEN 417 Fall When is a Design of a System “Correct”? A design is correct when it meets its specification (requirements) in its operating.
Modern Software Development Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Chapter SIX Implementation, Testing and Pragmatics Making it a reality.
16 October Reminder Types of Testing: Purpose  Functional testing  Usability testing  Conformance testing  Performance testing  Acceptance.
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
Quality of System requirements 1 Performance The performance of a Web service and therefore Solution 2 involves the speed that a request can be processed.
Tutorial 1: Date: 19/09/2012 Instructor: Hanif Ullah
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Chapter 3: Software Project Management Metrics
Software Requirements and Design Khalid Ishaq
Testing software Team Software Development Project.
Software Defects.
SEN 460 Software Quality Assurance. Bahria University Karachi Campus Waseem Akhtar Mufti B.E(UIT), M.S(S.E) AAU Denmark Assistant Professor Department.
1 Software Quality Assurance COMP 4004 Notes Adapted from S. Som é, A. Williams.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Testing and inspecting to ensure high quality An extreme and easily understood kind of failure is an outright crash. However, any violation of requirements.
CptS 401 Adam Carter. Final Review  Similar structure to the midterm: Multiple choice Matching (probably quotes from Daemon) Essay  Most questions will.
1 Lecture 12: Chapter 16 Software Quality Assurance Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman Slides.
Software reviews Cost impact of software defects Defect amplification model Review metrics and their use – Preparation effort (E p ), assessment effort.
Software Engineering Lecture 8: Quality Assurance.
1 Chapter 1 The Software Quality Challenge. 2 The uniqueness of software quality assurance  DO you think that there is a bug-free software?  Can software.
Welcome to Software Project Management. CONVENTIONAL SOFTWARE MANAGEMENT The BEST and WORST thing about software is its flexibility. 1.Software development.
Lecture#1 Introduction….Cont Software Quality Engineering Subject : 19(A/B) – {Assignment /Query}
1 Chapter 1- Introduction How Bugs affect our lives What is a Bug? What software testers do?
Software Metrics and Reliability
Software Quality Control and Quality Assurance: Introduction
Hardware & Software Reliability
Software Verification and Validation
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
What is software quality?
What is software quality?
Software Quality Assurance 2015
© Oxford University Press All rights reserved.
Presentation transcript:

Introduction to Software Quality Assurance From S. Somé, A. Williams

Introduction to Software Quality Assurance Left: The Ariane 501 rocket’s guidance computer software just threw an unchecked exception. [Image source: European Space Agency]

What is Software ? According to the IEEE Software is: Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system.

Software Errors, software faults and software failures Bug/defect/fault consequence of a human error. Results in non-conformance to requirements. Manifests as failure in running software. Software development process software fault software failure software error

Basic Definitions (Brugge and Dutoit) Reliability: The measure of success with which the observed behavior of a system confirms to some specification of its behavior. Failure: Any deviation of the observed behavior from the specified behavior. Error: The system is in a state such that further processing by the system will lead to a failure. Fault (Bug): The mechanical or algorithmic cause of an error. Definitions vary across authors! There are many different types of errors and different ways how we can deal with them.

Basic Definitions (Lethbride and Laganière) A failure is an unacceptable behaviour exhibited by a system. The frequency of failures measures the reliability. An important design objective is to achieve a very low failure rate and hence high reliability. A failure can result from a violation of an explicit or implicit requirement. A defect is a flaw in any aspect of the system that contributes, or may potentially contribute, to the occurrence of one or more failures. It might take several defects to cause a particular failure. An error is a slip-up or inappropriate decision by a software developer that leads to the introduction of a defect.

Nine Causes of Software Errors Faulty requirements definition. Client-developer communication failures. Deliberate deviations from software requirements. Logical design errors. Coding errors. Non-compliance with documentation and coding instructions. Shortcomings of the testing process. User interface and procedure errors. Documentation errors.

What is Software Quality ? According to the IEEE: Software quality is: The degree to which a system, component, or process meets specified requirements. The degree to which a system, component, or process meets customer or user needs or expectations.

What is Software Quality ? According to Pressman: Software quality is: Conformance to explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software.

What is Software Quality ? Conformance to requirements. Narrowest sense of software quality. Lack of bugs. Low defect rate (# of defects/size unit) High reliability (number of failures per n hours of operation). Mean Time To Failure (MTTF): probability of failure-free operation in a specified time.

When are defects introduced? The majority of defects are introduced in earlier phases. Requirements (typically in Word…) are the top factor in a project’s success or failure. Phase % of defects % effort to fix Requirements 56 82 Design 27 13 Code 7 1 Other 10 4

Cost of fixing defects Relative cost of fixing defects benchmark: cost at requirements phase = 1 Phase found Cost ratio Requirements 1 Design 3 – 5 Coding 10 Unit / integration testing 15 - 40 System / acceptance testing 30 – 70 Production 40 - 1000

Importance of Software Quality Software is a major component of computer systems (about 80% of the cost) – used for Communication (e.g. phone system, email system). Health monitoring. Transportation (e.g. automobile, aeronautics). Economic exchanges (e.g. e-commerce). Entertainment. etc. Software defects are extremely costly in term of money reputation loss of life

Importance of Software Quality Notable consequences of software errors: 1988 shooting down of Airbus 320 by the USS Vincennes - cryptic and misleading output displayed by tracking software. 1991 patriot missile failure - inaccurate calculation of time due to computer arithmetic errors. London Ambulance Service Computer Aided Dispatch System – several deaths. On June 3, 1980, the North American Aerospace Defense Command (NORAD) reported that the U.S. was under missile attack. First operational launch attempt of the space shuttle, whose real-time operating software consists of about 500,000 lines of code, failed - synchronization problem among its flight-control computers. 9 hour breakdown of AT&T's long-distance telephone network - caused by an untested code patch.

Importance of Software Quality Ariane 5 explosion June 4, 1996 First flight of the European Ariane 5 launcher crashed about 40 seconds after takeoff. Cost was about half a billion dollars. Explosion was the result of a software error: Uncaught exception due to floating-point error: conversion from a 64-bit integer to a 16-bit signed integer applied to a larger than expected number. Module was re-used without proper testing from Ariane 4 . Error was not supposed to happen with Ariane 4. No exception handler.

Importance of Software Quality Mars Climate Orbiter - September 23, 1999 Mars Climate Orbiter, disappeared as it began to orbit Mars. Cost about $US 125-million. Failure due to error in a transfer of information between a team in Colorado and a team in California. One team used imperial units (e.g., inches, feet and pounds) while the other used metric units for a key spacecraft operation.

Importance of Software Quality Mars Polar Lander - December, 1999 Mars Polar Lander, disappeared during landing on Mars. Failure most likely due to unexpected setting of a single data bit. Defect not caught by testing. Independent teams tested separate aspects.

Importance of Software Quality Internet viruses and worms Blaster worm (US$ 525 million) Sobig.F (US$ 500 million – 1 billion) Exploit well known software vulnerabilities Software developers do not devote enough effort to applying lessons learned about the causes of vulnerabilities. Same types of vulnerabilities continue to be seen in newer versions of products that were in earlier versions. Usability problems

Importance of Software Quality Monetary impact of poor software quality (Standish group - 1995) 175,000 software projects/year - Average Cost per project Large companies - $US 2,322,000 Medium companies - $US 1,331,000 Small companies - $US 434,000 31.1% of projects canceled before completed. cost $81 billion Read “Death March Projects”

Importance of Software Quality 52.7% of projects exceed their budget - costing 189% of original estimates. cost $59 billion 16.2% of software projects completed on-time and on-budget (9% for larger companies). Large companies - delivered systems have approximately only 42% of originally-proposed features and functions. 78.4% of smaller companies projects get deployed with at least 74.2% of their original features and functions.