CHESS: A Systematic Testing Tool for Concurrent Software CSCI6900 George.

Slides:



Advertisements
Similar presentations
CHESS : Systematic Testing of Concurrent Programs
Advertisements

Technology Drivers Traditional HPC application drivers – OS noise, resource monitoring and management, memory footprint – Complexity of resources to be.
Software & Services Group PinPlay: A Framework for Deterministic Replay and Reproducible Analysis of Parallel Programs Harish Patil, Cristiano Pereira,
Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College.
Alternate Software Development Methodologies
CHESS: Systematic Concurrency Testing Tom Ball, Sebastian Burckhardt, Madan Musuvathi, Shaz Qadeer Microsoft Research
Iterative Context Bounding for Systematic Testing of Multithreaded Programs Madan Musuvathi Shaz Qadeer Microsoft Research.
Tom Ball, Sebastian Burckhardt, Madan Musuvathi, Shaz Qadeer Microsoft Research.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
Synthesis of Embedded Software Using Free-Choice Petri Nets.
SOFTWARE SECURITY JORINA VAN MALSEN 1 FLAX: Systematic Discovery of Client-Side Validation Vulnerabilities in Rich Web Applications.
Continuously Recording Program Execution for Deterministic Replay Debugging.
Software Testing and Quality Assurance
Figure 2.8 Compiler phases Compiling. Figure 2.9 Object module Linking.
An Integrated Framework for Dependable Revivable Architectures Using Multi-core Processors Weiding Shi, Hsien-Hsin S. Lee, Laura Falk, and Mrinmoy Ghosh.
Chapter 13 Embedded Systems
Multiscalar processors
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
SIMULATING ERRORS IN WEB SERVICES International Journal of Simulation: Systems, Sciences and Technology 2004 Nik Looker, Malcolm Munro and Jie Xu.
Understanding of Automation Framework A Storehouse of Vast Knowledge on Software Testing and Quality Assurance.
Presenter: Chi-Hung Lu 1. Problems Distributed applications are hard to validate Distribution of application state across many distinct execution environments.
1 Presenter: Ming-Shiun Yang Sah, A., Balakrishnan, M., Panda, P.R. Design, Automation & Test in Europe Conference & Exhibition, DATE ‘09. A Generic.
Exceptions and Mistakes CSE788 John Eisenlohr. Big Question How can we improve the quality of concurrent software?
0 Deterministic Replay for Real- time Software Systems Alice Lee Safety, Reliability & Quality Assurance Office JSC, NASA Yann-Hang.
Deterministic Replay of Java Multithreaded Applications Jong-Deok Choi and Harini Srinivasan slides made by Qing Zhang.
Timing and Race Condition Verification of Real-time Systems Yann–Hang Lee, Gerald Gannod, and Karam Chatha Dept. of Computer Science and Eng. Arizona State.
Operating System A program that controls the execution of application programs An interface between applications and hardware 1.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: System Structures.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Analyzing parallel programs with Pin Moshe Bach, Mark Charney, Robert Cohn, Elena Demikhovsky, Tevi Devor, Kim Hazelwood, Aamer Jaleel, Chi- Keung Luk,
SSGRR A Taxonomy of Execution Replay Systems Frank Cornelis Andy Georges Mark Christiaens Michiel Ronsse Tom Ghesquiere Koen De Bosschere Dept. ELIS.
Testing Concurrent Programs, A 7-Minute Jargon-Free Introduction Thesis Writing Seminar Mathias Ricken Rice University February 25, 2010.
Replay Compilation: Improving Debuggability of a Just-in Time Complier Presenter: Jun Tao.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
BridgePoint Integration John Wolfe / Robert Day Accelerated Technology.
Justin. Outline  Introduction  The Challenge of Preemption  TOSThreads Architecture  Implementation  Evaluation.
Presentation by Tom Hummel OverSoC: A Framework for the Exploration of RTOS for RSoC Platforms.
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
© 2006, National Research Council Canada © 2006, IBM Corporation Solving performance issues in OTS-based systems Erik Putrycz Software Engineering Group.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov August 30, 2011.
Polytechnic University of Tirana Faculty of Information Technology Computer Engineering Department A MULTITHREADED SEARCH ENGINE AND TESTING OF MULTITHREADED.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Shangkar Mayanglambam, Allen D. Malony, Matthew J. Sottile Computer and Information Science Department Performance.
Execution Replay and Debugging. Contents Introduction Parallel program: set of co-operating processes Co-operation using –shared variables –message passing.
Flashback : A Lightweight Extension for Rollback and Deterministic Replay for Software Debugging Sudarshan M. Srinivasan, Srikanth Kandula, Christopher.
Continual Service Improvement Methods & Techniques.
CHESS Finding and Reproducing Heisenbugs in Concurrent Programs
Agenda  Quick Review  Finish Introduction  Java Threads.
Reachability Testing of Concurrent Programs1 Reachability Testing of Concurrent Programs Richard Carver, GMU Yu Lei, UTA.
Testing Concurrent Programs Sri Teja Basava Arpit Sud CSCI 5535: Fundamentals of Programming Languages University of Colorado at Boulder Spring 2010.
Page 1 2P13 Week 1. Page 2 Page 3 Page 4 Page 5.
POLITECNICO DI MILANO A SystemC-based methodology for the simulation of dynamically reconfigurable embedded systems Dynamic Reconfigurability in Embedded.
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
Resource Optimization for Publisher/Subscriber-based Avionics Systems Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee.
Chapter 4 – Thread Concepts
Self Healing and Dynamic Construction Framework:
Chapter 4 – Thread Concepts
Effective Data-Race Detection for the Kernel
Model-Driven Analysis Frameworks for Embedded Systems
NASPAC 2.0 Architecture January 27, 2010
Assoc. Prof. Dr. Syed Abdul-Rahman Al-Haddad
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
HCL Application Modernization Services
Presentation transcript:

