Quality Assurance.

Slides:



Advertisements
Similar presentations
Chapter 4 Quality Assurance in Context
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development.
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
1 Verification, validation and testing Chapter 12, Storey.
SWE Introduction to Software Engineering
7. Fault Tolerance Through Dynamic or Standby Redundancy 7.5 Forward Recovery Systems Upon the detection of a failure, the system discards the current.
Developing Dependable Systems CIS 376 Bruce R. Maxim UM-Dearborn.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Lecturer: Dr. AJ Bieszczad Chapter 87-1 How does software fail? Wrong requirement: not what the customer wants Missing requirement Requirement impossible.
Software Defects Defect Prevention and Removal 1.
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 13: Defect Prevention & Process Improvement
What Exactly are the Techniques of Software Verification and Validation A Storehouse of Vast Knowledge on Software Testing.
Test Design Techniques
Unit 3a Industrial Control Systems
Software Dependability CIS 376 Bruce R. Maxim UM-Dearborn.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Hazard Identification
Expert System Presentation On…. Software Certification for Industry - Verification and Validation Issues in Expert Systems By Anca I. Vermesan Presented.
CCSB223/SAD/CHAPTER141 Chapter 14 Implementing and Maintaining the System.
EE551 Real-Time Operating Systems
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Ch.4: QA in Context  QA and the overall development context Defect handling/resolution How alternative QA activities fit in process Alternative perspectives:
Levels of safety Priorities for eliminating hazards in the workplace Eliminate the hazard through the machine design stage Apply safeguarding technology.
Chapter 14: Inspection  Basic Concept and Generic Process  Fagan Inspection  Other Inspection and Related 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.
Safety-Critical Systems 6 Certification
Week 2 Quality Assurance Quality Assurance in Context
Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance.
2.2 Software Myths 2.2 Software Myths Myth 1. The cost of computers is lower than that of analog or electromechanical devices. –Hardware is cheap compared.
Protecting the Public, Astronauts and Pilots, the NASA Workforce, and High-Value Equipment and Property Mission Success Starts With Safety Believe it or.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Framework for the Development and Testing of Dependable and Safety-Critical Systems IKTA 065/ Supported by the Information and Communication.
Building Dependable Distributed Systems Chapter 1 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Software Testing and Quality Assurance Software Quality Assurance 1.
1 Reducing the Software Impact to System Safety Paul Mayo – SafeEng Limited.
1 Safety - definitions Accident - an unanticipated loss of life, injury, or other cost beyond a pre-determined threshhold.  If you expect it, it’s not.
Hazard Identification
CprE 458/558: Real-Time Systems
Safety-Critical Systems 7 Summary T V - Lifecycle model System Acceptance System Integration & Test Module Integration & Test Requirements Analysis.
Defect resolution  Defect logging  Defect tracking  Consistent defect interpretation and tracking  Timely defect reporting.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Slide 1 Critical Systems Specification 1.
Software Defects.
Ensure that the right functions are performed Ensure that the these functions are performed right and are reliable.
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
Software Engineering Lecture 8: Quality Assurance.
Safety-Critical Systems 3 T Designing Safety Software Ilkka Herttua.
Week#2 Software Quality Assurance Software Quality Engineering.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
Process Safety Management Soft Skills Programme Nexus Alliance Ltd.
Accident analysis One-hour training.
Week#3 Software Quality Engineering.
Slide (Ch.16) 1 Tian: Software Quality Engineering Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement Jeff Tian Chapter.
Guide for the application of CSM design targets (CSM DT)
ATTRACT TWD Symposium, Barcelona, Spain, 1st July 2016
Air Carrier Continuing Analysis and Surveillance System (CASS)
Design for Quality Design for Quality and Safety Design Improvement
Software Quality Engineering
Software Quality Engineering
Chapter 14: Inspection Basic Concept and Generic Process
Design and Programming
Software Quality Assurance
Critical Systems Development
Baisc Of Software Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software Verification and Validation
Software Verification and Validation
Software Verification and Validation
Presentation transcript:

Quality Assurance

Classification: QA as Dealing with Defects Defect prevention through error blocking or source removal Eliminating certain error sources Fault prevention or blocking

Classification: QA as Dealing with Defects Defect reduction through fault detection and removal Inspection directly detects and removes faults from the software code, design, etc Testing removes faults based on related failure observations during program execution

Classification: QA as Dealing with Defects Defect containment through failure prevention and containment use of fault-tolerance techniques, break the causal relation between faults and failures so that local faults will not cause global failures, thus “tolerating” these local faults. containment measures to avoid catastrophic consequences, such as death, personal injury, and severe property or environmental damages, in case of failures.

