slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
ETICS All Hands meeting B ologna , October 2 3 - 25 , 2006 PowerPoint Presentation
Download Presentation
ETICS All Hands meeting B ologna , October 2 3 - 25 , 2006

Loading in 2 Seconds...

play fullscreen
1 / 23

ETICS All Hands meeting B ologna , October 2 3 - 25 , 2006 - PowerPoint PPT Presentation


  • 85 Views
  • Uploaded on

WP4 Test and Metrics Plugin Framework (WP 4 ) Eva TAKACS. ETICS All Hands meeting B ologna , October 2 3 - 25 , 2006. Overview. Why a plugin framework Advantages of a Plugin Framework in general Core functionality and first steps of the Test and Metrics Plugin Framework

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'ETICS All Hands meeting B ologna , October 2 3 - 25 , 2006' - bertha


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

WP4 Test and Metrics Plugin Framework

(WP4)

Eva TAKACS

ETICS All Hands meeting

Bologna, October 23-25, 2006

overview
Overview
  • Why a plugin framework
  • Advantages of a Plugin Framework in general
  • Core functionality and first steps of the Test and Metrics Plugin Framework
  • Basic architecture of a plugin framework in general
  • Java Plugin Framework – implementation of a plugin architecture
  • User scenarios
  • Basic architecture of the Test and Metrics Plugin Framework
  • Conclusion
advantages of a plugin framework in general
Advantages of a plugin framework in general

Making an application extensible using the plugin system has strong advantages over other techniques:

  • It allows third-party developers to easily enhance software in a way that is loosely coupled: only the plugin API is required to remain stable.
  • It allows new plugins to be discovered flexibly.

More precisely,

    • plugins can be loaded and saved when a program is first run, or re-discovered each time the program starts up
    • allows the discovery of new plugins installed after the program has started.
why a plugin framework for etics
Why a Plugin Framework for ETICS?

The rational behind using „Eclipse style” plug-in architecture is

  • that most of present and/or future ETICS users will with some tests and testing tools already in place and of course they would like to use them when working with ETICS

On the other hand

  • they should be provided with „default” testing tools when they do not have their own but would like to use something
core functionality of the test and metrics plugin framework
Core functionality of the Test and Metrics Plugin Framework

Core functionality of the framework is consisted of

  • Existing tools (default plug-ins)
    • TestManager – a testdriver used for gLite testing already in use
    • Two coverage tools for Java testcases
      • Emma
      • JavaCov
      • other (Cobertura ?)
  • A plugin manager system able to handle the plugins and user profile settings from the web interface and/or command-line interface
plugin framework first steps 1
Plugin Framework – First steps 1

It was decided that as a first step

  • TestManager a testdriver developed in CERN and used for gLite functional testing
  • Two coverage tools
    • EMMA, an open source tool requested by future ETICS users
    • JavaCov, a commercial tool providing a very strong MC/DC coverage criterion

will be taken into account.

plugin framework first steps 2
Plugin Framework – First steps 2

To examine how these tree tools can be integrated in a future plugin environment

  • to „modularise” TestManager
  • to have a closer look to the running ways of coverage tools
slide8
EMMA

EMMA – is an open source coverage tool

  • Supported coverage types
    • class
    • method
    • line
    • basic block (branch)
  • Supported Java version: 1.5.*
  • Running way:
    • configurable command line
    • ANT integration
    • no Eclipse plugin
emma junit
EMMA - JUnit

EMMA – Junit integration

  • EMMA does not support implicitely "JUnit integration„
  • and not assume any particular testing methodology
  • But after doing some configuration can be used for measuring the coverage of Junit test cases
javacov
JavaCov
  • JavaCov
  • Supported coverage types
    • class
    • method
    • line
    • basic block (branch)
    • MC/DC (refined version of branch, required in safety-critical systems)
  • Supported Java version: 1.4.* ?????????
  • Running way:
    • ANT integration
    • Eclipse plugin
    • no separate command line
javacov junit
JavaCov - JUnit
  • JavaCov – JUnit integration
  • supports implicitely "JUnit integration„ without extra configuration
  • at the same time does not assume any particular test method
javacov cobertura
JavaCov ? Cobertura

Because of not supporting java 1.5 and the company is not going to upgrade JavaCov this year it can be replaced by an other coverage tool.

