Department of Computer Engineering PROPANE An Environment for Examining the Propagation of Errors in Software Martin Hiller, Arshad Jhumka, Neeraj Suri.

Slides:



Advertisements
Similar presentations
DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Advertisements

1 Software Fault Tolerance (SWFT) Software Testing Dependable Embedded Systems & SW Group Prof. Neeraj Suri Constantin.
Test Case Management and Results Tracking System October 2008 D E L I V E R I N G Q U A L I T Y (Short Version)
44 nd DAC, June 4-8, 2007 Processor External Interrupt Verification Tool (PEVT) Fu-Ching Yang, Wen-Kai Huang and Ing-Jer Huang Dept. of Computer Science.
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.
MotoHawk Training Model-Based Design of Embedded Systems.
The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing.
1 Static Testing: defect prevention SIM objectives Able to list various type of structured group examinations (manual checking) Able to statically.
Tracking Migratory Birds Around Large Structures Presented by: Arik Brooks and Nicholas Patrick Advisors: Dr. Huggins, Dr. Schertz, and Dr. Stewart Senior.
Combining Static and Dynamic Data in Code Visualization David Eng Sable Research Group, McGill University PASTE 2002 Charleston, South Carolina November.
TinyOS Software Engineering Sensor Networks for the Masses.
VB in Context Michael B. Spring Department of Information Science and Telecommunications University of Pittsburgh Pittsburgh, Pa 15260
 2006 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
Educational Computer Architecture Experimentation Tool Dr. Abdelhafid Bouhraoua.
SIMULATING ERRORS IN WEB SERVICES International Journal of Simulation: Systems, Sciences and Technology 2004 Nik Looker, Malcolm Munro and Jie Xu.
Maintaining and Updating Windows Server 2008
CODING Research Data Management. Research Data Management Coding When writing software or analytical code it is important that others and your future.
Bottom-Up Integration Testing After unit testing of individual components the components are combined together into a system. Bottom-Up Integration: each.
Design Synopsys System Verilog API Donations to Accellera João Geada.
PJSISSTA '001 Black-Box Test Reduction Using Input-Output Analysis ISSTA ‘00 Patrick J. Schroeder, Bogdan Korel Department of Computer Science Illinois.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
Software Faults and Fault Injection Models --Raviteja Varanasi.
1 EVALUATING INTELLIGENT FLUID AUTOMATION SYSTEMS USING A FLUID NETWORK SIMULATION ENVIRONMENT Ron Esmao - Sr. Applications Engineer, Flowmaster USA.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
UPC/SHMEM PAT High-level Design v.1.1 Hung-Hsun Su UPC Group, HCS lab 6/21/2005.
CPIS 357 Software Quality & Testing
Software Testing Damian Gordon.
Upgrade to Real Time Linux Target: A MATLAB-Based Graphical Control Environment Thesis Defense by Hai Xu CLEMSON U N I V E R S I T Y Department of Electrical.
Automated GUI testing How to test an interactive application automatically?
Chapter 06 (Part I) Functions and an Introduction to Recursion.
1 Software Reliability Assurance for Real-time Systems Joel Henry, Ph.D. University of Montana NASA Software Assurance Symposium September 4, 2002.
CARDIAC ELECTROPHYSIOLOGY WEB LAB Developing your own protocol descriptions.
MD – Object Model Domain eSales Checker Presentation Régis Elling 26 th October 2005.
Building Dependable Distributed Systems Chapter 1 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Conformance Test Experiments for Distributed Real-Time Systems Rachel Cardell-Oliver Complex Systems Group Department of Computer Science & Software Engineering.
Bit-DSP-MicrocontrollerTMS320F2812 Texas Instruments Incorporated European Customer Training Center University of Applied Sciences Zwickau (FH)
March 2004 At A Glance autoProducts is an automated flight dynamics product generation system. It provides a mission flight operations team with the capability.
1 Software Reliability Analysis Tools Joel Henry, Ph.D. University of Montana.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Highly Scalable Distributed Dataflow Analysis Joseph L. Greathouse Advanced Computer Architecture Laboratory University of Michigan Chelsea LeBlancTodd.
CH 13 Server and Network Monitoring. Hands-On Microsoft Windows Server Objectives Understand the importance of server monitoring Monitor server.
CISC Machine Learning for Solving Systems Problems Presented by: Suman Chander B Dept of Computer & Information Sciences University of Delaware Automatic.
CSCI1600: Embedded and Real Time Software Lecture 33: Worst Case Execution Time Steven Reiss, Fall 2015.
Effects of Visualization and Interface Design on User Comprehensibility of Composite Data Asheem Chhetri, Apoorv Wairagade, Mahesh Gorantla, Hanye Xu,
Sampling Dynamic Dataflow Analyses Joseph L. Greathouse Advanced Computer Architecture Laboratory University of Michigan University of British Columbia.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Projections - A Step by Step Tutorial By Chee Wai Lee For the 2004 Charm++ Workshop.
1 Tracker Software Status M. Ellis MICE Collaboration Meeting 27 th June 2005.
Profiling/Tracing Method and Tool Evaluation Strategy Summary Slides Hung-Hsun Su UPC Group, HCS lab 1/25/2005.
Introduction to LabVIEW. Overview Objectives Background Materials Procedure Report/Presentation Closing.
Maintaining and Updating Windows Server 2008 Lesson 8.
Wednesday NI Vision Sessions
Fermilab Scientific Computing Division Fermi National Accelerator Laboratory, Batavia, Illinois, USA. Off-the-Shelf Hardware and Software DAQ Performance.
1 Programming of FPGA in LiCAS ADC for Continuous Data Readout Week 4 Report Tuesday 22 nd July 2008 Jack Hickish.
Data Collection and Analysis
DELMIA Master product description V6 for Academia portfolio
How do we tackle the extended requirements?
Software Design and Development
EPANET-MATLAB Toolkit An Open-Source Software for Interfacing EPANET with MATLAB™ Demetrios ELIADES, Marios KYRIAKOU, Stelios VRACHIMIS and Marios POLYCARPOU.
Phil Tayco Slide version 1.0 Created Nov. 26, 2017
Test Case Purification for Improving Fault Localization
Introduction to LabVIEW
Introduction to LabVIEW
Single Event Upset Simulation
Dynamic Program Analysis
Chapter 8 Software Evolution.
Coupling Interaction: It occurs due to methods of a class invoking methods of other classes. Component Coupling: refers to interaction between two classes.
RadarGun: Toward a Performance Testing Framework
Presentation transcript:

Department of Computer Engineering PROPANE An Environment for Examining the Propagation of Errors in Software Martin Hiller, Arshad Jhumka, Neeraj Suri Chalmers University of Technology Göteborg, Sweden {hiller, arshad,

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Overall Objectives A D C E B F Software reliability can be provided/increased by adding mechanisms that detect and correct data errors  wrappers, assertions, etc. (especially for black-box software) Given a software system and limited resources one would like to concentrate work on the most vulnerable/exposed parts of the software, i.e. … Where do upcoming errors propagate?  Where do upcoming errors propagate?

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Outline Error Propagation & Basic Approach Error Propagation & Basic Approach Examples of results obtained by using PROPANE Examples of results obtained by using PROPANE –Aircraft arrestment system Overview of PROPANE Overview of PROPANE –Tool suite –Requirements & limitations Conclusions & some future directions Conclusions & some future directions

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Error Propagation B F Error = A system state which is different from the state in a ”correct” execution of the system (i.e, not mutations or software defects) Modules in a software system have different levels of exposure and different ”ability” to break error propagation (i.e., different levels of error containment) – examining error propagation gives the developer a picture/profile of these levels. D C E A

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Basic Approach  Error Injection A D C E B F 1.Generate Golden Run, i.e., an error free reference run 2.Generate Injection Run, i.e., a run in which an error (i.e. erroneous system state) is injected 3.Compare Injection Run with Golden Run to see which parts of the system were corrupted by the injected error PROPANE – Propagation Analysis Environment  By instrumenting the target software, PROPANE can, during execution, log individual variables and events and inject errors into individual variables. = probe = injection location

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Example: Aircraft Arrestment System CLOCK CALC DIST_S PRES_A V_REG PRES_S ms_slot_nbr i mscnt pulscnt slow_speed stopped IsValue OutValueTOC2ADC TCNT TIC1 PACNT SetValue Rotation sensor Pressure sensor Pressure valve Computer Pressure valve Tape drum (original) Tape drum (mirror) Cable Target system overview Target software overview

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Results Generated by PROPANE From low level to high level information From low level to high level information –Signal/Variable Plots –Propagation Signatures –Propagation Graphs –Propagation Summaries Data compilations that can be used for further analysis Data compilations that can be used for further analysis

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Signal/Variable Plots One-cycle single-bit upset at t = 1500 ms SetValue erroneous at t = 1539 ms

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Propagation Signatures Each injected error generates a Propagation Signature showing when and where the error propagated Each injected error generates a Propagation Signature showing when and where the error propagated

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Propagation Graphs The Propagation Graph is generated in three different formats –PROPANE native format –GML (Graph Markup Language) – dot (part of the graphviz tool suite from AT&T Research) Probed location Incoming errors from locations earlier in the propagation path Outgoing errors to locations later in the propagation path error count t min / t avg / t max

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Propagation Graph for PACNT Starting point Propagation path Each arc carries information regarding number of propagated errors and propagation time Variables along the propagation trajectory

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Propagation Summary for PACNT Signal Error count Error rate t min t avg t max PACNT pulscnt i SetValue OutValue TOC ADC IsValue slow_speed mscnt ms_slot_nbr TCNT TIC Probed location (variable) For all incoming arcs to one node: Total error count and error rate Total error count and error rate Combined t min / t avg / t max Combined t min / t avg / t max Propagation Graphs and Propagation Summaries indicate which parts of the observed system state that are most vulnerable to the injected errors  perhaps a good location for error detection/recovery mechanisms?

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Error Propagation from PACNT Highest Error Rate Lowest Error Rate ms_slot_nbri mscnt pulscnt slow_speed stopped IsValue OutValue TOC2ADC TCNT TIC1 PACNT SetValue CLOCK PRES_S V_REG PRES_A CALC DIST_S

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Overview

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA PL PROPANE Library Static C Library providing the injection/logging API Static C Library providing the injection/logging API –propane_inject() /* Injects an error */ –propane_log_var() /* Variable probe */ –propane_log_event() /* Event probe */ Target must be instrumented with these functions and linked with the library Target must be instrumented with these functions and linked with the library Experiments are then set up using description files Experiments are then set up using description files – Error types (what errors to inject, e.g., bit-flips) – Error triggers (when to inject errors, e.g., once/periodically) – Active probes (perhaps not all instrumented variables/events have to be logged)

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Instrumentation Example int spherical_volume( double radius ) { double volume; volume = 4.0 * (PI * pow(radius, 3.0)) / 3.0; return volume; } int spherical_volume( double radius ) { double volume; /* Injection location for radius */ propane_inject( IL_SPHERE_VOL, &radius, PROPANE_DOUBLE ); /* Probe the value of radius */ propane_log_var( P_RADIUS, &radius ); volume = 4.0 * (PI * pow(radius, 3.0)) / 3.0; /* Probe the value of volume */ propane_log_var( P_VOLUME, &volume ); return volume; } Original code Instrumented code At this point, instrumentation is unfortunately still a manual task. However, automation is the next step in the development of PROPANE.

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA PSC PROPANE Setup Creator Once the target is instrumented, experiments can be set up Once the target is instrumented, experiments can be set up Given information on injection locations, probes, error types and occurrences, PSC will create Given information on injection locations, probes, error types and occurrences, PSC will create –description files for running experiments –description files for data extraction and analysis

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA PCD PROPANE Campaign Driver After instrumentation and setup, the PCD runs the experiments After instrumentation and setup, the PCD runs the experiments –Invokes instrumented target executable containing the PL and all links to external modules, e.g., environment simulator Provides continuous information on experiment status and remaining work Provides continuous information on experiment status and remaining work User control User control –Pause –Abort –Skip

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA PDE PROPANE Data Extractor Extracts and analyses data from the raw readouts produced during experiments Extracts and analyses data from the raw readouts produced during experiments –Perform Golden Run Comparisons, i.e., compare an injection run with a ”clean” reference run to trace errors, generating a Propagation Signature –Collapse multiple propagation signatures into Propagation Graphs and Propagation Summaries –Prepare/compile data for further external analysis (using e.g. MatLab)

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Requirements & Limitations Programming language Programming language –The library itself is written in C  the language in the target system must be able to interface with C-libraries Environment simulator Environment simulator –Stimuli to the target system must be provided by an environment simulator –PROPANE provides basic interfacing functionality such that control of the EnvSim can be made part of the experiment setup (~plug-in’s) Target instrumentation Target instrumentation –Difficulties with real-time applications that cannot be made to run in simulated time Current implementation focused towards single-node SW Current implementation focused towards single-node SW –Distributed SW not considered at this point

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Conclusions PROPANE enables experimental evaluation of error propagation in SW PROPANE enables experimental evaluation of error propagation in SW –Propagation profiles indicate which parts of system state that are vulnerable  aid for equipping SW with error detection and recovery mechanisms We envision that PROPANE can be used as a design stage aid for analysis of single node SW We envision that PROPANE can be used as a design stage aid for analysis of single node SW Limitations apply for some apsects of real-time and distributed SW Limitations apply for some apsects of real-time and distributed SW

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Some Future Directions Increased automation Increased automation –E.g. automatic instrumentation of target software Extended analysis capabilities Extended analysis capabilities –E.g. provide your own analysis plug-ins Open source Open source –Possibly in the near future

Department of Computer Engineering July 22, 2002 Martin Hiller PROPANE: An Environment for Examining the Propagation of Errors in Software ISSTA Further Information (and future download area)