Tao Xie ( ) Advisor: David Notkin Department of Computer Science & Engineering, University of Washington, Seattle Syntactically.

Slides:



Advertisements
Similar presentations
Department of Computer Sciences Dynamic Shape Analysis via Degree Metrics Maria Jump & Kathryn S. McKinley Department of Computer Sciences The University.
Advertisements

Object-Oriented programming in C++ Classes as units of encapsulation Information Hiding Inheritance polymorphism and dynamic dispatching Storage management.
Verification of Evolving Software Natasha Sharygina Joint work with Sagar Chaki and Nishant Sinha Carnegie Mellon University.
50.530: Software Engineering Sun Jun SUTD. Week 10: Invariant Generation.
Parallel Symbolic Execution for Structural Test Generation Matt Staats Corina Pasareanu ISSTA 2010.
Data Abstraction II SWE 619 Software Construction Last Modified, Spring 2009 Paul Ammann.
Computer Science Automated Test Data Generation for Aspect-Oriented Programs Mark Harman (King’s College London, UK) Fayezin Islam (T-Zero Processing Services,
1 of 24 Automatic Extraction of Object-Oriented Observer Abstractions from Unit-Test Executions Dept. of Computer Science & Engineering University of Washington,
Kai Pan, Xintao Wu University of North Carolina at Charlotte Generating Program Inputs for Database Application Testing Tao Xie North Carolina State University.
Automated Soundness Proofs for Dataflow Analyses and Transformations via Local Rules Sorin Lerner* Todd Millstein** Erika Rice* Craig Chambers* * University.
Prediction of fault-proneness at early phase in object-oriented development Toshihiro Kamiya †, Shinji Kusumoto † and Katsuro Inoue †‡ † Osaka University.
Markov Logic: A Unifying Framework for Statistical Relational Learning Pedro Domingos Matthew Richardson
Funding Networks Abdullah Sevincer University of Nevada, Reno Department of Computer Science & Engineering.
Dynamically Discovering Likely Program Invariants to Support Program Evolution Michael D. Ernst, Jake Cockrell, William G. Griswold, David Notkin Presented.
Lecture #4 Agenda Cell phones off & name signs out Review Questions? Objects The birds-and-the-bees talk.
CoLaB 22nd December 2005 Secure Access to Service-based Collaborative Workflow for DAME Duncan Russell Informatics Institute University of Leeds, UK.
Encapsulation by Subprograms and Type Definitions
Dynamically Discovering Likely Program Invariants to Support Program Evolution Michael Ernst, Jake Cockrell, William Griswold, David Notkin Presented by.
Fall 2005CSE 115/503 Introduction to Computer Science I1 Lecture #4 Agenda Announcements Review Questions? Classes and objects UML class diagrams Creating.
Automatically Extracting and Verifying Design Patterns in Java Code James Norris Ruchika Agrawal Computer Science Department Stanford University {jcn,
Dynamically Discovering Likely Program Invariants to Support Program Evolution Michael D. Ernst, Jake Cockrell, William G. Griswold, David Notkin Presented.
Chair of Software Engineering Automatic Verification of Computer Programs.
Describing Syntax and Semantics
Propositional Calculus Math Foundations of Computer Science.
Feed Back Directed Random Test Generation Carlos Pacheco1, Shuvendu K. Lahiri2, Michael D. Ernst1, and Thomas Ball2 1MIT CSAIL, 2Microsoft Research Presented.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University What Kinds of.
Tao Xie Automated Software Engineering Group Department of Computer Science North Carolina State University
1 Automatic Identification of Common and Special Object-Oriented Unit Tests Dept. of Computer Science & Engineering University of Washington, Seattle Oct.
E-Commerce Lab, CSA, IISc 1 A Combinatorial Procurement Auction for QOS-Aware Web Services Composition Megha Mohabey, Y. Narahari Computer Science and.
Lifecycle Verification of the NASA Ames K9 Rover Executive Dimitra Giannakopoulou Mike Lowry Corina Păsăreanu Rich Washington.
GAMS Anwendung Nutzeroberfläche eigene Programme Modellierungs- System GAMS AMPL ILOG Studio … Solver CPLEX, CONOPT, MINOS, COIN, BARON,...
Copyright © 2002, Systems and Computer Engineering, Carleton University Patterns.ppt * Object-Oriented Software Development Part 11.
Code Contracts Parameterized Unit Tests Tao Xie. Example Unit Test Case = ? Outputs Expected Outputs Program + Test inputs Test Oracles 2 void addTest()
Concordia University Department of Computer Science and Software Engineering Click to edit Master title style ADVANCED PROGRAMING PRACTICES Java generics.
1 Numbers & Basic Algebra – Math 103 Math, Statistics & Physics.
Inferring Automation Logic from Manual Control Scenarios: Implementation in Function Blocks ’15, Helsinki, Finland, August 21, 2015 Daniil Chivilikhin.
OBJECT-ORIENTED PROGRAMMING (OOP) WITH C++ Instructor: Dr. Hany H. Ammar Dept. of Electrical and Computer Engineering, WVU.
Alattin: Mining Alternative Patterns for Detecting Neglected Conditions Suresh Thummalapenta and Tao Xie Department of Computer Science North Carolina.
1 Test Selection for Result Inspection via Mining Predicate Rules Wujie Zheng
E.Bertino, L.Matino Object-Oriented Database Systems 1 Chapter 5. Evolution Seoul National University Department of Computer Engineering OOPSLA Lab.
Exploiting Code Search Engines to Improve Programmer Productivity and Quality Suresh Thummalapenta Advisor: Dr. Tao Xie Department of Computer Science.
Computer Science 1 Mining Likely Properties of Access Control Policies via Association Rule Mining JeeHyun Hwang 1, Tao Xie 1, Vincent Hu 2 and Mine Altunay.
An Axiomatic Basis for Computer Programming Robert Stewart.
Automatically detecting and describing high level actions within methods Presented by: Gayani Samaraweera.
Protocols Software Engineering II Wirfs Brock et al, Designing Object-Oriented Software, Prentice Hall, Mitchell, R., and McKim, Design by Contract,
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Model Checking for Simple Java Programs Taehoon Lee, Gihwon Kwon Department of Computer Science Kyonggi University, Korea IWFST, Shanghai, China,
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
CS 343 presentation Concrete Type Inference Department of Computer Science Stanford University.
COMPUTER PROGRAMMING 2 ArrayLists. Objective/Essential Standard Essential Standard 3.00Apply Advanced Properties of Arrays Essential Indicator 3.02 Apply.
1-6Identity and Equality Properties Algebra One CP2.
Functional Verification I Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture Notes 21.
A UML-Based Pattern Specification Technique Presented by Chin-Yi Tsai IEEE TRANSACTION ON SOFTWARE ENGINEERING, VOL. 30, NO. 3, MARCH 2004 Robert B. France,
Symstra: A Framework for Generating Object-Oriented Unit Tests using Symbolic Execution Tao Xie, Darko Marinov, Wolfram Schulte, and David Notkin University.
Memory Management in Java Mr. Gerb Computer Science 4.
Properties of Algebra. 7 + ( ) = ( ) + 9.
Debugging and Testing Hussein Suleman March 2007 UCT Department of Computer Science Computer Science 1015F.
Testing Data Structures
Introduction to Generic Programming in C++
Mechanical Certification of Loop Pipelining Transformations: A Preview
Checking Inside the Black Box: Regression Fault Exposure and Localization Based on Value Spectra Differences Tao Xie Advisor: David Notkin Dept.
Specification-Based Unit Test Data Selection: Integrating Daikon and Jtest Tao Xie and David Notkin Computer Science & Engineering, University of.
Eclat: Automatic Generation and Classification of Test Inputs
Database Management Systems (CS 564)
: Clone Refactoring Davood Mazinanian Nikolaos Tsantalis Raphael Stein
Expandable Group Identification in Spreadsheets
SWE 619 Software Construction Last Modified, Fall 2015 Paul Ammann
Project Management: Inspections and Reviews Formal Specifications
50.530: Software Engineering
Recommending Adaptive Changes for Framework Evolution
Presentation transcript:

Tao Xie ( ) Advisor: David Notkin Department of Computer Science & Engineering, University of Washington, Seattle Syntactically identical to axioms in algebraic specifications Associated with counts of satisfying and violating instances 79 common tests and 29 special tests (8 tests are both common and special) identified out of 6777 automatically generated tests. 43 universal properties and 45 common properties.Solution Results for java.util.LinkedList Automatic Identification of Common and Special Object-Oriented Unit Tests Related Work Ernst et al., Dynamically Discovering Likely Program Invariants to Support Program Evolution, IEEE Trans. Softw. Eng, 01. Henkel & Diwan, Discovering Algebraic Specifications from Java Classes, ECOOP 03. Xie et al., Rostra: A Framework for Detecting Redundant Object-Oriented Unit Tests, ASE 04. Some Examples of Common/Special Tests Programmers often overlook some special or even common tests Automatic test generation tools produce a large number of tests How to automatically identify special tests and common tests from them?Problem Automatically identify common and special tests without requiring specifications Based on dynamically inferred Statistical Algebraic Abstractions Test generation Common or universal properties Java class bytecode Method-call composition Statistical inference Abstraction templates Test identification Special tests Common tests Common test a satisfying instance of a universal property or common property Special test a violating instance of a common property *. Common prop: remove(removeLast(S).state, m0_2).state == removeLast(remove(S, m0_2).state).state Satisfying count: 318 (common test) LinkedList m = new LinkedList( ); m.add (0, new Integer(-1)); m.removeLast( ); m.remove(new Integer(-1)); Violating count: 42 (special test) LinkedList m = new LinkedList( ); m.add (0, new Integer(-1)); m.add (0, new Integer(0)); m.removeLast( ); m.remove(new Integer(-1)); size(clear(S).state).retval == 0 Satisfying count: 121 Violating count: 0 remove(add(S, m0_1).state, m0_2).state == add(remove(S, m0_2).state, m0_1).state Satisfying count: 315 Violating count: 45 java.util.LinkedList as the illustrative example 25 pub methods and more than 300 LOC class bytecode Generate representative method arguments Iteratively invoke different arguments on each non- equivalent receiver-object (e.g. five iterations) [Xie et al. 04] clear S1S1 size S 2 == S 3 S4S4 … … g(f(S, args1).state, args2).retval == const g(f(S, args1).state, args2).state == f(g(S, args1).state, args2).state … Universal property: all instances are satisfying instances. Common property: instances are mostly (e.g. 80%) satisfying instances Statistical algebraic abstractions are not required to be universally true during test executions, different from properties inferred by previous approaches [Ernst et al. 01, Henkel & Diwan 03].References *. Common prop: remove(removeFirst(S).state, m0_2).retval == remove(S, m0_2).retval Satisfying count: 315 (common test) LinkedList m = new LinkedList( ); m.add (0, new Integer(-1)); m.removeFirst ( ); m.remove(new Integer(1)); Violating count: 45 (special test) LinkedList m = new LinkedList( ); m.add (0, new Integer(-1)); m.removeFirst ( ); m.remove(new Integer(-1)); *. Conditional universal prop: lastIndexOf(addFirst(S, m0_1).state, m0_2).retval == (lastIndexOf(S, m0_2).retval + 1) [where (m0_1==m0_2)] Satisfying count: 120 (special test) LinkedList m = new LinkedList( ); m.addFirst(new Integer(-1)); m.lastIndexOf(new Integer(-1)); *. Common prop: removeLast(addFirst(S, m0_1).state).state == addFirst(removeLast(S).state, m0_1).state Satisfying count: 117 (common test) LinkedList m = new LinkedList( ); m.add(0, new Integer(-1)); m.addFirst(new Integer(0)); m.removeLast ( ); Violating count: 3 (special test) LinkedList m = new LinkedList( ); m.addFirst(new Integer(0)); m.removeLast ( );