Page 1 Building Reliable Component-based Systems Chapter 10 - Predicting System Trustworthiness Chapter 10 Predicting System Trustworthiness.

Slides:



Advertisements
Similar presentations
Lecture 8: Testing, Verification and Validation
Advertisements

Risk Modeling The Tropos Approach PhD Lunch Meeting 07/07/2005 Yudistira Asnar –
CS 411W - Notes Product Development Documentation.
Introduction to Software Testing Chapter 9.2 Challenges in Testing Software – Software Testability Paul Ammann & Jeff Offutt
Software Fault Injection for Survivability Jeffrey M. Voas & Anup K. Ghosh Presented by Alison Teoh.
1 The Role of the Revised IEEE Standard Dictionary of Measures of the Software Aspects of Dependability in Software Acquisition Dr. Norman F. Schneidewind.
Software Testing Using Model Program DESIGN BY HONG NGUYEN & SHAH RAZA Dec 05, 2005.
The Architecture Design Process
1 Software Testing and Quality Assurance Lecture 34 – Software Quality Assurance.
Software Testing and Quality Assurance: Introduction and Terminology
Page 1 Building Reliable Component-based Systems Chapter 14 - Testing Reusable Software Components in Safety- Critical Real-Time Systems Chapter 14 Testing.
SE 555 – Software Requirements & Specifications Introduction
Page 1, July 3, 2015 CBSE – graduate course Component-Based Software Engineering Building reliable component-based systems Overview
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
Software Testing and QA Theory and Practice (Chapter 15: Software Reliability) © Naik & Tripathy 1 Software Testing and Quality Assurance Theory and Practice.
Non-functional requirements
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 2 Slide 1 Systems engineering 1.
Software Life Cycle Model
Software Dependability CIS 376 Bruce R. Maxim UM-Dearborn.
Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 24 Slide 1 Critical Systems Validation 1.
CSCI 5801: Software Engineering
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 15 Software Reliability
March 13, 2001CSci Clark University1 CSci 250 Software Design & Development Lecture #15 Tuesday, March 13, 2001.
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
1 Software Testing and Quality Assurance Lecture 33 – Software Quality Assurance.
 CS 5380 Software Engineering Chapter 8 Testing.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Disclosure risk when responding to queries with deterministic guarantees Krish Muralidhar University of Kentucky Rathindra Sarathy Oklahoma State University.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Chapter 13: Regression Testing Omar Meqdadi SE 3860 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Outsourcing, subcontracting and use of COTS Torbjørn Skramstad.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Building Dependable Distributed Systems Chapter 1 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
