From Symbolic Execution to Concolic Testing. Daniel Paqué

Size: px
Start display at page:

Download "From Symbolic Execution to Concolic Testing. Daniel Paqué"

Transcription

1 From Symbolic Execution to Concolic Testing Daniel Paqué

2 Structure Symbolic Execution Concolic Testing Execution Generated Testing Concurrency in Concolic Testing 2

3 Motivation Software Testing usually accounts for 50% of software development cost [Source: The economic impacts of inadequate infrastructure for software testing, NIST] complex and large Software Systems complicate finding small test suites with high coverage Symbolic Execution automic test case generation high code coverage 3

4 Symbolic Execution - Idea execute the program in symbolic domain explore all possible execution paths for each path the constraints of the branching points are collected generate test input based on the constraints 4

5 Symbolic Execution - Example 5

6 Symbolic Execution - Example symbolic domain: symbolic state path condition 6

7 Symbolic Execution - Example symbolic domain: 7

8 Symbolic Execution - Example symbolic domain: 8

9 Symbolic Execution - Example 1 symbolic domain: 2 9

10 Symbolic Execution - Example 1 symbolic domain:

11 Symbolic Execution - Example 11

12 Limits of Symbolic Execution 1 symbolic domain: 2 12

13 Solution Mix Symbolic Execution with Concrete Execution Concolic Testing Execution Generated Testing 13

14 Symbolic Execution 1979 J.C. King mix concrete with symbolic execution Concolic Testing 2005, Godefroid, Sen + improvements in constraint solving Execution Generated Testing (EGT) 2006 Cadar et. al 14

15 Concolic Testing execute program with concrete values and collect symbolic constraints during execution explore paths sequentially instead of forking infer input for next execution use concrete values to solve problematic constraints 15

16 Concolic Testing - Example symbolic state: 16

17 Concolic Testing - Example false symbolic state: 17

18 Concolic Testing - Example symbolic domain: new input: 18

19 Concolic Testing - Example 19

20 Concolic Testing - Example symbolic domain: evaluate condition in concrete true 20

21 Concolic Testing - Example symbolic state: evaluate bar() in concrete 21

22 Symbolic Execution 1979 J.C. King mix concrete with symbolic execution Concolic Testing sequential path exploration guided by concrete input Execution Generated Testing (EGT) fork execution for each path guided by symbolic execution 22

23 Execution Generated Testing further differences to Concolic Testing: EGT dynamically checks if all operands are concrete if so the operation can be executed in concrete elsewise the operation is executed symbolical concrete symbolic 23

24 How to deal with concurrent programs? 24

25 Main Challenge Problem Thread 0 Thread 1 25

26 Main Challenge Idea summarize redundant interleavings Thread 0 Thread 1 26

27 jcute Koushik Sen & Gul Agha: (2006) race-detection and flipping algorithm minimize redundant executions in concurrent programs uses vector clocks to identify races 27

28 Redundant Executions Thread t 0 : Thread t 1 : Execution 1: Execution 2: Execution 3: Execution 4: result: {4, 0, 16} {4, 0, 16} {3, 0, 15} {3, 0, 16} 28

29 Redundant Executions Race Detection two events are in a race if they stem from different threads both access the same memory location (without locking) the order both events can be permuted by changing the schedule Execution 1: Execution 2: Execution 3: Execution 4: result: {4, 0, 16} {4, 0, 16} {3, 0, 15} {3, 0, 16} races: 29

30 The Race-Detection and Flipping Algorithm init: generate a random input and a schedule loop: execute code with the generated input and schedule compute the race conditions and symbolic constraints generate a new schedule or a new input continue until all possible distinct execution paths have been explored (depth-first search strategy) 30

31 Generating new inputs/schedules new input: concolic testing new schedule: pick two events which are in a race delay the first event as much as possbile schedule1: schedule 2: 31

32 How to identify races? 32

33 How to identify races? vector clocks - each thread t gets it s own vector clock V t - each memory location gets another two 33

34 Vector Clocks - Example 34

35 Vector Clocks - Algorithm 35

36 Vector Clocks Example 36

37 Vector Clocks Example 37

38 Vector Clocks Example 38

39 Vector Clocks Example 39

40 Vector Clocks Example 40

41 Vector Clock Theorem 41

42 Questions? 42

43 Precise Definitions (just in case) 43

44 Race Relation Simple Defintion: 44

45 sequentially related 45

46 access precedence related 46

47 causally related 47

48 race related 48

49 Race-Detection and Flipping Algorithm Detailled Example 49

Concolic Testing of Sequential and Concurrent Programs

Concolic Testing of Sequential and Concurrent Programs Concolic Testing of Sequential and Concurrent Programs Koushik Sen University of California, Berkeley ksen@cs.berkeley.edu and Darko Marinov University of Illinois at Urbana Champaign marinov@cs.uiuc.edu

More information

CUTE: A Concolic Unit Testing Engine for C

