Platform Support for Developing Analysis and Testing Plugins Shauvik Roy Choudhary with Jeremy Duvall, Wei Jin, Dan Zhao, Alessandro Orso School of Computer.

Slides:



Advertisements
Similar presentations
DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Advertisements

CS0004: Introduction to Programming Visual Studio 2010 and Controls.
Automating with Open Source Testing Tools Corey McGarrahan rSmart 01-July-08.
Lessons learnt developing a NetBeans PDF viewer plugin in JavaFX Ernest Duodu Sylwia Kedzia.
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
Visual Basic 2010 How to Program. © by Pearson Education, Inc. All Rights Reserved.2.
Penetration Testing with Improved Input Vector Identification William G.J. Halfond, Shauvik Roy Choudhary, and Alessandro Orso College of Computing Georgia.
The Android Development Environment.  Getting started on the Android Platform  Installing required libraries  Programming Android using the Eclipse.
The Rhapsody in C++ Tool Training "Essential" © I-Logix v2.3 25/9/2000 EI-1 “Essential” Rhapsody in C++ Introduction.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
ISMT221 Information Systems Analysis and Design Project Management Tools Lab 1 Tony Tam.
Visual Basic Project 1 IDS 306 Spring 1999 V. Murphy.
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Functional Simulation Overview1 OpenTV PC Simulator.
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
Marlene Galea.  The JDK (Java Development Kit)  An IDE (Integrated Development Environment) ◦ Different IDEs include:  JCreator  NetBeans  BlueJ.
Types of software. Sonam Dema..
Automated Diagnosis of Software Configuration Errors
L OUISIANA T ECH U NIVERSITY College of Engineering and Science INTRODUCTION RATIONAL ROSE BORLAND TOGETHER VISUAL PARADIGM CONCLUSIONS.
Detailed Technical Feature Presentation Background Information The Importance of Software Software Roadblocks Development Environment DSP Development Cycle.
Getting Started Example ICS2O curriculum
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
Unit VI. Keil µVision3/4 IDE for 8051 Tool for embedded firmware development Steps for using keil.
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
Microsoft Visual Basic 2005: Reloaded Second Edition
ASP.NET  ASP.NET is a web development platform, which provides a programming model, a comprehensive software infrastructure and various services required.
1 CSE 2102 CSE 2102 CSE 2102: Introduction to Software Engineering Ch9: Software Engineering Tools and Environments.
Bogor-Java Environment for Eclipse MSE Presentation II Yong Peng.
Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation.
C++ Code Generation For High School Visual Development CPSC501 James Maxlow November 26 th, 2002.
© 2005 by IBM Corporation; made available under the EPL v1.0 | February 28 th 2005 Adopting the Eclipse™ Test and Performance Tools Platform (TPTP) project.
Testing : A Roadmap Mary Jean Harrold Georgia Institute of Technology Presented by : Navpreet Bawa.
Capture and Replay Often used for regression test development –Tool used to capture interactions with the system under test. –Inputs must be captured;
Model-View-Controller Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh University.
1 A Static Analysis Approach for Automatically Generating Test Cases for Web Applications Presented by: Beverly Leung Fahim Rahman.
CrossCheck: Combining Crawling and Differencing to Better Detect Cross-browser Incompatibilities in Web Applications Shauvik Roy Choudhary, Mukul Prasad,
Steps in simulation study 1. - Clearly understand problem - Reformulation of the problem 2. - Which questions should be answered? - Is simulation appropriate?
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
WebVizOr: A Fault Detection Visualization Tool for Web Applications Goal: Illustrate and evaluate the uses of WebVizOr, a new tool to aid web application.
CSE 219 Computer Science III Program Design Principles.
1.1 Introduction to Programming academy.zariba.com 1.
Introduction to Windows Programming
Developing software and hardware in parallel Vladimir Rubanov ISP RAS.
X-PERT A Web Application Testing Tool for Cross-Browser Inconsistency Detection Shauvik Roy Choudhary, Mukul Prasad, Alessandro Orso Labs of America.
1 Chapter Nine Using GUI Objects and the Visual Studio IDE.
Lecture.1: Getting Started With Java Jiang (Jen) ZHENG May 9 th, 2005.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
Getting started with Programming using IDE. JAVA JAVA IS A PROGRAMMING LANGUAGE AND A PLATFORM. IT CAN BE USED TO DELIVER AND RUN HIGHLY INTERACTIVE DYNAMIC.
Chapter 1 Introduction. Chapter 1 - Introduction 2 The Goal of Chapter 1 Introduce different forms of language translators Give a high level overview.
CITA 342 Section 2 Visual Programming. Allows the use of visual expressions (such as graphics, drawings, or animation) in the process of programming.
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University.
Jin Huang Ph.D. Candidate Massachusetts Institute of Technology.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 7, 2010.
Microsoft Visual Basic 2015 CHAPTER ONE Introduction to Visual Basic 2015 Programming.
De Rigueur - Adding Process to Your Business Analytics Environment Diane Hatcher, SAS Institute Inc, Cary, NC Falko Schulz, SAS Institute Australia., Brisbane,
Programming Logic and Design Seventh Edition Chapter 1 An Overview of Computers and Programming.
DEV-21: Embracing OpenEdge ® Architect Sunil S Belgaonkar Software Architect.
Verification and Testing
Improving Scilab’s Xcos User Interface
Behavioral Models for Software Development
QGen and TQL-1 Qualification
QGen and TQL Qualification
Software Testing: A Research Travelogue
Visualization of Simulation Results
Programming Logic and Design Eighth Edition
Presentation transcript:

Platform Support for Developing Analysis and Testing Plugins Shauvik Roy Choudhary with Jeremy Duvall, Wei Jin, Dan Zhao, Alessandro Orso School of Computer Science – College of Computing Georgia Institute of Tech nology

Development Environment

IDE features IDE … … … Plug-in Note: Plug-ins are called as Add-ins in Visual Studio

IDE features IDE … … … Plug-in Note: Plug-ins are called as Add-ins in Visual Studio Focus of this talk: IDE Features for developing plug-ins that support “Program Analysis and Software Testing” Case Study: BERT (BEhavioral Regression Testing) [WODA’08][ICST’10][FSE-demo’10]

Regression Testing Process and Issues ?

Existing test suites typically target a small subset of the program behavior Tests focus on core functionality Oracles often approximated Traditional Regression Testing

BERT

Phase I : Generation of test cases for changed code BERT

Phase II : Behavioral comparison

BERT Phase III : Differential behavior analysis and reporting

BERT Traditional Regression Testing

Our Experience Programming languageJavaC# Intercepting save and build events ✔✔ Triggering and checking build process ✔✔ Computing program differences ✔✖ (custom) Generating test cases ✔ (Randoop, JPF) ✔ (PEX, Randoop.NET) Instrumenting code ✔ (Javassist) ✔ (CCI) Running test cases and code ✔✔ Visualizing information for user ✔✔

IDE Support for Program Analysis and Testing Plug-ins Dynamic Information Project Artifacts and Events Static Information Plug-in Development Support Graphical Features

1. Project Artifacts and Events

2. Static Information Intermediate representations Program differencing Instrumentation Build parameters AST

3. Dynamic Information Test Execution Runtime Metrics Debugging information RunTest

4. Graphical Features Provide GUI hooks to access plug-in functionality Obtain user input or tool preferences Present data to user and allow them to interact with it

5. Plug-in Development Support Development API Documentation Sample Code and Informal Documentation Testing, Debugging, and Maintenance Launch and monitor IDE instance

Summary