Platform Support for Developing Analysis and Testing Plugins

Slide Note
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.


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