CUTE: A Concolic Unit Testing Engine for C CUTE: A Concolic Unit Testing Engine for C Koushik Sen Darko Marinov Gul Agha University of Illinois Urbana-Champaign Goal Automated Scalable Unit Testing of real-world C Programs Generate test inputs

More information

Symbolic Execution, Dynamic Analysis

Symbolic Execution, Dynamic Analysis Symbolic Execution, Dynamic Analysis http://d3s.mff.cuni.cz Pavel Parízek CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Symbolic execution Pavel Parízek Symbolic Execution, Dynamic Analysis

More information

NDSeq: Runtime Checking for Nondeterministic Sequential Specs of Parallel Correctness

NDSeq: Runtime Checking for Nondeterministic Sequential Specs of Parallel Correctness EECS Electrical Engineering and Computer Sciences P A R A L L E L C O M P U T I N G L A B O R A T O R Y NDSeq: Runtime Checking for Nondeterministic Sequential Specs of Parallel Correctness Jacob Burnim,

More information

Symbolic Execution. Wei Le April

Symbolic Execution. Wei Le April Symbolic Execution Wei Le 2016 April Agenda What is symbolic execution? Applications History Interal Design: The three challenges Path explosion Modeling statements and environments Constraint solving

More information

Software Testing CS 408. Lecture 6: Dynamic Symbolic Execution and Concolic Testing 1/30/18

Software Testing CS 408. Lecture 6: Dynamic Symbolic Execution and Concolic Testing 1/30/18 Software Testing CS 408 Lecture 6: Dynamic Symbolic Execution and Concolic Testing 1/30/18 Relevant Papers CUTE: A Concolic Unit Testing Engine for C Koushik Sen, Darko Marinov, Gul Agha Department of

More information

A Survey of Search Strategies in the Dynamic Symbolic Execution

A Survey of Search Strategies in the Dynamic Symbolic Execution A Survey of Search Strategies in the Dynamic Symbolic Execution Yu LIU *, Xu ZHOU a and Wei-Wei GONG b National University of Defense Technology, Changsha, China a zhouxu@nudt.edu.cn, b IssacGong@outlook.com

More information

Fig. 1. Syntax of MPIL

Fig. 1. Syntax of MPIL Automated Systematic Testing of Open Distributed Programs Koushik Sen and Gul Agha Department of Computer Science University of Illinois at Urbana-Champaign, USA. {ksen,agha}@cs.uiuc.edu Abstract. We present

More information

Efficient Test Case Generation for Detecting Race Conditions

Efficient Test Case Generation for Detecting Race Conditions IAENG International Journal of Computer Science, 4, IJCS_4 04 Efficient Test Case Generation for Detecting Race Conditions Theodorus E Setiadi, Akihiko Ohsuga, and Mamoru Maekawa Abstract Non-deterministic

More information

Using Unfoldings in Automated Testing of Multithreaded Programs

Using Unfoldings in Automated Testing of Multithreaded Programs Using Unfoldings in Automated Testing of Multithreaded Programs Kari Kähkönen, Olli Saarikivi, Keijo Heljanko Department of Information and Computer Science, School of Science, Aalto University PO Box

More information

Automated Testing of Cloud Applications

Automated Testing of Cloud Applications Automated Testing of Cloud Applications Linghao Zhang, Tao Xie, Nikolai Tillmann, Peli de Halleux, Xiaoxing Ma, Jian lv {lzhang25, txie}@ncsu.edu, {nikolait, jhalleux}@microsoft.com, {xxm, lj}@nju.edu.cn

More information

DART: Directed Automated Random Testing

DART: Directed Automated Random Testing DART: Directed Automated Random Testing Patrice Godefroid Nils Klarlund Koushik Sen Bell Labs Bell Labs UIUC Presented by Wei Fang January 22, 2015 PLDI 2005 Page 1 June 2005 Motivation Software testing:

More information

Symbolic and Concolic Execution of Programs

Symbolic and Concolic Execution of Programs Symbolic and Concolic Execution of Programs Information Security, CS 526 Omar Chowdhury 10/7/2015 Information Security, CS 526 1 Reading for this lecture Symbolic execution and program testing - James

More information

Symbolic Execution for Bug Detection and Automated Exploit Generation

Symbolic Execution for Bug Detection and Automated Exploit Generation Symbolic Execution for Bug Detection and Automated Exploit Generation Daniele Cono D Elia Credits: Emilio Coppa SEASON Lab season-lab.github.io May 27, 2016 1 / 29 Daniele Cono D Elia Symbolic Execution

More information

Automated Software Testing in the Absence of Specifications

Automated Software Testing in the Absence of Specifications Automated Software Testing in the Absence of Specifications Tao Xie North Carolina State University Department of Computer Science Nov 2005 http://www.csc.ncsu.edu/faculty/xie/ Why Automate Testing? Software

More information

Automated Test-Input Generation

Automated Test-Input Generation Automated Test-Input Generation Tao Xie North Carolina State University Department of Computer Science Nov 2005 http://www.csc.ncsu.edu/faculty/xie/ Why Automate Testing? Software testing is important

More information

Symbolic Execution for Software Testing: Three Decades Later

