Software Testing and Quality Assurance Software Quality Assurance 1.

Slides:



Advertisements
Similar presentations
1.Quality-“a characteristic or attribute of something.” As an attribute of an item, quality refers to measurable characteristics— things we are able to.
Advertisements

Chapter 4 Quality Assurance in Context
Chapter 7: Key Process Areas for Level 2: Repeatable - Arvind Kabir Yateesh.
More CMM Part Two : Details.
Software Quality Assurance (SQA). Recap SQA goal, attributes and metrics SQA plan Formal Technical Review (FTR) Statistical SQA – Six Sigma – Identifying.
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
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.
School of Computing, Dublin Institute of Technology.
Introduction to software project management. What is a project? One definition ‘a specific design or plan’ ‘a specific design or plan’ Key elements non-routine.
1 Software project management (intro) An introduction.
1 Software Testing and Quality Assurance Lecture 34 – Software Quality Assurance.
Swami NatarajanJuly 14, 2015 RIT Software Engineering Reliability: Introduction.
Software Process and Product Metrics
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 11 System Test Design
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.
CS 4310: Software Engineering
Chapter 16 Software Quality Assurance
©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.
Software Project Management
N By: Md Rezaul Huda Reza n
Software Quality Assurance Activities
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.
Software Reliability SEG3202 N. El Kadri.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Soft Tech Development Inc. 1 Software Project Tracking A CMM Level 2 Key Process Area Soft Tech Development Inc.
1 Software Testing and Quality Assurance Lecture 33 – Software Quality Assurance.
Event Management & ITIL V3
Software Project Management Lecture # 10. Outline Quality Management (chapter 26)  What is quality?  Meaning of Quality in Various Context  Some quality.
This chapter is extracted from Sommerville’s slides. Text book chapter
Georgia Institute of Technology CS 4320 Fall 2003.
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.
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.
Software Testing Definition Software Testing Module ( ) Dr. Samer Odeh Hanna.
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.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Software Quality Assurance and Testing Fazal Rehman Shamil.
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.
Copyright © 2007 Pearson Education Canada 9-1 Chapter 9: Internal Controls and Control Risk.
©Ian Sommerville 2000Dependability Slide 1 Chapter 16 Dependability.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Software Engineering Process - II 7.1 Unit 7: Quality Management Software Engineering Process - II.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
CS223: Software Engineering Lecture 25: Software Testing.
 System Requirement Specification and System Planning.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Software Quality Control and Quality Assurance: Introduction
Software Quality Assurance
Classifications of Software Requirements
Software Engineering (CSI 321)
Software Quality Assurance
Software Verification and Validation
Quality Management chapter 27.
Chapter 13 Quality Management
Capability Maturity Model
Capability Maturity Model
Presentation transcript:

Software Testing and Quality Assurance Software Quality Assurance 1

Reading Assignment Kshirasagar Naik and Priyadarshi Tripathy, Software Testing and Quality Assurance: Theory and Practice, ◦ Chapter 17 Sections 17.1 and

3 Objectives Software Quality Models What is Quality Assurance What is Software Reliability? Classify Failures Software Reliability Engineering

4 The Quality Movement Total Quality Management (TQM) is a popular approach for management practice. TQM stresses continuous process improvement and can be applied to software development. Not much can be done to improve quality until a visible, repeatable, and measurable process is created.

5 The Quality Movement Refers to a system of continuous process improvement. 1.develop a process that is visible, repeatable, and measurable. 2.This step examines intangibles that affect the process and works to optimize their impact on the process. 3.This step concentrates on the user of the product. Examining the way the user applies the product. This step leads to improvement in the product itself and, potentially, to the process that created it. 4.This is a business ‑ oriented step that looks for opportunity in related areas identified by observing the use of the product in the marketplace.

6 Software Quality Assurance The SQA group must look at software from the customer's perspective, as well as assessing its technical merits. The activities performed by the SQA group involve quality planning, oversight, record keeping, analysis and reporting.

7 Software Quality Assurance Formal Technical Reviews SQA Test Planning & Review Measurement Analysis & Reporting Process Definition & Standards

8 Software Quality Assurance Beginning of the project ◦ Project manager will consider quality factors and decide which ones are important for the system ◦ Decide on what validation and verification activities will be carried out to check that the required quality factors are present in the product During the project ◦ Validation and verification of quality standards and procedures End of the project ◦ Expected quality achieved to what extent

9 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.

10 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.

11 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

12 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

13 Quality Models – McCall et al. Quality Model

14 Quality Models – ISO-9126 Quality Model

15 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 can be chosen to assure that you are building the right quality targets into your system.

16 Quality Assurance Quality, we are beginning to understand. 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.

17 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.

18 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.

19 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

20 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.

21 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.

22 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.

23 What is Software Reliability?

24 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.

25 What is Software Reliability? Consider two simple systems consisting of two writers and a reader communicating via a shared memory on a bus. Suppose probability of failure of each channel of the bus is per operational hour.

26 What is Software Reliability?

27 What is Software Reliability? For a single channel bus ◦ The probability of a bus failure, such as message becoming corrupt or the bus failing to transmit a message is ‘one failure every 11.4 years’. ◦ If we add the second channel then the failure probability decreases to  One failure every 1,114,552 years, because both channels must fail at the same time for this to occur.

28 What is Software Reliability?

29 What is Software Reliability? We have to be careful in not over interpreting these numbers. ◦ While improvement is significant, after all, ◦ It is only a probability. The definition of reliability depends heavily on determining, and in practice detecting, failures.

30 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.

31 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

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

33 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.

34 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.

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

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

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

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

39 Software Reliability Engineering (SRE) – Some Observations Activities of SRE span the entire software development process ◦ But the activities themselves do not constitute a development process. Activities themselves need to be supported by ◦ Analytical tools – reliability models ◦ Evaluation methods – Markov Chains.

40 Software Reliability Engineering (SRE) – Some Observations Design and implementation reliable systems is supported by design principles and algorithms ◦ For example, from the discipline of “Fault tolerant systems”.

41 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.

42 Key points Reliability depends heavily on determining, and in practice, detecting failures. Generally, four types of failures. Software Reliability Engineering ◦ Span the entire software development process