One candidate can be Cobertura – an other open source product but without supporting MC/DC criterion.

terms refering to a plugin architecture
Terms refering to a Plugin Architecture

Basic terms:

  • a runtime engine that dynamically discovers and loads "plug-ins„
  • A plug-in is a structured component that contributes code and resources to the „core” system and describes itself to runtime engine using a "manifest file„ usually an xml.
  • Runtime engine maintains a registry of available plug-ins and the functions they provide (via extension points and extensions)
  • extension points, well-defined methods that can be extended by other plug-ins.
  • extension to the system – when an implementatin is added to an extension poit
requirements
Requirements
  • Important requirement of a plugin framework
  • Because of memory and performance issues the installed plug-ins should not be loaded (instantiated) until they are called. They are added to a central registry at application start-up and are loaded when necessary.
basic plug in architecture
Basic Plug-in architecture

Manifest1.xml

Plugin_1

extension point

Plugin Manager

- loads and activates plugins

- maintains a plug-in registry

- finds the physical location of plugins

Plugin_11

Manifest2.xml

Plugin_2

API for defining

Manifest files

Manifestn.xml

Plugin_n

java plugin framework
Java Plugin Framework

JPF (Java Plugin Framework) is a general-purpose open source plug-in framework intended to build extendable Java applications

Main features:

  • Open framework architecture but having a „default” implementation
  • Lazy plug-in activation (Plug-in classes are loaded into memory only when they are actually needed )
  • "On the fly" plug-in registration and activation
  • Xml based manifest files (Eclipse now uses OSGI)
slide17
OSGI

The OSGi framework specification forms the basis of the Eclipse Runtime. As of Eclipse 3.0, the Runtime is fully based on the OSGi notion of bundle (equivalent to Eclipse plug-ins). The OSGi framework implementation in Eclipse 3.0 is fully compliant with the OSGi framework specification R3.0. The OSGi implementation in Eclipse 3.1.2 and the upcoming Eclipse 3.2 fully implement the OSGi R4.0 framework specification.

user scenario in etics 1
User scenario in ETICS 1

Use case: the user specifies in his/her profile that the required coverage tool during the build is EMMA

  • Test and Metrics Plug-in Framework’s runtime engine discovers dynamically and loads the „EMMA plug-in„

(For example scans a directory named „plugins” looking for EMMA)

  • In „plugins” directory the engine discovers „emma.jar”
  • When the build process reaches the „coverage” target the ‘emma.jar’ will be run using the configuration described in the manifest (xml) file of the EMMA plugin
user scenario in etics 2
User scenario in ETICS 2

Use case : ETICS user wants to use TestManager to run gLite testcases outside the build process but using his/her own charting library to create reports

  • In his profile (or somehow through the user interface) or from the user interface of the Plugin Framework he can chose TestManager between the available test drivers
  • The plugin manager observes that TestManager should be loaded
  • Also observes that when executing the reporting module in TestManager an extension of it e.g the charting system of the user should be loaded
user scenario in etics 3
User scenario in ETICS 3

Use case: ETICS user (manager) wants to know how many open bugs were fixed during a specific build

  • In his profile (or somehow through the user interface) he specifies the required metric
  • The Plug-in Frameworks runtime engine discovers the required metric calculation utility
  • When the build process reaches the target „metrics” the selected metric calculation utility will be run.
test and metrics plug in architecture 1

Manifest1.xml

Plugin Manager

- loads and activates plugins

- maintains a plug-in registry

- finds the physical location of plugins

TestManager

Manifest2.xml

EMMA

API for defining

Manifest files

Manifestn.xml

JavaCov/

Cobertura

JPF

Test and Metrics Plug-in Architecture 1
test and metrics plug in architecture 2
Test and Metrics Plug-in Architecture 2

Manifest1.xml

TestManager

extension point

Charting system

Plugin Manager

- loads and activates plugins

- maintains a plug-in registry

- finds the physical location of plugins

Manifest2.xml

EMMA

API for defining

Manifest files

Manifestn.xml

JavaCov/

Cobertura

Java Plugin Framework

Build system - (build.xml)

conclusion
Conclusion

2006

  • Specification on conceptual level
  • Feasibility study
  • Architectural specification
  • Integration of the plugin system in the ETICS framework

2007

  • Implementation