Symbolic Execution for Software Testing: Three Decades Later doi:10.1145/2408776.2408795 The challenges and great promise of modern symbolic execution techniques, and the tools to help implement them. By Cristian Cadar and Koushik Sen Symbolic Execution for Software

More information

Symbolic Execu.on. Suman Jana

Symbolic Execu.on. Suman Jana Symbolic Execu.on Suman Jana Acknowledgement: Baishakhi Ray (Uva), Omar Chowdhury (Purdue), Saswat Anand (GA Tech), Rupak Majumdar (UCLA), Koushik Sen (UCB) What is the goal? Tes.ng Tes%ng approaches are

More information

Dynamic Symbolic Database Application Testing

Dynamic Symbolic Database Application Testing Dynamic Symbolic Database Application Testing Chengkai Li, Christoph Csallner University of Texas at Arlington June 7, 2010 DBTest 2010 Chengkai Li, Christoph Csallner Dynamic Symbolic Database Application

More information

Testing & Symbolic Execution

Testing & Symbolic Execution Testing & Symbolic Execution Software Testing The most common way of measuring & ensuring correctness Input 2 Software Testing The most common way of measuring & ensuring correctness Input Observed Behavior

More information

CMSC 714 Lecture 14 Lamport Clocks and Eraser

CMSC 714 Lecture 14 Lamport Clocks and Eraser Notes CMSC 714 Lecture 14 Lamport Clocks and Eraser Midterm exam on April 16 sample exam questions posted Research project questions? Alan Sussman (with thanks to Chris Ackermann) 2 Lamport Clocks Distributed

More information

CMSC 430 Introduction to Compilers. Fall Symbolic Execution

CMSC 430 Introduction to Compilers. Fall Symbolic Execution CMSC 430 Introduction to Compilers Fall 2015 Symbolic Execution Introduction Static analysis is great Lots of interesting ideas and tools Commercial companies sell, use static analysis It all looks good

More information

Software Architecture and Engineering: Part II

Software Architecture and Engineering: Part II Software Architecture and Engineering: Part II ETH Zurich, Spring 2016 Prof. http://www.srl.inf.ethz.ch/ Framework SMT solver Alias Analysis Relational Analysis Assertions Second Project Static Analysis

More information

Concurrency control (1)

Concurrency control (1) Concurrency control (1) Concurrency control is the set of mechanisms put in place to preserve consistency and isolation If we were to execute only one transaction at a time the (i.e. sequentially) implementation

More information

Combining Model Checking and Testing

Combining Model Checking and Testing Combining Model Checking and Testing Patrice Godefroid Abstract Model checking and testing have a lot in common. Over the last two decades, significant progress has been made on how to broaden the scope

More information

Generating High Coverage Tests for SystemC Designs Using Symbolic Execution. Bin Lin Department of Computer Science Portland State University

Generating High Coverage Tests for SystemC Designs Using Symbolic Execution. Bin Lin Department of Computer Science Portland State University Generating High Coverage Tests for SystemC Designs Using Symbolic Execution Bin Lin Department of Computer Science Portland State University 1 Agenda Introduction Related work and Background Our Approach

More information

A Causality-Based Runtime Check for (Rollback) Atomicity

A Causality-Based Runtime Check for (Rollback) Atomicity A Causality-Based Runtime Check for (Rollback) Atomicity Serdar Tasiran Koc University Istanbul, Turkey Tayfun Elmas Koc University Istanbul, Turkey RV 2007 March 13, 2007 Outline This paper: Define rollback

More information

7/6/2015. Motivation & examples Threads, shared memory, & synchronization. Imperative programs

7/6/2015. Motivation & examples Threads, shared memory, & synchronization. Imperative programs Motivation & examples Threads, shared memory, & synchronization How do locks work? Data races (a lower level property) How do data race detectors work? Atomicity (a higher level property) Concurrency exceptions

More information

Motivation & examples Threads, shared memory, & synchronization

Motivation & examples Threads, shared memory, & synchronization 1 Motivation & examples Threads, shared memory, & synchronization How do locks work? Data races (a lower level property) How do data race detectors work? Atomicity (a higher level property) Concurrency

More information

On-the-Fly Data Race Detection in MPI One-Sided Communication

On-the-Fly Data Race Detection in MPI One-Sided Communication On-the-Fly Data Race Detection in MPI One-Sided Communication Presentation Master Thesis Simon Schwitanski (schwitanski@itc.rwth-aachen.de) Joachim Protze (protze@itc.rwth-aachen.de) Prof. Dr. Matthias

More information

DART: Directed Automated Random Testing. CUTE: Concolic Unit Testing Engine. Slide Source: Koushik Sen from Berkeley

DART: Directed Automated Random Testing. CUTE: Concolic Unit Testing Engine. Slide Source: Koushik Sen from Berkeley DAR: Directed Automated Random esting CUE: Concolic Unit esting Engine Slide Source: Koushik Sen from Berkeley Verification and esting We would like to prove programs correct Verification and esting We

More information

Static Analysis of Embedded C

