Platform Support for Developing Analysis and Testing Plugins

 
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
Plug-in
Plug-in
 
Note: Plug-ins are called as Add-ins in Visual Studio
IDE features
 
IDE
… … …
Plug-in
Plug-in
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
 
?
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
Traditional
Regression
Regression
Testing
Testing
 
Traditional
Regression
Testing
 
 
BERT
 
BERT
 
 
 
BERT
 
 
BERT
BERT
Traditional
Traditional
Regression
Regression
Testing
Testing
Our Experience
 
Programming language
Programming language
 
 
Java
Java
  
  
C#
C#
Intercepting save and build events
Intercepting save and build events
 
 
 
 
  
  
Triggering and checking build process
Triggering and checking build process
 
 
  
  
Computing program differences
Computing program differences
 
 
  
  
(custom)
(custom)
Generating test cases
Generating test cases
 
 
(Randoop, JPF)
(Randoop, JPF)
 
 
 
 
(PEX,
(PEX,
   
   
     Randoop.NET)
     Randoop.NET)
Instrumenting code
Instrumenting code
 
 
(Javassist)
(Javassist)
 
 
(CCI)
(CCI)
Running test cases and code
Running test cases and code
 
 
  
  
Visualizing information for user
Visualizing information for user
 
 
  
  
IDE Support for Program
Analysis and Testing Plug-ins
1. Project Artifacts and Events
2. Static Information
 
Intermediate representations
 
Program differencing
 
Instrumentation
 
Build parameters
3. Dynamic Information
 
Test Execution
 
Runtime Metrics
 
Debugging information
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
Slide Note

SEIF

Embed
Share

This presentation discusses the platform support for developing plugins that aid in program analysis and software testing in IDEs. It covers IDE features, regression testing processes, traditional regression testing methods, and a case study on BEhavioral Regression Testing (BERT). The talk also delves into the phases of BERT, highlighting test case generation, behavioral comparison, and differential behavior analysis.

  • Platform support
  • Analysis
  • Testing
  • Plugins
  • Regression testing

Uploaded on Sep 19, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. 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 Technology

  2. Development Environment

  3. IDE features IDE Plug-in Source Code Editor Views SCM Plug-in Debugger Testing Builders Runtime Plug-in Note: Plug-ins are called as Add-ins in Visual Studio

  4. IDE features IDE Focus of this talk: Plug-in IDE Features for developing plug-ins that support Program Analysis and Software Testing Source Code Editor Views SCM Plug-in Case Study: BERT (BEhavioral Regression Testing) [WODA 08][ICST 10][FSE-demo 10] Testing Debugger Builders Runtime Plug-in Note: Plug-ins are called as Add-ins in Visual Studio

  5. Regression Testing Process and Issues ?

  6. Regression Testing Process and Issues

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

  8. BERT Traditional Regression Testing

  9. BERT Phase I: Generation of test cases for changed code

  10. BERT Phase II: Behavioral comparison

  11. BERT Phase III: Differential behavior analysis and reporting

  12. BERT Traditional Regression Testing

  13. Our Experience Programming language Java C# 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

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

  15. 1. Project Artifacts and Events

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

  17. 3. Dynamic Information Test Execution Test Run Runtime Metrics Debugging information

  18. 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

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

  20. Summary

Related


More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#