Testing Techniques Software Testing Module ( ) Dr. Samer Hanna.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
Fault Tolerance Benchmarking. 2 Owerview What is Benchmarking? What is Dependability? What is Dependability Benchmarking? What is the relation between.
Page 1, December 8, 2015 CBSE – graduate course Component-Based Software Engineering Building reliable component-based systems Overview
PRESENTER PRIYANKA GUPTA.  Testing the complete system with respect to requirements.  In System testing, the functionalities of the system are tested.
Cryptography and Network Security Sixth Edition by William Stallings.
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration.
Outsourcing, subcontracting and COTS Tor Stålhane.
©Ian Sommerville 2000Dependability Slide 1 Chapter 16 Dependability.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
SENG521 (Fall SENG 521 Software Reliability & Testing Fault Tolerant Software Systems: Techniques (Part 4a) Department of Electrical.
Failure Modes and Effects Analysis (FMEA)
1 Software Testing and Quality Assurance Lecture 38 – Software Quality Assurance.
Testing Integral part of the software development process.
Software Testing and Quality Assurance Practical Considerations (1) 1.
Design for Security Pepper.
Chapter 1: Introduction
Software Testing An Introduction.
Chapter 8 – Software Testing
Software Reliability Definition: The probability of failure-free operation of the software for a specified period of time in a specified environment.
Software Reliability PPT BY:Dr. R. Mall 7/5/2018.
Critical Systems Validation
Software Reliability Models.
Fault Injection: A Method for Validating Fault-tolerant System
Paul Ammann & Jeff Offutt
Testing and Test-Driven Development CSC 4700 Software Engineering
Presentation transcript:

Page 1 Building Reliable Component-based Systems Chapter 10 - Predicting System Trustworthiness Chapter 10 Predicting System Trustworthiness

Page 2 Building Reliable Component-based Systems Overview qIntroduction qWhat else can be done? qPredicting component interoperability qSummary

Page 3 Building Reliable Component-based Systems Introduction q Functional Composability (FC) and functional correctness: l FC is concerned with whether f(a) x f(b) = f(a x B) is true. l These concerns stem from the problem of composing "ilities".  Reliability  Safety  Security

Page 4 Building Reliable Component-based Systems The Problem q The problem stems from our inability to know a priori, l For example, that the security of a system composed of two components, A and B, can be determined from knowledge about the security of A and the security of B. q Why? l Because the security of the composite is based on more than just the security of the individual components.

Page 5 Building Reliable Component-based Systems An Example q As an example, suppose that: l A is an operating system and B is an intrusion detection system. l Operating systems have some level of built-in authentication security. l Intrusion detection systems have some definition of the types of event patterns that warn of a possible attack. q Thus, the security of the composition clearly depends on the security models of the individual components.

Page 6 Building Reliable Component-based Systems The Example Continued q But even if A has a worthless security policy or flawed implementation, the composite can still be secure. q How? l IF A has poor performance l THEN no one can log in OR l IF A's security mechanism not reliable l THEN security is increased q While these last 2 examples are clearly not a desirable way to attain higher levels of system security, both do actually decrease the likelihood that a system will be successfully attacked.

Page 7 Building Reliable Component-based Systems Another Example q A as an operating system and B as an intrusion detection system, l AND We assume that A provides excellent security and B provides excellent security, l WE MUST still accept the fact that the security of B is also a function of calendar time. q So the question then comes down to: which "ilities", if any, are easy to compose? l The answer is that there are no "ilities" easy to compose and that some are much harder to compose than others.

Page 8 Building Reliable Component-based Systems What Else Can Be Done? q If a piece of software fails only once after 100 tests, l DO NOT calculate quantitative score based on the result! l DO consider it to be the result of the testing.

Page 9 Building Reliable Component-based Systems Isolating Potential Contributors q Parties that have contributed software functionality (whether COTS or custom) to the system. q Potential contributors to the system failure include: l Defective software components l Problems with interfaces between components l Problems with assumptions between components l Hidden interfaces and non-functional component behaviors that cannot be detected at the component level.

Page 10 Building Reliable Component-based Systems Interface Propagation Analysis q Interface propagation analysis (IPA): l Perturbs the states that propagate through the interfaces that connect COTS software components to other types of components. l Note that software fault injection is also a form of accelerated testing.

Page 11 Building Reliable Component-based Systems Reliability Testing  Operational profile testing  test-cases  Test for defects occuring in operational phase  Many insignificant experiments  Time consuming Component/System Input

Page 12 Building Reliable Component-based Systems IPA at Work q To modify the information (states) that components use for inter-communication l write access to those states is required (in order to modify the data in those states). l This is obtained by creating a small software routine named PERTURB which replaces, during system execution, the original output state with a different (corrupted) state. Component A Component B Input

Page 13 Building Reliable Component-based Systems PERTURB q An Example using: double cos(double x) … if (cos(a) > THRESHOLD) {do something} … if (PERTURB(cos(a)) > THRESHOLD) {do something} q The value added by having a utility such as PERTURB is, in general, dependent on how well PERTURB mimics corruptions that the utility under consideration.

Page 14 Building Reliable Component-based Systems Technique 1 q The first technique: l Involves the deliberate inversion of the operational profile originally anticipated by the system designers. l This technique is most beneficial when the description of the expected profile is accurate. Component/System Input Inversed operation al profile

Page 15 Building Reliable Component-based Systems Technique 2 q The second technique: l Is simply a combination of the previous technique with IPA. l This is a situation in which the software is operating in an unusual input mode while being bombarded with corrupt information. Inversed operation al profile Component A Component B Input

Page 16 Building Reliable Component-based Systems Summary  Non-functional behaviors are difficult to handle in composition  Ordinary (reliability) testing is not enough  SWIFI can be used for testing non-functional behaviors  IPA is a technique for predicting interoperability  IPA is not the answer, but a complement to other (traditional) testing techniques q.