Static Analysis of Embedded C Static Analysis of Embedded C John Regehr University of Utah Joint work with Nathan Cooprider Motivating Platform: TinyOS Embedded software for wireless sensor network nodes Has lots of SW components for

More information

CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs Pallavi Joshi 1, Mayur Naik 2, Chang-Seo Park 1, and Koushik Sen 1

CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs Pallavi Joshi 1, Mayur Naik 2, Chang-Seo Park 1, and Koushik Sen 1 CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs Pallavi Joshi 1, Mayur Naik 2, Chang-Seo Park 1, and Koushik Sen 1 1 University of California, Berkeley, USA {pallavi,parkcs,ksen}@eecs.berkeley.edu

More information

Reasoning About The Implementations Of Concurrency Abstractions On x86-tso. By Scott Owens, University of Cambridge.

Reasoning About The Implementations Of Concurrency Abstractions On x86-tso. By Scott Owens, University of Cambridge. Reasoning About The Implementations Of Concurrency Abstractions On x86-tso By Scott Owens, University of Cambridge. Plan Intro Data Races And Triangular Races Examples 2 sequential consistency The result

More information

The Java Memory Model

The Java Memory Model The Java Memory Model The meaning of concurrency in Java Bartosz Milewski Plan of the talk Motivating example Sequential consistency Data races The DRF guarantee Causality Out-of-thin-air guarantee Implementation

More information

CYSE 411/AIT681 Secure Software Engineering Topic #17: Symbolic Execution

CYSE 411/AIT681 Secure Software Engineering Topic #17: Symbolic Execution CYSE 411/AIT681 Secure Software Engineering Topic #17: Symbolic Execution Instructor: Dr. Kun Sun Software has bugs To find them, we use testing and code reviews But some bugs are still missed Rare features

More information

Software has bugs. Static analysis 4/9/18. CYSE 411/AIT681 Secure Software Engineering. To find them, we use testing and code reviews

Software has bugs. Static analysis 4/9/18. CYSE 411/AIT681 Secure Software Engineering. To find them, we use testing and code reviews CYSE 411/AIT681 Secure Software Engineering Topic #17: Symbolic Execution Instructor: Dr. Kun Sun Software has bugs To find them, we use testing and code reviews But some bugs are still missed Rare features

More information

A Survey of Approaches for Automated Unit Testing. Outline

A Survey of Approaches for Automated Unit Testing. Outline A Survey of Approaches for Automated Unit Testing Peter Carr Ron Kneusel Outline Introduction/Motivation Concolic Testing Random Testing Evolutionary Testing Random/Evolutionary Experiment and Results

More information

Consistency and Replication

Consistency and Replication Consistency and Replication 1 D R. Y I N G W U Z H U Reasons for Replication Data are replicated to increase the reliability of a system. Replication for performance Scaling in numbers Scaling in geographical

More information

Predicting Null-Pointer Dereferences in Concurrent Programs. Parthasarathy Madhusudan Niloofar Razavi Francesco Sorrentino

Predicting Null-Pointer Dereferences in Concurrent Programs. Parthasarathy Madhusudan Niloofar Razavi Francesco Sorrentino Predicting Null-Pointer Dereferences in Concurrent Programs After work by: Azadeh Farzan Parthasarathy Madhusudan Niloofar Razavi Francesco Sorrentino Overview The problem The idea The solution The evaluation

More information

Hybrid Analysis for Partial Order Reduction of Programs with Arrays

Hybrid Analysis for Partial Order Reduction of Programs with Arrays Hybrid Analysis for Partial Order Reduction of Programs with Arrays Pavel Parízek Charles University in Prague, Faculty of Mathematics and Physics, Department of Distributed and Dependable Systems Abstract.

More information

EFFECTIVE HEURISTIC-BASED TEST GENERATION TECHNIQUES FOR CONCURRENT SOFTWARE. Niloofar Razavi

EFFECTIVE HEURISTIC-BASED TEST GENERATION TECHNIQUES FOR CONCURRENT SOFTWARE. Niloofar Razavi EFFECTIVE HEURISTIC-BASED TEST GENERATION TECHNIQUES FOR CONCURRENT SOFTWARE by Niloofar Razavi A thesis submitted in conformity with the requirements for the degree of Doctor of Philosophy Graduate Department

More information

CMSC 631 Program Analysis and Understanding. Spring Symbolic Execution

CMSC 631 Program Analysis and Understanding. Spring Symbolic Execution CMSC 631 Program Analysis and Understanding Spring 2013 Symbolic Execution Introduction Static analysis is great Lots of interesting ideas and tools Commercial companies sell, use static analysis It all

More information

Multi-threaded programming in Java

Multi-threaded programming in Java Multi-threaded programming in Java Java allows program to specify multiple threads of execution Provides instructions to ensure mutual exclusion, and selective blocking/unblocking of threads What is a

More information

A CutEr Tool. Kostis Sagonas

A CutEr Tool. Kostis Sagonas A CutEr Tool Kostis Sagonas Overview Testing demo: unit, property-based, and concolic testing in Erlang Concolic execution for Erlang demo Support for type specifications short demo CutEr: A Concolic Unit