CHESS: A Systematic Testing Tool for Concurrent Software CSCI6900 George

Outline  Introduction  Using CHESS  Capturing nondeterminism  Exploring nondeterminism  Evaluation  Related work

Introduction  Concurrent programming is difficult  Testing concurrent program is difficult  Famous concurrency bug: “Heisenbugs”  Most strategy used in finding concurrency bugs  Stress testing

Introduction  What is “Concurrency testing”  Concurrency scenario testing  Model checking techniques  Three key challengers by applying model checking  Perturbation problem  Rich and complex concurrency APIs in system  State-space explosion.

Introduction  What is “CHESS”  Concurrency scenario testing  Model checking techniques  Scale to large concurrent program  Reproduce an erroneous execution  Been integrated into the test framework inside Microsoft

Introduction  How does CHESS solve the previous key problems?  Testing methodology of CHESS reduce the perturbation  Only one perturbation in CHESS  Wrappers to provides enough hooks  Variety of techniques to address the state-explosion

Contributions of this paper  The first system for integrating model checking into concurrent systems and test frameworks with minimal perturbation;  Techniques for systematic exploration of systems code for fine-grained concurrency with shared memory and multithreading;

Contributions of this paper  Validation of the CHESS tool and its accompany testing and wrapper methodology on three different platforms;  A substantial number of previously unknown bugs, even in well-tested systems;  The ability to consistently reproduce crashing bugs with unknown cause.

Using CHESS  Traditional testing methodology  Disadvantages of this testing methodology

Using CHESS  CHESS architecture

Using CHESS  Testing methodology in CHESS

Using CHESS  To guarantee the previous advantages, CHESS has to control the scheduling of the tasks  Two ways to control it  Modify the scheduler  Severely limited the deployment

Using CHESS  Testing methodology in CHESS

Using CHESS  Two assumption of about the testing program  Quiescence  Definition of “Quiescence State”  How does CHESS handle “Quiescence State”

Capturing nondeterminism  Tasks in CHESS  Threads  Timers  Asynchronous I/Os  Wrappers in CHESS  Goal of wrappers

Capturing nondeterminism  Design of Wrappers in CHESS

Capturing nondeterminism  Synchronization wrappers

Capturing nondeterminism  Synchronization wrappers

Capturing nondeterminism  Hooking the wrappers  use various mechanisms to dynamically intercept calls to the real API functions and forward them to the wrappers.  Programs in this paper  Win32 .NET  Singularity

Exploring nondeterminism  How CHESS systematically drives the test  Basic scheduler operation  Allows only one thread to execute at a time  Repeatedly executes the same test driving each iteration of the test through a different schedule  Three phases in each iteration

Exploring nondeterminism  Replay phase  Replays a sequence of scheduling choices from a trace file  Record phase  Schedules a thread till the thread yields the processor  Search phase  Uses the enabled information at each schedule point to determine the scheduler for the next iteration

Exploring nondeterminism  Imperfect replay  Not rely on perfect replay capability  Common sources of nondeterminism  Lazy-initialization  Interference from environment  Nondeterministic calls

Exploring nondeterminism  Ensuring fair schedules  Can not enumerate all fair schedules  State-explosion  Definition of State-explosion  Inserting preemptions  Capturing states

Evaluation  Systems on which CHESS has been run on

Evaluation  Test scenarios and findings

Evaluation  Validation CHESS against stress-testing  Common objection of the CHESS  Failure and bug in CHESS  Succeeded in reproducing every stress-test failure

Evaluation  Description of two bugs  PLINQ bug

Evaluation  Description of two bugs  Singularity bug

Related work  Repeatable deterministic testing  Systematic generation of thread schedules  Applying state exploration directly to executing concurrent programs  Replay a concurrent execution