1 Software Testing and Quality Assurance Lecture 33 – Software Quality Assurance.

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

1.Quality-“a characteristic or attribute of something.” As an attribute of an item, quality refers to measurable characteristics— things we are able to.
Chapter 4 Quality Assurance in Context
Software Quality Assurance (SQA). Recap SQA goal, attributes and metrics SQA plan Formal Technical Review (FTR) Statistical SQA – Six Sigma – Identifying.
Software Testing and Quality Attributes Software Testing Module ( ) Dr. Samer Hanna.
1 Software Testing and Quality Assurance Lecture 33 – Software Quality Assurance.
Overview Lesson 10,11 - Software Quality Assurance
SE 450 Software Processes & Product Metrics Reliability: An Introduction.
Soft. Eng. II, Spr. 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Quality Reading: I. Sommerville, Chap: 24.
SWE Introduction to Software Engineering
Software Testing and Quality Assurance
1 Software Testing and Quality Assurance Lecture 38 – Software Quality Assurance.
1 Software Testing and Quality Assurance Lecture 37 – Software Quality Assurance.
1 Software Testing and Quality Assurance Lecture 30 - Introduction to Software Testing.
1 Software project management (intro) An introduction.
1 Software Testing and Quality Assurance Lecture 34 – Software Quality Assurance.
Software Testing for Safety- Critical Applications Presented by: Ciro Espinosa & Daniel Llauger.
Swami NatarajanJuly 14, 2015 RIT Software Engineering Reliability: Introduction.
1 Software Testing and Quality Assurance Lecture 5 - Software Testing Techniques.
Software Process and Product Metrics
©Ian Sommerville 2006Critical Systems Slide 1 Critical Systems Engineering l Processes and techniques for developing critical systems.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
Chapter 24 - Quality Management
Capability Maturity Model
SOFTWARE QUALITY ASSURANCE Asst. Prof. Dr. Selim BAYRAKLI Maltepe University Faculty of Engineering SE 410.
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
CS 4310: Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management 1.
The Key Process Areas for Level 2: Repeatable Ralph Covington David Wang.
S T A M © 2000, KPA Ltd. Software Trouble Assessment Matrix Software Trouble Assessment Matrix *This presentation is extracted from SOFTWARE PROCESS QUALITY:
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
Test Organization and Management
Software Project Management
N By: Md Rezaul Huda Reza n
GrIDS -- A Graph Based Intrusion Detection System For Large Networks Paper by S. Staniford-Chen et. al.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Slide 1 Critical Systems Specification 2.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
University of Sunderland CIFM03Lecture 4 1 Software Measurement and Reliability CIFM03 Lecture 4.
Service Transition & Planning Service Validation & Testing
This chapter is extracted from Sommerville’s slides. Text book chapter
Software Metrics and Reliability. Definitions According to ANSI, “ Software Reliability is defined as the probability of failure – free software operation.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Testing and Quality Assurance Software Quality Assurance 1.
Building Dependable Distributed Systems Chapter 1 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Chapter 3 Project Management Chapter 3 Project Management Organising, planning and scheduling software projects.
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 Testing Definition Software Testing Module ( ) Dr. Samer Odeh Hanna.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
CSSE Software Engineering Process and Practice Lecture 5 Q UALITY A SSURANCE.
Fault Tolerance Benchmarking. 2 Owerview What is Benchmarking? What is Dependability? What is Dependability Benchmarking? What is the relation between.
Software Testing and Quality Assurance Software Quality Assurance 1.
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 Engineering Lecture 8: Quality Assurance.
©Ian Sommerville 2000Dependability Slide 1 Chapter 16 Dependability.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
1 Software Testing and Quality Assurance Lecture 38 – Software Quality Assurance.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
CS223: Software Engineering Lecture 25: Software Testing.
Software Metrics and Reliability
Software Quality Control and Quality Assurance: Introduction
Classifications of Software Requirements
Software Verification and Validation
Software Quality Engineering
Chapter 13 Quality Management
Presentation transcript:

1 Software Testing and Quality Assurance Lecture 33 – Software Quality Assurance

2 Lecture Objectives Software Quality Models What is Quality Assurance What is Software Reliability?

3 Quality Models Quality can not be measured or assessed directly, Except perhaps by having someone inspect artifacts like designs and software modules for quality. It relies heavily on an individual’s understanding and interpretation of quality. Use ‘quality models’ that decomposes the concept of quality Into number of attributes; each of which can be measured more objectively.

4 Quality Models For a system to have quality, we usually require that it: Satisfies explicit functional and non- functional requirements. It should be correct, complete and consistent with respect to the requirements.