More information

Handling Dynamic Data Structures in Search Based Testing

Handling Dynamic Data Structures in Search Based Testing Handling Dynamic Data Structures in Search Based Testing Kiran Lakhotia King s College Strand, London WC2R 2LS, UK kiran.lakhotia@kcl.ac.uk Mark Harman King s College Strand, London WC2R 2LS, UK mark.harman@kcl.ac.uk

More information

CUTE: A Concolic Unit Testing Engine for C

CUTE: A Concolic Unit Testing Engine for C CUTE: A Concolic Unit Testing Engine for C Koushik Sen, Darko Marinov, Gul Agha Department of Computer Science University of Illinois at Urbana-Champaign {ksen,marinov,agha}@cs.uiuc.edu ABSTRACT In unit

More information

n HW7 due in about ten days n HW8 will be optional n No CLASS or office hours on Tuesday n I will catch up on grading next week!

n HW7 due in about ten days n HW8 will be optional n No CLASS or office hours on Tuesday n I will catch up on grading next week! Announcements SMT Solvers, Symbolic Execution n HW7 due in about ten days n HW8 will be optional n No CLASS or office hours on Tuesday n I will catch up on grading next week! n Presentations n Some of

More information

A Tutorial Introduction 1

A Tutorial Introduction 1 Preface From the Old to the New Acknowledgments xv xvii xxi 1 Verilog A Tutorial Introduction 1 Getting Started A Structural Description Simulating the binarytoeseg Driver Creating Ports For the Module

More information

Testing, Fuzzing, & Symbolic Execution

Testing, Fuzzing, & Symbolic Execution Testing, Fuzzing, & Symbolic Execution Software Testing The most common way of measuring & ensuring correctness Input 2 Software Testing The most common way of measuring & ensuring correctness Input Observed

More information

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA

More information

A unified machine-checked model for multithreaded Java

A unified machine-checked model for multithreaded Java A unified machine-checked model for multithreaded Java Andre Lochbihler IPD, PROGRAMMING PARADIGMS GROUP, COMPUTER SCIENCE DEPARTMENT KIT - University of the State of Baden-Wuerttemberg and National Research

More information

Testing Non-termination in Multi-threaded programs

Testing Non-termination in Multi-threaded programs Graduate Theses and Dissertations Iowa State University Capstones, Theses and Dissertations 2016 Testing Non-termination in Multi-threaded programs Priyanka Thyagarajan Iowa State University Follow this

More information

Safe Optimisations for Shared-Memory Concurrent Programs. Tomer Raz

Safe Optimisations for Shared-Memory Concurrent Programs. Tomer Raz Safe Optimisations for Shared-Memory Concurrent Programs Tomer Raz Plan Motivation Transformations Semantic Transformations Safety of Transformations Syntactic Transformations 2 Motivation We prove that

More information

Process Synchronization

Process Synchronization Process Synchronization Concurrent access to shared data may result in data inconsistency Multiple threads in a single process Maintaining data consistency requires mechanisms to ensure the orderly execution

More information

An Introduction to I/O and Storage Tuning. Randy Kreiser Senior MTS Consulting Engineer, SGI

An Introduction to I/O and Storage Tuning. Randy Kreiser Senior MTS Consulting Engineer, SGI Randy Kreiser Senior MTS Consulting Engineer, SGI 40/30/30 Performance Rule 40% Hardware Setup 30% System Software Setup 30% Application Software Analyze the Application Large/Small I/O s Sequential/Random

More information

EE382N.23: Embedded System Design and Modeling

EE382N.23: Embedded System Design and Modeling EE382N.23: Embedded System Design and Modeling Lecture 3 Language Semantics Andreas Gerstlauer Electrical and Computer Engineering University of Texas at Austin gerstl@ece.utexas.edu Lecture 3: Outline

More information

Part II: Atomicity for Software Model Checking. Analysis of concurrent programs is difficult (1) Transaction. The theory of movers (Lipton 75)

