CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 9, 2010.

Slides:



Advertisements
Similar presentations
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Advertisements

Author: Carlos Pacheco, Shuvendu K. Lahiri, Michael D. Ernst, Thomas Ball MIT CSAIL.
An Overview Of Virtual Machine Architectures Ross Rosemark.
Runtime Techniques for Efficient and Reliable Program Execution Harry Xu CS 295 Winter 2012.
OO Programming in Java Objectives for today: Overriding the toString() method Polymorphism & Dynamic Binding Interfaces Packages and Class Path.
Abstraction and Modular Reasoning for the Verification of Software Corina Pasareanu NASA Ames Research Center.
1 Symbolic Execution for Model Checking and Testing Corina Păsăreanu (Kestrel) Joint work with Sarfraz Khurshid (MIT) and Willem Visser (RIACS)
CS527: Advanced Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 18, 2008.
Carnegie Mellon University Java PathFinder and Model Checking of Programs Guillaume Brat, Dimitra Giannakopoulou, Klaus Havelund, Mike Lowry, Phil Oh,
Lecture 2: Do you speak Java?. From Problem to Program Last Lecture we looked at modeling with objects! Steps to solving a business problem –Investigate.
1 Programming Languages b Each type of CPU has its own specific machine language b But, writing programs in machine languages is cumbersome (too detailed)
Lecture 2: Do you speak Java?. From Problem to Program Last Lecture we looked at modeling with objects! Steps to solving a business problem –Investigate.
1 Scenario-based Analysis of UML Design Class Models Lijun Yu October 4th, 2010 Oslo, Norway.
This is a work of the U.S. Government and is not subject to copyright protection in the United States. The OWASP Foundation OWASP AppSec DC October 2005.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
Project Proposal (Title + Abstract) Due Wednesday, September 4, 2013.
Address Book in JAVA By What is Address Book Address Book is book or database used for storing entries called contacts Each contact.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
Reverse Engineering State Machines by Interactive Grammar Inference Neil Walkinshaw, Kirill Bogdanov, Mike Holcombe, Sarah Salahuddin.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 15, 2011.
9/13/20151 Threads ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original slides.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
March 25, Announcements Friday – recruiting event 12-6 Dean Smith Center Bloomberg LP, New York City full-time positions and summer internships.
Assignments in 1st semester course „OOP with Java“ as small projects
1 CSC204 – Programming I Lecture 2 Intro to OOP with Java.
Lecture :2 1.  DEFENTION : Java is a programming language expressly designed for use in the distributed environment of the Internet. It was designed.
Week 1 - Friday.  What did we talk about last time?  Our first Java program.
COP 3330 Notes 1/12. Today's topics Downloading Java and Eclipse Hello World Basic control structures Basic I/O Strings.
CPRG 215 Introduction to Object-Oriented Programming with Java Module 1-Introduction to Java Topic 1.1 Basics of Java Produced by Harvey Peters, 2008 Copyright.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 7 OS System Structure.
Which Configuration Option Should I Change? Sai Zhang, Michael D. Ernst University of Washington Presented by: Kıvanç Muşlu.
Java PathFinder (JPF) cs498dm Software Testing January 19, 2012.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 16, 2010.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 22, 2011.
Finding Feasible Counter-examples when Model Checking Abstracted Java Programs Corina S. Pasareanu, Matthew B. Dwyer (Kansas State University) and Willem.
Model Checking Java Programs using Structural Heuristics
J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition Second Edition D.S. Malik D.S. Malik.
“Isolating Failure Causes through Test Case Generation “ Jeremias Rößler Gordon Fraser Andreas Zeller Alessandro Orso Presented by John-Paul Ore.
Deadlock Analysis with Fewer False Positives Thread T1: sync(G){ sync(L1){ sync(L2){} } }; T3 = new T3(); j3.start(); J3.join(); sync(L2){ sync(L1){} }
A compiler is a computer program that translate written code (source code) into another computer language Associated with high level languages A well.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov August 30, 2011.
ICFEM 2002, Shanghai Reasoning about Hardware and Software Memory Models Abhik Roychoudhury School of Computing National University of Singapore.
CSE 598c – Virtual Machines Survey Proposal: Improving Performance for the JVM Sandra Rueda.
CAPP: Change-Aware Preemption Prioritization Vilas Jagannath, Qingzhou Luo, Darko Marinov Sep 6 th 2011.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
CS223: Software Engineering Lecture 15: Software construction.
HYBRID APPROACH TO INTERFACE ADAPTATION.  Computing power anywhere and everywhere  Need interfaces that can adapt to different device conditions and.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 7, 2010.
ITP 109 Week 2 Trina Gregory Introduction to Java.
© Dr. A. Williams, Fall Present Software Quality Assurance – Clover Lab 1 Tutorial / lab 2: Code instrumentation Goals of this session: 1.Create.
Introduction to Programming 1 1 2Introduction to Java.
20-753: Fundamentals of Web Programming Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 15: Java Basics Fundamentals of Web Programming.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
Cs498dm Software Testing Darko Marinov January 24, 2012.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
CS-140 Dick Steflik Lecture 3. Java C++ Interpreted optimized for the internet Runs on virtual ized machine Derived from C++ Good object model Widely.
Open Source Compiler Construction (for the JVM)
Applications Active Web Documents Active Web Documents.
Introduction to Compiler Construction
Types for Programs and Proofs
Prototyping Lecture # 08.
Topic: Difference b/w JDK, JRE, JIT, JVM
CSC 591/791 Reliable Software Systems
Java programming lecture one
Assembler, Compiler, Interpreter
Security in Java Real or Decaf? cs205: engineering software
Assembler, Compiler, Interpreter
Presentation transcript:

CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 9, 2010

Schedule First few lectures to help you select projects –Testing: ReAssert, UDITA, Pex, Randoop –Today: JPF (model checking), note: journal paper –Sep 14: CHESS (multithreaded testing) –Sep 16: Regression testing, note: survey paper –Sep 21: Static (code) analysis? –Sep 23: GUI testing? –Sep 28: Analysis of code comments? –Testing distributed or real-time systems? –Your suggestions?

Paper Today Model Checking Programs by W. Visser, K. Havelund, G. Brat, S. Park and F. Lerda (J-ASE, vol. 10, no. 2, April 2003)Model Checking Programs JPF web site – –First open-source project from NASA Slides courtesy of Peter Mehlitz and Willem VisserSlides

Paper Overview Problem –Model checking of real code Terminology: Systematic testing, state-space exploration Solution –Specialized Java Virtual Machine Supports backtracking, state comparison Many optimizations to make it scale –Publicly available tool (Java PathFinder) Evaluation/applications –Remote Agent Spacecraft Controller –DEOS Avionics Operating System

Questions for Discussion (1) Reports on time but not early: [CR], [AS], [JC] Can an explicit-state model checker really scale to million lines of code? [AA] Tools are top down (execute the program and evaluate it as it runs) but code is written bottom up (unit by unit)? [AL] When is a state revisited? [JN] Can we move some part of search and bytecode interpretation to C? [MG] How to use JPF for sequential programs? [QL]

Questions for Discussion (2) Omitted? [DM] –Reminder: you can omit up to two reports How many kinds of abstraction are available? [ST] Too much work for too little benefit? [HY] –Does it only find bugs that other tools can find? Make JPF distibuted/parallel? [MK] Combine JPF and Radoop (or X and Y)? How can false positives be managed for a better user experience?

Questions for Discussion (3) Level of adoption outside NASA/Research? Have any high profile bugs been found? If JPF a valid approach outside of real-time systems and safety/mission critical software? How do you know the tool is correct? –Especially first version with Java -> Promela –What about differences between JPF and JVM Does it find bugs or prove software correct? What about non-Java languages?

Old Questions for Discussion (1) Which part of JPF can be incorrect? Can a compiler be model checked? How difficult is it to set environments? What to check in sequential programs (some examples are multi-threaded)? What about checking design not code? Comparison of testing, model checking, and static analysis

When is model checking applicable? What kind of bugs it can find? How well does it scale? What about memory requirements? What about time requirements? Why work with Java not C/C++? How can I apply this on my code? Old Questions for Discussion (2)

What’s recent work in this area? –There’s some work in my group if interested How do they compare states? How good are heuristics? How to use the tool in practice? –Hopefully the tutorial is helpful –You can download from NASA servers Problem set based on some tool??? Old Questions for Discussion (3)

Sample Project Ideas Apply JPF on some software –Did you read the optional reading/report? –Compare with more tools and techniques Improve JPF –Add new functionality (e.g., backtrackable time) –Implement more library methods (e.g., reflection) –Patch some bugs –Use for another language (Scala, X10…) –Automate creation of environments Check 427 Final Project ProposalsFinal Project Proposals