Dealing with pre- / post- release defects Pre-release Defect prevention and defect reduction -> defect injection and removal Affect the defect contents, or number of faults Dormant Defects ….

Dealing with pre- / post- release defects Fix failures observed and problems reported This leads to … reduced defects and improved product quality However Do not rely on these post-release problem reports and give up pre-release defect prevention and reduction activities Why? Cost Vendor’s reputation

Graphical Depiction of the classification scheme

Defect Prevention If human misconceptions are the error sources, education and training can help us remove these error sources. If imprecise designs and implementations that deviate from product specifications or design intentions are the causes for faults, formal methods can help us prevent such deviations. If non-conformance to selected processes or standards is the problem that leads to fault injections, then process conformance or standard enforcement can help use prevent the injection of related faults. If certain tools or technologies can reduce fault injections under similar environments, they should be adopted.

Education and Training Product and domain specific knowledge Software development knowledge and expertise Knowledge about Development methodology, technology, and tools Development process knowledge

Formal Methods axiomatic approach pre-conditions vs. post-conditions predicate transformer and program calculus or functional approach heavily based on mathematical functions and symbolic executions. proof procedures Various other limited scope or semi-formal techniques also exist, which check for certain properties instead of proving the full correctness of programs. model checking techniques various semi-formal methods based on forms or tables instead of formal logic or mathematical functions biggest obstacle: high cost associated with the difficult task of performing human intensive activities correctly without adequate automated support

Other Defect Prevention Techniques appropriate use of other software methodologies or technologies can also help reduce the chances of fault injections. use of the information hiding principle better managed process can also eliminate many systematic problems enforcement of selected standards for certain types of products and development activities use of specific software tools

Defect Reduction Effectiveness in preventing accidental fault injections. Need of effective techniques to remove as many of the injected faults as possible under project constraints.

Inspection: Direct fault detection and removal Inspections are critical reading and analysis of software code or other software artifacts, such as designs, product specifications, test plans, etc. Inspections are conducted by multiple human inspectors, through some coordination process. Faults are detected directly in inspection by human inspectors, either during their individual inspections or various types of group sessions. Identified faults need to be removed as a result of the inspection process, and their removal also needs to be verified. The inspection processes vary, but typically include some planning and follow-up activities in addition to the core inspection activity. The formality and structure of inspections may vary, from very informal reviews and walkthroughs, to fairly formal variations of Fagan inspection, to correctness inspections approaching the rigor and formality of formal methods.

Testing: Failure observation and fault removal When can a specific testing activity be performed and related faults be detected? What to test, and what kind of faults are found? When, or at what defect level, to stop testing?

Other Techniques and Risk Identification formal model based analyses such as algorithm analysis, decision table analysis, boundary value analysis, finite-state machine and Petri-net modeling, control and data flow analyses, software fault trees, etc. dynamic, execution-based, techniques also exist for fault detection and removal, symbolic execution, simulation, and prototyping in-field measurement and related analyses, such as timing and performance analysis for real-time systems, and accident analysis and reconstruction using software fault trees and event trees for safety-critical systems

Defect Containment defect reduction activities can only reduce the number of faults to a fairly low level, but not completely eliminate the some other means need to be used to prevent failures by breaking the causal relations between these faults and the resulting failures, thus “tolerating” these faults, or to contain the failures by reducing the resulting damage

Software Fault Tolerance Recovery blocks use repeated executions (or redundancy over time) as the basic mechanism for fault tolerance. If dynamic failures in some local areas are detected, a portion of the latest execution is repeated, in the hope that this repeated execution will not lead to the same failure. Therefore, local failures will not propagate to global failures, although some time-delay may be involved. NVP (Multi-Version Programming)uses parallel redundancy, where N copies, each of a different version, of programs fulfilling the same functionality are running in parallel. The decision algorithm in NVP makes sure that local failures in limited number of these parallel versions will not compromise global execution results.

Safety Assurance and Fault Containment Hazard elimination through substitution, simplification, decoupling, elimination of specific human errors, and reduction of hazardous materials or Hazard reduction through design for controllability (for example, automatic pressure release in boilers), use of locking devices (for example, hardware software interlocks), and failure minimization using safety margins and redundancy. Hazard control through reducing exposure, isolation and containment (for example, barriers between the system and the environment), protection systems (active protection activated in case of hazard), and fail-safe design (passive protection, fail in a safe state without causing further damages). These techniques reduce the severity of failures, therefore weakening the link between failures and accidents. Damage control through escape routes, safe abandonment of products and materials, and devices for limiting physical damages to equipment or people.