Part II: Atomicity for Software Model Checking. Analysis of concurrent programs is difficult (1) Transaction. The theory of movers (Lipton 75) Part II: Atomicity for Software Model Checking Class Account { int balance; static int MIN = 0, MAX = 00; bool synchronized deposit(int n) { int t = balance + n; if (t > MAX) return false; bool synchronized

More information

Foundations of the C++ Concurrency Memory Model

Foundations of the C++ Concurrency Memory Model Foundations of the C++ Concurrency Memory Model John Mellor-Crummey and Karthik Murthy Department of Computer Science Rice University johnmc@rice.edu COMP 522 27 September 2016 Before C++ Memory Model

More information

Available online at ScienceDirect. Procedia Computer Science 62 (2015 )

Available online at  ScienceDirect. Procedia Computer Science 62 (2015 ) Available online at www.sciencedirect.com ScienceDirect Procedia Computer Science 62 (2015 ) 266 273 The 2015 International Conference on Soft Computing and Software Engineering (SCSE 2015) ABCE: A novel

More information

Hierarchical Pointer Analysis for Distributed Programs

Hierarchical Pointer Analysis for Distributed Programs Hierarchical Pointer Analysis for Distributed Programs Amir Kamil Computer Science Division, University of California, Berkeley kamil@cs.berkeley.edu April 14, 2006 1 Introduction Many distributed, parallel

More information

Symbolic Execution. Joe Hendrix Galois, Inc SMT Summer School galois

Symbolic Execution. Joe Hendrix Galois, Inc SMT Summer School galois Symbolic Execution Joe Hendrix Galois, Inc SMT Summer School 2015 Galois, Inc We solve hard research problems for clients. Symbolic Execution is a technique for mapping code into logic. is widely used

More information

More BSOD Embarrassments. Moore s Law. Programming With Threads. Moore s Law is Over. Analysis of Concurrent Software. Types for Race Freedom

More BSOD Embarrassments. Moore s Law. Programming With Threads. Moore s Law is Over. Analysis of Concurrent Software. Types for Race Freedom Moore s Law Analysis of Concurrent Software Types for Race Freedom Transistors per chip doubles every 18 months Cormac Flanagan UC Santa Cruz Stephen N. Freund Williams College Shaz Qadeer Microsoft Research

More information

References: Thomas A. Henzinger (1996): The theory of hybrid automata In: Annual IEEE Symposium on Logic in Computer Science

References: Thomas A. Henzinger (1996): The theory of hybrid automata In: Annual IEEE Symposium on Logic in Computer Science Hybrid Systems Modeling In today's fast evolving technologies where the line between analog and digital systems is getting blurred, systems consist of a mix of continuous and discrete components. A discrete

More information

The Java Memory Model

The Java Memory Model Jeremy Manson 1, William Pugh 1, and Sarita Adve 2 1 University of Maryland 2 University of Illinois at Urbana-Champaign Presented by John Fisher-Ogden November 22, 2005 Outline Introduction Sequential

More information

The Verilog Hardware Description Language

The Verilog Hardware Description Language Donald Thomas Philip Moorby The Verilog Hardware Description Language Fifth Edition 4y Spri nnger Preface From the Old to the New Acknowledgments xv xvii xxi 1 Verilog A Tutorial Introduction Getting Started

More information

Formal modelling and verification in UPPAAL

Formal modelling and verification in UPPAAL Budapest University of Technology and Economics Department of Measurement and Information Systems Fault Tolerant Systems Research Group Critical Embedded Systems Formal modelling and verification in UPPAAL

More information

The Spin Model Checker : Part I/II

The Spin Model Checker : Part I/II The Spin Model Checker : Part I/II Moonzoo Kim CS Dept. KAIST Korea Advanced Institute of Science and Technology Motivation: Tragic Accidents Caused by SW Bugs 2 Cost of Software Errors June 2002 Software

More information

CSC 4320 Test 1 Spring 2017

CSC 4320 Test 1 Spring 2017 CSC 4320 Test 1 Spring 2017 Name 1. What are the three main purposes of an operating system? 2. Which of the following instructions should be privileged? a. Set value of timer. b. Read the clock. c. Clear

More information

EECE.4810/EECE.5730: Operating Systems Spring 2017 Homework 2 Solution

EECE.4810/EECE.5730: Operating Systems Spring 2017 Homework 2 Solution 1. (15 points) A system with two dual-core processors has four processors available for scheduling. A CPU-intensive application (e.g., a program that spends most of its time on computation, not I/O or

More information

Scaling Optimistic Concurrency Control by Approximately Partitioning the Certifier and Log

Scaling Optimistic Concurrency Control by Approximately Partitioning the Certifier and Log Scaling Optimistic Concurrency Control by Approximately Partitioning the Certifier and Log Philip A. Bernstein Microsoft Research Redmond, WA, USA phil.bernstein@microsoft.com Sudipto Das Microsoft Research

More information

EN164: Design of Computing Systems Lecture 07: Lab Foundations / Verilog 3

EN164: Design of Computing Systems Lecture 07: Lab Foundations / Verilog 3 EN164: Design of Computing Systems Lecture 07: Lab Foundations / Verilog 3 Professor Sherief Reda http://scaleenginbrownedu Electrical Sciences and Computer Engineering School of Engineering Brown University

More information

JMLCUTE: Automated JML-Based Unit Test Case Generation

JMLCUTE: Automated JML-Based Unit Test Case Generation JMLCUTE: Automated JML-Based Unit Test Case Generation Rafael Baltazar Instituto Superior Tecnico, Lisboa, Portugal, rafael.baltazar@tecnico.ulisboa.pt Abstract. A formal specification is the detailed

More information

Dynamic Symbolic Execution for Testing Distributed Objects

Dynamic Symbolic Execution for Testing Distributed Objects Dynamic Symbolic Execution for Testing Distributed Objects Andreas Griesmayer 1, Bernhard Aichernig 1,2, Einar Broch Johnsen 3, and Rudolf Schlatte 1,2 1 International Institute for Software Technology,

More information

Reinhard v. Hanxleden 1, Michael Mendler 2, J. Aguado 2, Björn Duderstadt 1, Insa Fuhrmann 1, Christian Motika 1, Stephen Mercer 3 and Owen Brian 3

Reinhard v. Hanxleden 1, Michael Mendler 2, J. Aguado 2, Björn Duderstadt 1, Insa Fuhrmann 1, Christian Motika 1, Stephen Mercer 3 and Owen Brian 3 Sequentially Constructive Concurrency * A conservative extension of the Synchronous Model of Computation Reinhard v. Hanxleden, Michael Mendler 2, J. Aguado 2, Björn Duderstadt, Insa Fuhrmann, Christian

More information

Scheduler Activations. CS 5204 Operating Systems 1

Scheduler Activations. CS 5204 Operating Systems 1 Scheduler Activations CS 5204 Operating Systems 1 Concurrent Processing How can concurrent processing activity be structured on a single processor? How can application-level information and system-level

More information

Synthesis of Language Constructs. 5/10/04 & 5/13/04 Hardware Description Languages and Synthesis

Synthesis of Language Constructs. 5/10/04 & 5/13/04 Hardware Description Languages and Synthesis Synthesis of Language Constructs 1 Nets Nets declared to be input or output ports are retained Internal nets may be eliminated due to logic optimization User may force a net to exist trireg, tri0, tri1

More information

A Dynamic Evaluation of the Precision of Static Heap Abstractions

A Dynamic Evaluation of the Precision of Static Heap Abstractions A Dynamic Evaluation of the Precision of Static Heap Abstractions OOSPLA - Reno, NV October 20, 2010 Percy Liang Omer Tripp Mayur Naik Mooly Sagiv UC Berkeley Tel-Aviv Univ. Intel Labs Berkeley Tel-Aviv

More information

Multi-trace Concolic Execution Framework

Multi-trace Concolic Execution Framework Multi-trace Concolic Execution Framework Kyel Ok, Joonwon Choi, and Chanwoo Chung {kyelok, joonwonc, cwchung}@mit.edu 1 Introduction Concolic execution is a powerful tool to automatically detect bugs that

More information

Directed Random Testing*

Directed Random Testing* Directed Random Testing* Wolfram Schulte Microsoft Research Soqua 11/2006 Wasformerlyanouncedas: ChalengeProblemsinTesting 1 What my team does Static program verification & language design Verifying multi-threaded

More information

Threads and Too Much Milk! CS439: Principles of Computer Systems February 6, 2019

Threads and Too Much Milk! CS439: Principles of Computer Systems February 6, 2019 Threads and Too Much Milk! CS439: Principles of Computer Systems February 6, 2019 Bringing It Together OS has three hats: What are they? Processes help with one? two? three? of those hats OS protects itself

More information

Introducing Shared-Memory Concurrency

Introducing Shared-Memory Concurrency Race Conditions and Atomic Blocks November 19, 2007 Why use concurrency? Communicating between threads Concurrency in Java/C Concurrency Computation where multiple things happen at the same time is inherently

More information

Heuristics-based Parameter Generation for Java Methods

Heuristics-based Parameter Generation for Java Methods Universität Karlsruhe (TH) Research University founded 1825 Heuristics-based Parameter Generation for Java Methods Michael Kuperberg (mkuper@ipd.uka.de) Fouad Omri (fouad.omri@stud.uni-karlsruhe.de) Chair

More information

Replication of Data. Data-Centric Consistency Models. Reliability vs. Availability

Replication of Data. Data-Centric Consistency Models. Reliability vs. Availability CIS 505: Software Systems Lecture Note on Consistency and Replication Instructor: Insup Lee Department of Computer and Information Science University of Pennsylvania CIS 505, Spring 2007 Replication of

More information

State Machine Diagrams

State Machine Diagrams State Machine Diagrams Introduction A state machine diagram, models the dynamic aspects of the system by showing the flow of control from state to state for a particular class. 2 Introduction Whereas an

More information

Symbolic Execution with Interval Constraint Solving and Meta-Heuristic Search

Symbolic Execution with Interval Constraint Solving and Meta-Heuristic Search Symbolic Execution with Interval Constraint Solving and Meta-Heuristic Search Mateus Borges, Marcelo d'amorim (Fed. U. Pernambuco, Brazil) Saswat Anand (Georgia Inst. of Technology) David Bushnell, Corina

More information

IC-Cut: A Compositional Search Strategy for Dynamic Test Generation

IC-Cut: A Compositional Search Strategy for Dynamic Test Generation IC-Cut: A Compositional Search Strategy for Dynamic Test Generation Maria Christakis 1 and Patrice Godefroid 2 1 Department of Computer Science ETH Zurich, Switzerland maria.christakis@inf.ethz.ch 2 Microsoft

More information

IAENG International Journal of Computer Science, 41:3, IJCS_41_3_06. Automated Test Generation for Object-Oriented Programs with Multiple Targets

IAENG International Journal of Computer Science, 41:3, IJCS_41_3_06. Automated Test Generation for Object-Oriented Programs with Multiple Targets Automated Test Generation for Object-Oriented Programs with Multiple Targets Hiroki Takamatsu, Haruhiko Sato, Satoshi Oyama, Masahito Kurihara Abstract Software testing is costly. In particular, testing

More information

Tackling the Path Explosion Problem in Symbolic Execution-driven Test Generation for Programs

Tackling the Path Explosion Problem in Symbolic Execution-driven Test Generation for Programs 2010 19th IEEE Asian Test Symposium Tackling the Path Explosion Problem in Symbolic Execution-driven Test Generation for Programs Saparya Krishnamoorthy, Michael S. Hsiao and Loganathan Lingappan Department

More information

KLEE: Effective Testing of Systems Programs Cristian Cadar

KLEE: Effective Testing of Systems Programs Cristian Cadar KLEE: Effective Testing of Systems Programs Cristian Cadar Joint work with Daniel Dunbar and Dawson Engler April 16th, 2009 Writing Systems Code Is Hard Code complexity Tricky control flow Complex dependencies

More information

Henry Lin, Department of Electrical and Computer Engineering, California State University, Bakersfield Lecture 7 (Digital Logic) July 24 th, 2012

Henry Lin, Department of Electrical and Computer Engineering, California State University, Bakersfield Lecture 7 (Digital Logic) July 24 th, 2012 Henry Lin, Department of Electrical and Computer Engineering, California State University, Bakersfield Lecture 7 (Digital Logic) July 24 th, 2012 1 Digital vs Analog Digital signals are binary; analog

More information

Fault Simulation. Problem and Motivation

Fault Simulation. Problem and Motivation Fault Simulation Problem and Motivation Fault Simulation Problem: Given A circuit A sequence of test vectors A fault model Determine Fault coverage Fraction (or percentage) of modeled faults detected by

More information

ROSE-CIRM Detecting C-Style Errors in UPC Code

ROSE-CIRM Detecting C-Style Errors in UPC Code ROSE-CIRM Detecting C-Style Errors in UPC Code Peter Pirkelbauer 1 Chunhuah Liao 1 Thomas Panas 2 Daniel Quinlan 1 1 2 Microsoft Parallel Data Warehouse This work was funded by the Department of Defense

More information

A Uniform Classification of Common Concurrency Errors

A Uniform Classification of Common Concurrency Errors A Uniform Classification of Common Concurrency Errors FIT BUT Technical Report Series Jan Fiedor, Bohuslav Křena, Zdeněk Letko, and Tomáš Vojnar Technical Report No. FIT-TR-2010-03 Faculty of Information

More information

Constraint Solving Challenges in Dynamic Symbolic Execution. Cristian Cadar. Department of Computing Imperial College London

Constraint Solving Challenges in Dynamic Symbolic Execution. Cristian Cadar. Department of Computing Imperial College London Constraint Solving Challenges in Dynamic Symbolic Execution Cristian Cadar Department of Computing Imperial College London Joint work with Dawson Engler, Daniel Dunbar Peter Collingbourne, Paul Kelly,

More information

Test Case Generation by Symbolic Execution. Concepts, a CLP-based Instance, and Actor-based Concurrency

Test Case Generation by Symbolic Execution. Concepts, a CLP-based Instance, and Actor-based Concurrency Test Case Generation by Symbolic Execution: Basic Concepts, a CLP-based Instance, and Actor-based Concurrency Elvira Albert Complutense University of Madrid elvira@sip.ucm.es SFM-14:ESM Bertinoro, 16-20

More information

Emblematic Execution for Software Testing based on DART AND CUTE

Emblematic Execution for Software Testing based on DART AND CUTE Emblematic Execution for Software Testing based on DART AND CUTE K. K. V. D. Hari Prasad 1, Ch. V. Phani Krishna and V. Samson Deva Kumar 3 1 Student, IV/IV B.Tech, Department of Computer Science Engineering,

More information

CS153: Midterm (Winter 19)

CS153: Midterm (Winter 19) CS153: Midterm (Winter 19) Name: Student ID: Answer all questions. State any assumptions clearly. Problem 1: (24 points; 5 minutes) Indicate whether each of the following statements is true or false: (T)

More information

Targeted Test Input Generation Using Symbolic Concrete Backward Execution

Targeted Test Input Generation Using Symbolic Concrete Backward Execution Targeted Test Input Generation Using Symbolic Concrete Backward Execution [Extended Abstract] ABSTRACT Peter Dinges University of Illinois Urbana Champaign, USA pdinges@acm.org Knowing inputs that cover

More information

Review of last lecture. Peer Quiz. DPHPC Overview. Goals of this lecture. Lock-based queue

Review of last lecture. Peer Quiz. DPHPC Overview. Goals of this lecture. Lock-based queue Review of last lecture Design of Parallel and High-Performance Computing Fall 2016 Lecture: Linearizability Motivational video: https://www.youtube.com/watch?v=qx2driqxnbs Instructor: Torsten Hoefler &

More information