Software Fault Injection Kalynnda Berens Science Applications International Corporation NASA Glenn Research Center.

Slides:



Advertisements
Similar presentations
Software Quality Assurance Plan
Advertisements

Last update: August 9, 2002 CodeTest Embedded Software Verification Tools By Advanced Microsystems Corporation.
Software Fault Injection for Survivability Jeffrey M. Voas & Anup K. Ghosh Presented by Alison Teoh.
1 Independent Verification and Validation Current Status, Challenges, and Research Opportunities Dan McCaugherty IV&V Program Manager Titan Systems Corporation.
Software Configuration Management
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Computer Assisted Audit Techniques
SE 555 Software Requirements & Specification Requirements Validation.
SQM - 1DCS - ANULECTURE Software Quality Management Software Quality Management Processes V & V of Critical Software & Systems Ian Hirst.
SIMULATING ERRORS IN WEB SERVICES International Journal of Simulation: Systems, Sciences and Technology 2004 Nik Looker, Malcolm Munro and Jie Xu.
1 CSc Senior Project Software Testing. 2 Preface “The amount of required study of testing techniques is trivial – a few hours over the course of.
Design, Implementation and Maintenance
This chapter is extracted from Sommerville’s slides. Text book chapter
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management 1.
Software Faults and Fault Injection Models --Raviteja Varanasi.
INFO425: Systems Design INFORMATION X Finalizing Scope (functions/level of automation)  Finalizing scope in terms of functions and level of.
SOFTWARE QUALITY ASSURANCE PRACTICE IN JAPAN
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
University of Coimbra, DEI-CISUC
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.
System Development Process Prof. Sujata Rao. 2Overview Systems development life cycle (SDLC) – Provides overall framework for managing system development.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
Chapter 6 : Software Metrics
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
FCS - AAO - DM COMPE/SE/ISE 492 Senior Project 2 System/Software Test Documentation (STD) System/Software Test Documentation (STD)
Real-time Linux Evaluations NASA Glenn Research Center Kalynnda Berens, SAIC Richard Plastow, SAIC.
SENG521 (Fall SENG 521 Software Reliability & Testing Software Product & process Improvement using ISO (Part 3d) Department.
Protecting the Public, Astronauts and Pilots, the NASA Workforce, and High-Value Equipment and Property Mission Success Starts With Safety Believe it or.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
MD Digital Government Summit, June 26, Maryland Project Management Oversight & System Development Life Cycle (SDLC) Robert Krauss MD Digital Government.
IT Requirements Management Balancing Needs and Expectations.
1Software Measurement Advanced Software Engineering COM360 University of Sunderland © 2001.
[ §5 : 1 ] 5. Summary of Requirements Products 5.1 Requirements Definition Document 5.2 Software Requirements Specification.
Lecture 11 Managing Project Execution. Project Execution The phase of a project in which work towards direct achievement of the project’s objectives and.
Slide 1V&V 10/2002 Software Quality Assurance Dr. Linda H. Rosenberg Assistant Director For Information Sciences Goddard Space Flight Center, NASA
Real-Time Linux Evaluation NASA Glenn Research Center Kalynnda Berens Richard Plastow
BE-SECBS FISA 2003 November 13th 2003 page 1 DSR/SAMS/BASP IRSN BE SECBS – IRSN assessment Context application of IRSN methodology to the reference case.
CHAPTER 9 INSPECTIONS AS AN UP-FRONT QUALITY TECHNIQUE
V&V of COTS RTOS for Space Flight Projects The 1st Annual NASA Office of Safety and Mission Assurance (OSMA) Software Assurance Symposium (SAS) Michael.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Estimation - Software Metrics Managers frequently have to measure the productivity of software engineers.
Distributed System Concepts and Architectures 2.3 Services Fall 2011 Student: Fan Bai
Introduction to Software Project Estimation I (Condensed) Barry Schrag Software Engineering Consultant MCSD, MCAD, MCDBA Bellevue.
Verification and Validation Assuring that a software system meets a user's needs.
MODES-650 Advanced System Simulation Presented by Olgun Karademirci VERIFICATION AND VALIDATION OF SIMULATION MODELS.
Network design Topic 6 Testing and documentation.
1 Technology Infusion of the Software Developer’s Assistant (SDA) into the MOD Software Development Process NASA/JSC/MOD/Brian O’Hagan 2008 Software Assurance.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Advanced Software Engineering Lecture 4: Process & Project Metrics.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Unit 17: SDLC. Systems Development Life Cycle Five Major Phases Plus Documentation throughout Plus Evaluation…
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Outsourcing, subcontracting and COTS Tor Stålhane.
SwCDR (Peer) Review 1 UCB MAVEN Particles and Fields Flight Software Critical Design Review Peter R. Harvey.
Testing and Evolution CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
CS223: Software Engineering Lecture 25: Software Testing.
Advanced Higher Computing Science The Project. Introduction Worth 60% of the total marks for the course Must include: An appropriate interface using input.
JSTAR Independent Test Capability (ITC) Core Flight System (CFS) Utilization October 26, 2015 Justin R Morris NASA IV&V Program.
Principles of Information Systems Eighth Edition
Software Configuration Management
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Test Automation CS 4501 / 6501 Software Testing
Fault Injection: A Method for Validating Fault-tolerant System
Verification and Validation Unit Testing
BASIC DEFINITIONS Errors : An error is a mistake, misconception, or misunderstanding on the part of a software developer. In the category of developer.
Presentation transcript:

Software Fault Injection Kalynnda Berens Science Applications International Corporation NASA Glenn Research Center

Software Fault Injection NASA Glenn Research Center2 What is Software Fault Injection? A testing technique that aids in understanding how software behaves when stressed in unusual ways. A product-based assurance technique. Variations in the technique allow it to be applied to many types of software and for different purposes.

Software Fault Injection NASA Glenn Research Center3 How does SFI work? Legal permutations or faults are input at interfaces (external and/or internal). Outputs show whether the injected fault propagates through the software. Requires instrumentation (software code) to observe the propagation process.

Software Fault Injection NASA Glenn Research Center4 Uses for Software Fault Injection Finding defects in software Robustness Testing COTS Validation/Determining failure modes Safety Verification Security Assessment Software Testability Analysis

Software Fault Injection NASA Glenn Research Center5 SFI Examples Operating System Validation Ballista (CM) – Linux and VxWorks robustness WindowsNT Network Security NCSA httpd server Safety Advanced Automatic Train Control system Magneto Stereoaxis System SFI can be used with or without source code

Software Fault Injection NASA Glenn Research Center6 SFI without Source Code Create software wrapper for COTS functions and other interfaces “Trick” OS to call wrapper functions first Software under test usually run in debug mode Wrapper can be used Pass through for baselining response Call alternative function Call original function but change result

Software Fault Injection NASA Glenn Research Center7 SFI wrapper operations Application Wrapper OS or Hardware Pass through wrapper: Call alternative function: Call original function but change result: Application Wrapper OS or Hardware New Function

Software Fault Injection NASA Glenn Research Center8 Center Initiative on SFI Can SFI be used by an Independent V&V engineer? Is SFI a useful and cost-effective technique for NASA? Are the errors and problems found of sufficient severity or abundance? Are the costs of applying the technique reasonable for the number/severity of errors found? Is SFI a good tool for safer software?

Software Fault Injection NASA Glenn Research Center9 Methodology Determine scope Select projects Metrics Perform SFI on projects Create Test Plan (prototype due 1st quarter, FY02) Lessons Learned

Software Fault Injection NASA Glenn Research Center10 Determine Scope Why narrow the scope? SFI is a collection of related techniques Comparison across projects requires using one technique for all Why no source/interfaces technique chosen IV&V perspective (cost effective) “Outside” events or system limitations trigger many errors Interfaces selected COTS software Hardware User input Communications medium

Software Fault Injection NASA Glenn Research Center11 Project Selection Potential Projects CM-2 Tempest Web Server (VxWorks and Java) MDCA, FPP, SAMS, others Selection Criteria Selection difficulties Project support not free Contracted software not accessible Final Choice

Software Fault Injection NASA Glenn Research Center12 Metrics Time spent per task Familiarization, researching errors, instrumenting software, testing Subjective “effort” scale per task Software project metrics SLOC, #classes/modules, complexity, interface information Fault Injection metrics #faults, #failures, #faults no effect/correctly handled

Software Fault Injection NASA Glenn Research Center13 SFI Process Obtain Tempest software (completed) Obtain access to VxWorks (completed) ***Overcome compatibility problems Determine all interfaces to test Select errors to inject Create necessary wrappers for SFI Record test procedure and results

Software Fault Injection NASA Glenn Research Center14 Tempest Interfaces VxWorks OS Task creation and control functions C/C++ language functions File system functions Networking functions Outside world Requests from external sources Standard HTML, built-in functions Tempest (VxWorks version) can execute OS functions

Software Fault Injection NASA Glenn Research Center15 Example Injection Errors OS errors Memory allocation failures File errors (corrupted, not found) Single task abort, hang External World errors Invalid request Too many requests Requests too frequent

Software Fault Injection NASA Glenn Research Center16 Test Plan How to perform software fault injection on “generic” software Steps prior to actual testing Method of determining errors to inject Procedure for performing the test Appendices of lessons learned, example faults, other guidance

Software Fault Injection NASA Glenn Research Center17 Difficulties Encountered Tempest documentation limited VxWorks simulator does not support networking Cost of hardware and full VxWorks not within the budget Attempt to “fake” networking unsuccessful

Software Fault Injection NASA Glenn Research Center18 Status and Future Work VxWorks incompatibilities not easily overcome Shift to Java version of Tempest for now Test VxWorks version of Tempest on actual hardware (if possible) or alternate operating system (Linux, uClinux, eCos) If funding continues, test on actual flight experiment (CM-2).