5 Quality Models Adhere to internal (organizational or project) and external standards imposed on the project. For example, IEC (safety), Rainbow standard (US security), IEEE standards, internal company standards

6 Quality Models Conform to implicit quality requirements; which are Requirements for performance, reliability, usability, safety, security Typically, what we think of as the attributes of quality

7 Quality Models – McCall et al. Quality Model

8 Quality Models – ISO-9126 Quality Model

9 Quality Models Assessing attributes in quality standards using McCall’s or ISO9126 is not so easy in practice, As some interpretation of whether or not an attribute meets its targets is still required. In some cases, such as usability, it is difficult to even specify the targets. It is always necessary to consider the attributes of quality for any system. Software quality assurance methods an be chosen to assure that you are building the right quality targets into your system.

10 Quality Assurance Quality, we are beginning to understand the complex of the system. Assurance, can be just as difficult. It is difficult, if not impossible, to guarantee absolutely that all of the requirements, including the quality requirements are satisfied. We aim to provide a high level of assurance, that program will meet the needs for which it was written.

11 Quality Assurance The problem is that programs and systems can be highly complex. A typical program of moderate size (30K lines of code) can exhibit an exponentially large number of interconnections, large numbers of paths etc. Ability to exert control over the level of assurance achieved in projects. In practice, we need to understand the quality attributes that we are interested in for our project, We have methods to build these attributes into our systems.

12 Introduction to Software Reliability Software Testing Aimed at finding the faults in programs Software is part of a much larger system Consisting of hardware and communications as well as programs. One is required to build a system that is far more reliable than any one of its component.

13 Introduction to Software Reliability For example, how reliable /available must a web server be to handle the number of transactions the site receives? Process control industries Such as food and beverage industry or chemical plants Automation is playing a larger role Robots and computer systems need to be operating for long length of time without maintenance

14 Software Reliability Software Reliability can be used in number of ways Evaluation of New System: To evaluate systems by testing the system and gathering reliability measures. The measures can be useful in deciding what third party software, such as libraries, to use in a project.

15 Software Reliability Evaluation of Development Status Comparing current failure rates with desired failure rates. Large discrepancies may indicate the need for action. Monitor the Operational Profile The effect of changes or new features as they are added to the system.

16 What is Software Reliability? Reliability is one of a number of dependability attributes of a program. Dependability is analyzed in terms of: Attributes of dependability: Unlike quality attributes It is collective name for a set of attributes that have been discussed in the literature over the years.

17 What is Software Reliability?

18 What is Software Reliability? Means for achieving dependability For example, Fault Tolerance is the means for improving reliability. Reliability Definition: Reliability is the probability that a system will operate without failure for a specified time in a specified environment.

19 Classifying Failures Examples of failures include Functional failures – where the actual behavior of the system deviates from the specified functional behavior. Timing failures – where the program may deliver correct results but the program fails to meet its timing requirements. Safely failures – where an accident resulting in harm or injury is deemed to be a failure of the system.

20 Classifying Failures In practice, we need A way of observing failures; and Logging each failure as it arises. We also need A way of determining the time at which a failure occurs – called failure time; Or The rate at which failure occur – called failure rate. Assurance that the estimates are accurate

21 Classifying Failures Transient Failure Program gives incorrect result, but the program continues to execute. Hard Failure Program crashes (stack overrun….)

22 Classifying Failures Cascaded Failure Program crashes and takes down other programs Catastrophic Failure Program crashes and takes down the operating system or the entire system; A total system failure.

23 Software Reliability Engineering (SRE) PhaseSRE Activities Requirements Determine the functional profile of the system Determine and classify important failures Identify client reliability needs Conduct trade-off studies. Set reliability objectives.

24 Software Reliability Engineering (SRE) PhaseSRE Activities Design Design and evaluate systems to meet reliability goals. Allocate reliability targets to components

25 Software Reliability Engineering (SRE) PhaseSRE Activities Implementation Measure and monitor the reliability during implementation. Manage fault introduction and propagation.

26 Software Reliability Engineering (SRE) PhaseSRE Activities System and Field Testing Measure reliability growth (using reliability growth models). Track testing progress against reliability growth.

27 Software Reliability Engineering (SRE) PhaseSRE Activities Post-delivery & Maintenance Monitor field reliability against reliability objectives.

28 Key points Quality must be built into the software from the beginning. Reliability is the probability that a system will operate without failure for a specified time in a specified environment. Reliability depends heavily on determining, and in practice, detecting failures. Generally, four types of failures. Software Reliability Engineering Span the entire software development process