Korat: automated testing based on Java predicates
|
|
- Jocelin Walton
- 7 years ago
- Views:
Transcription
1 Korat: automated testing based on Java predicates Chandrasekhar Boyapati Sarfraz Khurshid Darko Marinov 2002 MIT Laboratory for Computer Science presented by Nicola Vermes
2 Outline Motivation Korat Finitization State space Search Example How it works Test Efficiency Results Alloy Analyzer The tool Demo Conclusion 2
3 Motivation Testing can be tedious Test data generation (objects under test) Test cases (method's input) Test oracles (check correctness) Tools can help JUnit: automate test execution JML: exploitable to create test oracle Korat: combine Junit+JML and generate test cases+inputs 3
4 Motivation: example Linked list of 1..N elements Method to test: remove an element N possible lists: for each list, list.size possible inputs for the remove method (N 2 +N)/2 possible pairs (list, node_to_remove) and this is just a simple linked list 4
5 Korat: overview Korat can automatically create: objects from class invariants Inputs, for method to test, from its pre-conditions test oracles from method's post-conditions Key idea: efficiently search objects/inputs from the set of all possible cases User must just specify how large can be this set 5
6 Finitization: the idea Bounds of the cases/input size Defining # objects to create (for each class) Define the range for primitive types Example: linked list (nodes, size) the user specify how many nodes to create and the range for the size field (int) Korat then generates all possible (and valid) lists of sizes within the range using the created objects 6
7 Finitization: some concepts Class domain: set of objects of one class A field can point to a set of classes Field domain: set of values a field can take Field domain: an union of some class domains 7
8 State space: the idea Fields of each object have an ID Candidate vector: at position ID value of field Each field can have a (finite) set of values State space: combination of all possible values With class invariant [bool repok()]: check if a candidate vector is a valid structure 8
9 State space: the problem Even with the Finitization, it can be very large Korat must use an efficient algorithm to search all valid structures Linked list of size two, with nodes A/B Fields: List { Node root; int size; } Node { Node next; } State space size: 18 (2 ptrs that can point to A/B/null; root can point A or B: 3*3*2=18) Valid lists: 2 (r A B null and r B A null) 9
10 Search Backtracking algorithm prunes portions of the state space with invalid struct Korat does not generate isomorphous struct In class domain, objects are ordered Also in field domain (consistent) Candidate vector stores the index (of the field domain order) of the values taken by fields 10
11 Linked list: example Object List A B Invalid candidate CV = [0,0,1,0] {A,2,A,null} Valid candidate CV = [0,0,2,0] {A,2,B,null} index in candidate vector Field root size next next Field domain {A,B} {2} {null,a,b} Field domain index [0,1] [0] [0,1,2] Class invariant determines if valid or not Good practice: data structures provided with predicates bool repok() (check inv.) 11
12 Backtracking Init CV with 0s Keeps trace of accessed fields during repok() (first access ordered) If false: Next CV: incr. index of last accessed field If exceeds domain size, set to 0 and incr. index of the previous accessed field This avoids to explore many structures in state space If true: skip all the isomorphic structures 12
13 Linked list: backtracking Object List A B CV = [0,0,1,0] field accessed= [root,size,a.next] index in candidate vector Field root size next next Field domain {A,B} {2} {null,a,b} Field domain index [0,1] [0] [0,1,2] CV = [0,0,1,*] always invalid [0,0,1,1] and [0,0,1,2] pruned CV = [0,0,2,0] field accessed= [root,size,a.next, B.next] Incr. last accessed (A.next): [0,0,1+1,0] 13
14 Nonisomorphism Further optimization Candidates isomorphic if graphs of reachable objects are isomorphic When a valid structure is found all the isomorphic structures are skipped 14
15 Instrumentation Monitor repok's executions To know field accesses ordering Source-to-Source translation Add special setter/getter for each field Replace field access with set/get Approach similar to the observer pattern Javassist 15
16 Testing methods Input generated from pre-conditions Check correctness from post-conditions Annotations in JML Generates all pairs (structure, input) that satisfy class invariant and method preconditions Check correctness: class invariant and method post-conditions must hold If not: method incorrect, Korat provides a counter-example 16
17 Efficiency The backtracking algorithm performance is strictly related to the repok() implementation The repok() should return false as soon as possible In this way large portions of the state space are pruned If repok() always accesses to all fields (also for invalid structures) nothing will be pruned 17
18 Experimental results All finitization parameters set to size State space rounded to nearest smaller exp. of two # fields =1+8*2 (root + 8 nodes with left/right) = 17 # elements = 1+8 (null + nodes) = < 9 17 < 2 54 # of nonisomorphic BinaryTree is known: Korat generates exactly the same # of structures The pruning is effective: candidates vs. state space 18
19 Alloy Analyzer Tool for analyzing Alloy models Alloy: first-order logic, declarative language based on relations Relations, sets, quantifier, to model a structure and its constraint Translate the model into a boolean formula SAT-solver, back to to an instance of the model 19
20 Korat vs. Alloy Analyzer Korat more efficient Korat learns from repok() Alloy generates some isomorphic structures 20
21 The tool Generates only structures/inputs for method It does NOT: Generate automatically finitization skeleton use JML It does NOT run the method under test thus it is not so concretely usable Demo 21
22 Korat: conclusion The basic idea is good Efficient, but still not applicable to large structures What about the correctness of repok() method? The tool should definitely be improved to be more usable 22
23 Questions / Discussion 23
Optimizing Generation of Object Graphs in Java PathFinder
Optimizing Generation of Object Graphs in Java PathFinder Milos Gligoric, Tihomir Gvero, Steven Lauterburg, Darko Marinov, Sarfraz Khurshid JPF Workshop 1.5.8 Bugs Six Decades Ago 1947: Harvard Mark II
More informationSoftware Testing Modeling Tools
The Certification of Software Tools with respect to Software Standards Panuchart Bunyakiati, Anthony Finkelstein and David Rosenblum Dept. of Computer Science, University College London London W1CE 6BT
More informationTowards a Framework for Differential Unit Testing of Object-Oriented Programs
Towards a Framework for Differential Unit Testing of Object-Oriented Programs Tao Xie 1 Kunal Taneja 1 Shreyas Kale 1 Darko Marinov 2 1 Department of Computer Science, North Carolina State University,
More informationOptimizing Generation of Object Graphs in Java PathFinder
Optimizing Generation of Object Graphs in Java PathFinder Milos Gligoric Tihomir Gvero University of Belgrade Belgrade, Serbia {milos.gligoric,tihomir.gvero@gmail.com Steven Lauterburg Darko Marinov University
More informationA Static Analyzer for Large Safety-Critical Software. Considered Programs and Semantics. Automatic Program Verification by Abstract Interpretation
PLDI 03 A Static Analyzer for Large Safety-Critical Software B. Blanchet, P. Cousot, R. Cousot, J. Feret L. Mauborgne, A. Miné, D. Monniaux,. Rival CNRS École normale supérieure École polytechnique Paris
More informationIntroduction to Computers and Programming. Testing
Introduction to Computers and Programming Prof. I. K. Lundqvist Lecture 13 April 16 2004 Testing Goals of Testing Classification Test Coverage Test Technique Blackbox vs Whitebox Real bugs and software
More informationTowards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder
Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder Matt Department of Computer Science and Engineering University of Minnesota staats@cs.umn.edu Abstract We present
More informationHow To Write A Test Engine For A Microsoft Microsoft Web Browser (Php) For A Web Browser For A Non-Procedural Reason)
Praspel: A Specification Language for Contract-Driven Testing in PHP Ivan Enderlin Frédéric Dadeau Alain Giorgetti Abdallah Ben Othman October 27th, 2011 Meetings: LTP MTVV Ivan Enderlin, Frédéric Dadeau,
More informationRigorous Software Development CSCI-GA 3033-009
Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 11 Semantics of Programming Languages Denotational Semantics Meaning of a program is defined as the mathematical
More informationLecture Notes on Linear Search
Lecture Notes on Linear Search 15-122: Principles of Imperative Computation Frank Pfenning Lecture 5 January 29, 2013 1 Introduction One of the fundamental and recurring problems in computer science is
More informationModel Driven Security: Foundations, Tools, and Practice
Model Driven Security: Foundations, Tools, and Practice David Basin, Manuel Clavel, and ETH Zurich, IMDEA Software Institute Thursday 1st, 2011 Outline I 1 Models Analysis. Types. 2 The Object Constraint
More informationAn Approach for Generating Concrete Test Cases Utilizing Formal Specifications of Web Applications
An Approach for Generating Concrete Test Cases Utilizing Formal Specifications of Web Applications Khusbu Bubna RC Junit concrete test cases suitable for execution on the implementation. The remainder
More informationAN AI PLANNING APPROACH FOR GENERATING BIG DATA WORKFLOWS
AN AI PLANNING APPROACH FOR GENERATING BIG DATA WORKFLOWS Wesley Deneke 1, Wing-Ning Li 2, and Craig Thompson 2 1 Computer Science and Industrial Technology Department, Southeastern Louisiana University,
More informationData Structure Repair Using Goal-Directed Reasoning. Brian C. Demsky
Data Structure Repair Using Goal-Directed Reasoning by Brian C. Demsky Submitted to the Electrical Engineering and Computer Science Department in partial fulfillment of the requirements for the degree
More informationHECTOR a software model checker with cooperating analysis plugins. Nathaniel Charlton and Michael Huth Imperial College London
HECTOR a software model checker with cooperating analysis plugins Nathaniel Charlton and Michael Huth Imperial College London Introduction HECTOR targets imperative heap-manipulating programs uses abstraction
More informationTickling Java with a Feather
LDTA 2008 Tickling Java with a Feather Tristan O.R. Allwood 1 Susan Eisenbach 2 Department of Computing Imperial College London United Kingdom Abstract Fragments of mainstream programming languages are
More informationTesting LTL Formula Translation into Büchi Automata
Testing LTL Formula Translation into Büchi Automata Heikki Tauriainen and Keijo Heljanko Helsinki University of Technology, Laboratory for Theoretical Computer Science, P. O. Box 5400, FIN-02015 HUT, Finland
More informationRelational Databases
Relational Databases Jan Chomicki University at Buffalo Jan Chomicki () Relational databases 1 / 18 Relational data model Domain domain: predefined set of atomic values: integers, strings,... every attribute
More informationEfficient Data Structures for Decision Diagrams
Artificial Intelligence Laboratory Efficient Data Structures for Decision Diagrams Master Thesis Nacereddine Ouaret Professor: Supervisors: Boi Faltings Thomas Léauté Radoslaw Szymanek Contents Introduction...
More informationIntroduction to Programming (in C++) Loops. Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC
Introduction to Programming (in C++) Loops Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC Example Assume the following specification: Input: read a number N > 0 Output:
More informationExample. Introduction to Programming (in C++) Loops. The while statement. Write the numbers 1 N. Assume the following specification:
Example Introduction to Programming (in C++) Loops Assume the following specification: Input: read a number N > 0 Output: write the sequence 1 2 3 N (one number per line) Jordi Cortadella, Ricard Gavaldà,
More informationRigorous Software Engineering Hoare Logic and Design by Contracts
Rigorous Software Engineering Hoare Logic and Design by Contracts Simão Melo de Sousa RELEASE (UBI), LIACC (Porto) Computer Science Department University of Beira Interior, Portugal 2010-2011 S. Melo de
More informationRule-based Test Generation with Mind Maps
Rule-based Test Generation with Mind Maps Dimitry Polivaev Giesecke & Devrient GmbH Munich, Germany dimitry.polivaev@gi-de.com This paper introduces basic concepts of rule based test generation with mind
More informationCase studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design
I. Automated Banking System Case studies: Outline Requirements Engineering: OO and incremental software development 1. case study: withdraw money a. use cases b. identifying class/object (class diagram)
More informationStaRVOOrS: A Tool for Combined Static and Runtime Verification of Java
StaRVOOrS: A Tool for Combined Static and Runtime Verification of Java Jesús Mauricio Chimento 1, Wolfgang Ahrendt 1, Gordon J. Pace 2, and Gerardo Schneider 3 1 Chalmers University of Technology, Sweden.
More informationIterators. Provides a way to access elements of an aggregate object sequentially without exposing its underlying representation.
Iterators Provides a way to access elements of an aggregate object sequentially without exposing its underlying representation when to use it - to access an aggregate object's contents without exposing
More informationData Model Bugs. Ivan Bocić and Tevfik Bultan
Data Model Bugs Ivan Bocić and Tevfik Bultan Department of Computer Science University of California, Santa Barbara, USA bo@cs.ucsb.edu bultan@cs.ucsb.edu Abstract. In today s internet-centric world, web
More informationWeb Caching With Dynamic Content Abstract When caching is a good idea
Web Caching With Dynamic Content (only first 5 pages included for abstract submission) George Copeland - copeland@austin.ibm.com - (512) 838-0267 Matt McClain - mmcclain@austin.ibm.com - (512) 838-3675
More informationThe Entity-Relationship Model
The Entity-Relationship Model 221 After completing this chapter, you should be able to explain the three phases of database design, Why are multiple phases useful? evaluate the significance of the Entity-Relationship
More informationRegression Verification: Status Report
Regression Verification: Status Report Presentation by Dennis Felsing within the Projektgruppe Formale Methoden der Softwareentwicklung 2013-12-11 1/22 Introduction How to prevent regressions in software
More informationProgramming by Contract. Programming by Contract: Motivation. Programming by Contract: Preconditions and Postconditions
COMP209 Object Oriented Programming Designing Classes 2 Mark Hall Programming by Contract (adapted from slides by Mark Utting) Preconditions Postconditions Class invariants Programming by Contract An agreement
More informationMotion. Complete Table 1. Record all data to three decimal places (e.g., 4.000 or 6.325 or 0.000). Do not include units in your answer.
Labs for College Physics: Mechanics Worksheet Experiment 2-1 Motion As you work through the steps in the lab procedure, record your experimental values and the results on this worksheet. Use the exact
More informationCS423 Spring 2015 MP4: Dynamic Load Balancer Due April 27 th at 9:00 am 2015
CS423 Spring 2015 MP4: Dynamic Load Balancer Due April 27 th at 9:00 am 2015 1. Goals and Overview 1. In this MP you will design a Dynamic Load Balancer architecture for a Distributed System 2. You will
More information5.1 Radical Notation and Rational Exponents
Section 5.1 Radical Notation and Rational Exponents 1 5.1 Radical Notation and Rational Exponents We now review how exponents can be used to describe not only powers (such as 5 2 and 2 3 ), but also roots
More informationStructure Definitions. Inconsistent Data Structure. Repaired Data Structure. attributelist
Static Specification Analysis for Termination of Specification-Based Data Structure Repair Brian Demsky Laboratory for Computer Science Massachusetts Institute of Technology Martin Rinard Laboratory for
More informationEFFICIENT KNOWLEDGE BASE MANAGEMENT IN DCSP
EFFICIENT KNOWLEDGE BASE MANAGEMENT IN DCSP Hong Jiang Mathematics & Computer Science Department, Benedict College, USA jiangh@benedict.edu ABSTRACT DCSP (Distributed Constraint Satisfaction Problem) has
More informationInvGen: An Efficient Invariant Generator
InvGen: An Efficient Invariant Generator Ashutosh Gupta and Andrey Rybalchenko Max Planck Institute for Software Systems (MPI-SWS) Abstract. In this paper we present InvGen, an automatic linear arithmetic
More informationRequirements by Contracts allow Automated System Testing
Requirements by Contracts allow Automated System Testing Clémentine Nebut, Franck Fleurey, Yves Le Traon and Jean-Marc Jézéquel IRISA-Université de Rennes 1, Campus Universitaire de Beaulieu, 35042 Rennes
More informationThomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm
More informationLecture Notes on Binary Search Trees
Lecture Notes on Binary Search Trees 15-122: Principles of Imperative Computation Frank Pfenning Lecture 17 March 17, 2010 1 Introduction In the previous two lectures we have seen how to exploit the structure
More informationSoftware Development Phases
Software Development Phases Specification of the task Design of a solution Implementation of solution Analysis of solution Testing and debugging Maintenance and evolution of the system Obsolescence Specification
More informationSoftware Engineering Techniques
Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary
More informationSoftware Verification: Infinite-State Model Checking and Static Program
Software Verification: Infinite-State Model Checking and Static Program Analysis Dagstuhl Seminar 06081 February 19 24, 2006 Parosh Abdulla 1, Ahmed Bouajjani 2, and Markus Müller-Olm 3 1 Uppsala Universitet,
More informationStandard for Software Component Testing
Standard for Software Component Testing Working Draft 3.4 Date: 27 April 2001 produced by the British Computer Society Specialist Interest Group in Software Testing (BCS SIGIST) Copyright Notice This document
More informationTool-Assisted Unit-Test Generation and Selection Based on Operational Abstractions
Tool-Assisted Unit-Test Generation and Selection Based on Operational Abstractions Tao Xie 1 and David Notkin 2 (xie@csc.ncsu.edu,notkin@cs.washington.edu) 1 Department of Computer Science, North Carolina
More informationStatic Program Transformations for Efficient Software Model Checking
Static Program Transformations for Efficient Software Model Checking Shobha Vasudevan Jacob Abraham The University of Texas at Austin Dependable Systems Large and complex systems Software faults are major
More informationSoftware testing. Objectives
Software testing cmsc435-1 Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating
More informationOpen Problems in Quantum Information Processing. John Watrous Department of Computer Science University of Calgary
Open Problems in Quantum Information Processing John Watrous Department of Computer Science University of Calgary #1 Open Problem Find new quantum algorithms. Existing algorithms: Shor s Algorithm (+ extensions)
More informationIntroduction to Static Analysis for Assurance
Introduction to Static Analysis for Assurance John Rushby Computer Science Laboratory SRI International Menlo Park CA USA John Rushby Static Analysis for Assurance: 1 Overview What is static analysis?
More informationWhat is a Loop? Pretest Loops in C++ Types of Loop Testing. Count-controlled loops. Loops can be...
What is a Loop? CSC Intermediate Programming Looping A loop is a repetition control structure It causes a single statement or a group of statements to be executed repeatedly It uses a condition to control
More informationFormal Verification by Model Checking
Formal Verification by Model Checking Natasha Sharygina Carnegie Mellon University Guest Lectures at the Analysis of Software Artifacts Class, Spring 2005 1 Outline Lecture 1: Overview of Model Checking
More informationIntroduction to Software Testing Chapter 8.1 Building Testing Tools Instrumentation. Chapter 8 Outline
Introduction to Software Testing Chapter 8. Building Testing Tools Instrumentation Paul Ammann & Jeff Offutt www.introsoftwaretesting.com Chapter 8 Outline. Instrumentation for Graph and Logical Expression
More informationVeriTech - A Framework for Translating among Model Description Notations
Software Tools for Technology Transfer manuscript No. (will be inserted by the editor) VeriTech - A Framework for Translating among Model Description Notations Orna Grumberg and Shmuel Katz Computer Science
More informationComputer-Assisted Theorem Proving for Assuring the Correct Operation of Software
1 Computer-Assisted Theorem Proving for Assuring the Correct Operation of Software Amy Felty University of Ottawa Introduction to CSI5110 2 The General Problem From Evan I. Schwartz, Trust Me, I m Your
More informationUsing the Theory of Reals in. Analyzing Continuous and Hybrid Systems
Using the Theory of Reals in Analyzing Continuous and Hybrid Systems Ashish Tiwari Computer Science Laboratory (CSL) SRI International (SRI) Menlo Park, CA 94025 Email: ashish.tiwari@sri.com Ashish Tiwari
More informationKnow or Go Practical Quest for Reliable Software
Know or Go Practical Quest for Reliable Software Dr.-Ing. Jörg Barrho Dr.-Ing. Ulrich Wünsche AVACS Project meeting 25.09.2014 2014 Rolls-Royce Power Systems AG The information in this document is the
More informationOptimal Binary Search Trees Meet Object Oriented Programming
Optimal Binary Search Trees Meet Object Oriented Programming Stuart Hansen and Lester I. McCann Computer Science Department University of Wisconsin Parkside Kenosha, WI 53141 {hansen,mccann}@cs.uwp.edu
More informationSoftware Engineering
Software Engineering Lecture 04: The B Specification Method Peter Thiemann University of Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Software Engineering SWT 1 / 50 The B specification method
More information6.080/6.089 GITCS Feb 12, 2008. Lecture 3
6.8/6.89 GITCS Feb 2, 28 Lecturer: Scott Aaronson Lecture 3 Scribe: Adam Rogal Administrivia. Scribe notes The purpose of scribe notes is to transcribe our lectures. Although I have formal notes of my
More informationStacks. Linear data structures
Stacks Linear data structures Collection of components that can be arranged as a straight line Data structure grows or shrinks as we add or remove objects ADTs provide an abstract layer for various operations
More informationData Types. Abstract Data Types. ADTs as Design Tool. Abstract Data Types. Integer ADT. Principle of Abstraction
bstract ata Types Previous lectures: algorithms and their efficiency analysis. oming lectures: data structures In this lecture: bstract data types Ts as a design tool Examples: integer T, List T ata Types
More informationRuntime Checking for Program Verification
Runtime Checking for Program Verification Karen Zee 1, Viktor Kuncak 2, Michael Taylor 3, and Martin Rinard 1 1 MIT Computer Science and Artificial Intelligence Laboratory; Cambridge, USA 2 École Polytechnique
More informationLaboratory Module 8 Mining Frequent Itemsets Apriori Algorithm
Laboratory Module 8 Mining Frequent Itemsets Apriori Algorithm Purpose: key concepts in mining frequent itemsets understand the Apriori algorithm run Apriori in Weka GUI and in programatic way 1 Theoretical
More informationTesting Software Product Lines Using Incremental Test Generation
Testing Software Product Lines Using Incremental Test Generation Engin Uzuncaova Daniel Garcia Sarfraz Khurshid Don Batory Dept. of Electrical and Computer Engineering Dept. of Computer Sciences The University
More informationRigorous Software Development CSCI-GA 3033-009
Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 5 Disclaimer. These notes are derived from notes originally developed by Joseph Kiniry, Gary Leavens, Erik Poll,
More informationGOAL-BASED INTELLIGENT AGENTS
International Journal of Information Technology, Vol. 9 No. 1 GOAL-BASED INTELLIGENT AGENTS Zhiqi Shen, Robert Gay and Xuehong Tao ICIS, School of EEE, Nanyang Technological University, Singapore 639798
More informationFinal Exam. Route Computation: One reason why link state routing is preferable to distance vector style routing.
UCSD CSE CS 123 Final Exam Computer Networks Directions: Write your name on the exam. Write something for every question. You will get some points if you attempt a solution but nothing for a blank sheet
More informationALGEBRA 2/TRIGONOMETRY
ALGEBRA /TRIGONOMETRY The University of the State of New York REGENTS HIGH SCHOOL EXAMINATION ALGEBRA /TRIGONOMETRY Thursday, January 9, 015 9:15 a.m to 1:15 p.m., only Student Name: School Name: The possession
More informationMath. Rounding Decimals. Answers. 1) Round to the nearest tenth. 8.54 8.5. 2) Round to the nearest whole number. 99.59 100
1) Round to the nearest tenth. 8.54 8.5 2) Round to the nearest whole number. 99.59 100 3) Round to the nearest tenth. 310.286 310.3 4) Round to the nearest whole number. 6.4 6 5) Round to the nearest
More informationChapter 9. Systems of Linear Equations
Chapter 9. Systems of Linear Equations 9.1. Solve Systems of Linear Equations by Graphing KYOTE Standards: CR 21; CA 13 In this section we discuss how to solve systems of two linear equations in two variables
More informationLecture Notes on Binary Search Trees
Lecture Notes on Binary Search Trees 15-122: Principles of Imperative Computation Frank Pfenning André Platzer Lecture 17 October 23, 2014 1 Introduction In this lecture, we will continue considering associative
More informationA Short Summary on What You Can Do to Improve Your Home Business
Matching Policies with Security Claims of Mobile Applications Nataliia Bielova Marco Dalla Torre Nicola Dragoni Ida Siahaan University of Trento surname@ditunitnit Abstract The Security-by-Contract (S
More informationSpecification and Analysis of Contracts Lecture 1 Introduction
Specification and Analysis of Contracts Lecture 1 Introduction Gerardo Schneider gerardo@ifi.uio.no http://folk.uio.no/gerardo/ Department of Informatics, University of Oslo SEFM School, Oct. 27 - Nov.
More informationA case study of C source code verification: the Schorr-Waite algorithm
A case study of C source code verification: the Schorr-Waite algorithm Thierry Hubert Claude Marché PCRI LRI (CNRS UMR 8623) INRIA Futurs Université Paris 11 Bât 490, Université Paris-sud, 91405 Orsay
More informationExamples on Monopoly and Third Degree Price Discrimination
1 Examples on Monopoly and Third Degree Price Discrimination This hand out contains two different parts. In the first, there are examples concerning the profit maximizing strategy for a firm with market
More informationIntroduction to Automated Testing
Introduction to Automated Testing What is Software testing? Examination of a software unit, several integrated software units or an entire software package by running it. execution based on test cases
More informationRecursion vs. Iteration Eliminating Recursion
Recursion vs. Iteration Eliminating Recursion continued CS 311 Data Structures and Algorithms Lecture Slides Monday, February 16, 2009 Glenn G. Chappell Department of Computer Science University of Alaska
More informationAn Open Framework for Reverse Engineering Graph Data Visualization. Alexandru C. Telea Eindhoven University of Technology The Netherlands.
An Open Framework for Reverse Engineering Graph Data Visualization Alexandru C. Telea Eindhoven University of Technology The Netherlands Overview Reverse engineering (RE) overview Limitations of current
More informationSoftware Testing. Quality & Testing. Software Testing
Software Testing Software Testing Error: mistake made by the programmer/developer Fault: a incorrect piece of code/document (i.e., bug) Failure: result of a fault Goal of software testing: Cause failures
More informationAnswer Key for California State Standards: Algebra I
Algebra I: Symbolic reasoning and calculations with symbols are central in algebra. Through the study of algebra, a student develops an understanding of the symbolic language of mathematics and the sciences.
More informationTesting Software Product Lines Using Incremental Test Generation
19th International Symposium on Software Reliability Engineering Testing Software Product Lines Using Incremental Test Generation Engin Uzuncaova Daniel Garcia Sarfraz Khurshid Don Batory Dept. of Electrical
More informationSoftware Modeling and Verification
Software Modeling and Verification Alessandro Aldini DiSBeF - Sezione STI University of Urbino Carlo Bo Italy 3-4 February 2015 Algorithmic verification Correctness problem Is the software/hardware system
More informationTennessee Department of Education
Tennessee Department of Education Task: Pool Patio Problem Algebra I A hotel is remodeling their grounds and plans to improve the area around a 20 foot by 40 foot rectangular pool. The owner wants to use
More informationLecture 11 Doubly Linked Lists & Array of Linked Lists. Doubly Linked Lists
Lecture 11 Doubly Linked Lists & Array of Linked Lists In this lecture Doubly linked lists Array of Linked Lists Creating an Array of Linked Lists Representing a Sparse Matrix Defining a Node for a Sparse
More informationProceedings of the International MultiConference of Engineers and Computer Scientists 2013 Vol I, IMECS 2013, March 13-15, 2013, Hong Kong
, March 13-15, 2013, Hong Kong Risk Assessment for Relational Database Schema-based Constraint Using Machine Diagram Kanjana Eiamsaard 1, Nakornthip Prompoon 2 Abstract Information is a critical asset
More informationRandom vs. Structure-Based Testing of Answer-Set Programs: An Experimental Comparison
Random vs. Structure-Based Testing of Answer-Set Programs: An Experimental Comparison Tomi Janhunen 1, Ilkka Niemelä 1, Johannes Oetsch 2, Jörg Pührer 2, and Hans Tompits 2 1 Aalto University, Department
More informationLecture 12: Abstract data types
Lecture 12: Abstract data types Algebras Abstract data types Encapsulation and information hiding Parameterization Algebras Definition Which kinds of data do we want to discuss? What can we do with it?
More informationWESTMORELAND COUNTY PUBLIC SCHOOLS 2011 2012 Integrated Instructional Pacing Guide and Checklist Computer Math
Textbook Correlation WESTMORELAND COUNTY PUBLIC SCHOOLS 2011 2012 Integrated Instructional Pacing Guide and Checklist Computer Math Following Directions Unit FIRST QUARTER AND SECOND QUARTER Logic Unit
More informationData Structures Fibonacci Heaps, Amortized Analysis
Chapter 4 Data Structures Fibonacci Heaps, Amortized Analysis Algorithm Theory WS 2012/13 Fabian Kuhn Fibonacci Heaps Lacy merge variant of binomial heaps: Do not merge trees as long as possible Structure:
More informationNOTES ON LINEAR TRANSFORMATIONS
NOTES ON LINEAR TRANSFORMATIONS Definition 1. Let V and W be vector spaces. A function T : V W is a linear transformation from V to W if the following two properties hold. i T v + v = T v + T v for all
More informationIntroduction to SPIN. Acknowledgments. Parts of the slides are based on an earlier lecture by Radu Iosif, Verimag. Ralf Huuck. Features PROMELA/SPIN
Acknowledgments Introduction to SPIN Parts of the slides are based on an earlier lecture by Radu Iosif, Verimag. Ralf Huuck Ralf Huuck COMP 4152 1 Ralf Huuck COMP 4152 2 PROMELA/SPIN PROMELA (PROcess MEta
More information1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++
Answer the following 1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ 2) Which data structure is needed to convert infix notations to postfix notations? Stack 3) The
More informationStatistical Machine Translation: IBM Models 1 and 2
Statistical Machine Translation: IBM Models 1 and 2 Michael Collins 1 Introduction The next few lectures of the course will be focused on machine translation, and in particular on statistical machine translation
More informationSoftware Testing & Verification 2013/2014 Universiteit Utrecht
Software Testing & Verification 2013/2014 Universiteit Utrecht 2nd Jul. 2014, 13:30-16:30, BBL 001 Lecturer: Wishnu Prasetya You are allowed to bring along the Appendix of the LN. Part I [3pt (6 0.5)]
More informationAbstraction-guided Runtime Checking of Assertions on Lists
Abstraction-guided Runtime Checking of Assertions on Lists Alex Gyori, Pranav Garg, Edgar Pek, P. Madhusudan University of Illinois at Urbana-Champaign, Urbana, IL, USA {gyori, garg11, pek1, madhu}@illinois.edu
More informationUnified Static and Runtime Verification of Object-Oriented Software
Unified Static and Runtime Verification of Object-Oriented Software Wolfgang Ahrendt 1, Mauricio Chimento 1, Gerardo Schneider 2, Gordon J. Pace 3 1 Chalmers University of Technology, Gothenburg, Sweden
More informationMethod To Solve Linear, Polynomial, or Absolute Value Inequalities:
Solving Inequalities An inequality is the result of replacing the = sign in an equation with ,, or. For example, 3x 2 < 7 is a linear inequality. We call it linear because if the < were replaced with
More informationAddress Taken FIAlias, which is equivalent to Steensgaard. CS553 Lecture Alias Analysis II 2
Alias Analysis Last time Alias analysis I (pointer analysis) Address Taken FIAlias, which is equivalent to Steensgaard Today Alias analysis II (pointer analysis) Anderson Emami Next time Midterm review
More informationEffectively Using JML
Effectively Using JML Software Engineering Processes incorporating Formal Specification Joseph Kiniry University College Dublin Software Engineering Processes old-school processes CRC and state-chart based
More informationMidterm Practice Problems
6.042/8.062J Mathematics for Computer Science October 2, 200 Tom Leighton, Marten van Dijk, and Brooke Cowan Midterm Practice Problems Problem. [0 points] In problem set you showed that the nand operator
More information