Title: An Example Presentation
1Benefits of
for Testing
I
Ian Gilchrist, IPL
2Eclipse and Testing
- Ian Gilchrist, Software Products Mngr, IPL
- Ian.gilchrist_at_ipl.com
- IPL is a Bath-based software house
- 250 software engineers
- Mainly bespoke software development
- Produce and market own software testing tools
- Cantata (for C, C, and Java)
- AdaTEST 95 (for Ada)
- We have been using Eclipse since 2005
3Overview
- What is Eclipse?
- Brief summary of community, pillars and projects
- Eclipse resources that impact device deployment /
testing
- Commercial IDEs
- Plug-ins relevant to testing
- More information
- Main advantages of Eclipse
- For vendors and users
- C a unit / integration test tool
- What it does and why Eclipse helps
- Product demo on current Europa release
4What is Eclipse?
A open development platform Eclipse is an open s
ource community whose projects are focused on
building an open development platform comprised
of extensible frameworks, tools and runtimes for
building, deploying and managing software across
the lifecycle.
- Over 60 open source projects in 7 different
"pillars"
- Enterprise Development
- Embedded and Device Development
- Rich Client Platform
- Rich Internet Applications
- Application Frameworks
- Application Lifecycle Management (ALM)
- Service Oriented Architecture (SOA)
5Relevant Eclipse Projects
- Device Software Development Platform     Â
- Device Debugging       Â
- ERCP - Embedded Rich Client Platform      Â
- Mobile Tools for Java     Â
- Native Application Builder      Â
- Target Management     Â
- Tools for mobile Linux
- Test and Performance Tools Platform     Â
- Monitoring Tools        Â
- Tracing Profiling Tools                Â
- Testing Tools
6Relevant Eclipse Resources
- Commercial IDEs
- QNX Momentics
- LynuxWorks Luminosity
- GreenHills MULTI
- TI Code Composer Essentials
- Nokia Carbide
- Wind River Workbench
- 1000 Plug-ins
- SCM tools
- CVS
- SVN
- ClearCase
- Bug tracking tools
- Bugzilla
- Trac
- ClearQuest
- External editors
- Emacs
- Vi
- SlickEdit
- Eclipse Platform Releases
- Yearly (June) simultaneous projects
- Calisto 06 Europa 07 Ganymede 08
- Includes CDT
7Eclipse Rich Client Platform
- A platform for building applications
- Minimal set of plug-ins
- Eclipse RCP for building applications that work
in conjunction with application servers,
databases, and other backend resources to deliver
a rich user experience on the desktop.
8Why is Eclipse RCP used?
- COTS Platform Advantages
- Quick build times (dont have to build everything
from scratch)
- Professional and modern looking
- Native look-and-feel
- Deployable on multiple platforms
- Allows developers to focus on their application
value-add
- Commercial Advantages
- RCP components are of high quality, are actively
maintained, and are open source.
- Many other Eclipse components available for reuse
(e.g. Help UI, Update Manager, Cheat Sheets,
Intro, etc.).
- Allows development of an open-ended platform
9Eclipse Platform
- Eclipse is an open tools platform
- Designed so that its components could be used to
build just about any client application up to a
full IDE
- UI paradigm is based on editors, views, and
perspectives
- Applications and tools are implemented as
plug-ins
10Eclipse Plug-ins
- What is a plug-in?
- Java code in a Java Archive (JAR) library
- Some read-only files, and other resources such as
images, web templates, message catalogs, native
code libraries, etc.
- Tool plug-ins
- Small tools usually a single plug-in, complex
tools use many grouped in features as a product
- Thousands of commercial and open source plug-ins
- What they are used for
- Check them out at Eclipse Plug-in Central
www.eclipseplugincentral.com
11Plug-in Technical Concepts
- Interconnections
- Each plug-in has a plug-in manifest declaring its
interconnections to other plug-ins
- A plug-in declares any number of named extension
points, and any number of extensions to one or
more extension points in other plug-ins.
- A plug-ins extension points can be extended by
other plug-ins.
- Plug-in awareness (declarative wiring)
- Platform run-time discovers the set of available
plug-ins, reads their manifests, and builds an
in-memory plug-in registry
- Registry holds extension point info without
activating the plug-in or loading of any of its
code
- This property is key to supporting a large base
of installed plug-ins only some of which are
needed in any given user session.
12Plug-in Categories
-
- Built on Eclipse
- Products that include the key components of the
Eclipse platform. This type of product is able to
run standalone with no prerequisites of other
Eclipse components. - Eclipse Ready
- Products that can be added to an existing Eclipse
based product.
13Eclipse Integration Levels
- Highest level
- Written in Java, using the Eclipse Platform APIs
- Lowest Level
- Opens a separate windows in order to communicate
with the user and must access user data via the
underlying file system
- In between
- The workbench has built-in support for embedding
any OLE document as an editor (Windows only).
- A plug-in tool can implement a container that
bridges the Eclipse Platform API to an ActiveX
control so that it can be used in an editor,
view, dialog, or wizard (Windows only). - A plug-in tool can use AWT or Swing to open
separate windows. This option provides loose UI
integration, but allows tight integration below
the UI.
14Other Eclipse technologies
- WTP
- Eclipse Web Tools Platform (WTP) project extends
the Eclipse platform with tools for developing
Web and Java EE applications.
- Some interesting sub-projects include
- The AJAX Toolkit Framework (ATF)
- JavaServer Faces Tools (JSF)
- BIRT
- Business Intelligence and Reporting Tools (BIRT)
project is a reporting system for web
applications.
- Main components are
- a report designer based on Eclipse,
- a runtime component that you can add to your
app server.
- a charting engine that lets you add charts to
your own application
15Eclipse Platform UI Toolkits
- Eclipse Workbench (IDE)
- Provides an extensible UI to the user
- API and implementation are built from two
toolkits
- SWT ( Standard Widget Toolkit)
- mcWidget set and graphics library integrated with
the native window system but with an
OS-independent API.
- JFace
- mcUI toolkit implemented using SWT that
simplifies common UI programming tasks.
- Eclipse SDK (development)
- Eclipse Platform
- JDT (Java Development Tools)
- PDE (Plug-in Development Environment)
16Eclipse CDT
- CDT C/C Development Toolkit
- An extension to the Eclipse platform in the form
of a plug-in.
- Operating system independent and open source
- Provides
- Editor (syntax highlighting, code assist, code
templates etc)
- Debug
- Project Management
- Managed Build Mechanism (make)
- Integrated with GCC compiler toolchain but also
supporting parallel different programming
languages
- Supports designing, coding configuration
management etc
17Further Information
- Eclipse Foundation     Â
- www.eclipse.org    Â
- Â Â Â
- Eclipse Plug-in Central EPICÂ Â Â Â Â
- www.eclipseplugincentral.com Commercial and
Free    Â
- Conferences and MagazinesÂ
18Main Benefits of Eclipse
- Users     Â
- Single platform independent IDE Â Â Â Â Â Â Â
- Open source platform with rich built-in features
Â
- Predictable release schedule    Â
- Developments in the right areas (enterprise and
devices)
- Extensible and compatible plug-in ecosystem
- Vendors     Â
- Tool and plug-in compatibility        Â
- Commercial platform for development
19Specific Benefits for Testing
- Utilise CDT capabilities for code level testing
      Â
- Extended editing of test scripts and source code
- (AST Abstract Syntax Tree)
- Project properties
- Workspace preferences
- Configurable build tools
- Plug-in vendor specialisation         Â
- Compatibility in development / testing
toolchainsÂ
- Build tools
- Editors
- SCM Tools
- Allows best in class plug-in selection of tools
20Note on Java programming
- All Plug-ins are written in Java.
- Java encourages three views
- Data (can come from files)
- Presentations (ordering of data)
- User Interface (can work directly on data or
request presentations)
Presentation
Data
Data in file(s)
UI User Interface
21Cantata built on Eclipse
- Cantata consists of 10 main Eclipse plug-ins
- Core manages data and presentation layers
- CDT (IPL) constructs AST (Abstract Syntax
Tree)
- Properties sets options (elements in data
layer)
- Editor -
- Load Files - moves data from files to/from data
layer
- Test Script Manager generates script for
editing
- Invoke a results presentation
- Test Results Tree
- Report Viewer
- Coverage Results Tree
- Coverage Viewer
22Cantata built on Eclipse
Cantata
CDT (IPL)
Load
Properties
Editor
Report Tree
Report View
Cov. Tree
Test Script Mngr
Cov. View
23Cantata and other IDEs
Cantata/ Momentics Plug-in
Other IDE e.g. QNX Momentics
CDT
Cantata
Core
Eclipse
24Cantata and Eclipse
- Cantata V5.0 was released in 2006
- Based on Eclipse 3.2
- Current Cantata (5.2) was released in 2007
- Based on Eclipse 3.3
- Next version of Cantata (5.3) will be released
in 2008
- Based on Eclipse 3.4
25Demonstration
26 Reverse String Demo
- Specification
- Takes a character string input, reverses the
order for the character string return.
- If a NULL string is received return
- ERROR no string
- Calls strlen to get string length and malloc (C)
or operator new (C) to allocate memory for the
string. If memory fails return an error string
- ERROR no memory
27To the Demo
28Summary why use Eclipse?
- These are the main reasons
- Eclipse offers a convenient, reliable, and
evolving basis for any tool UI
- It also contains many features useful for test
tools
- Having a tool built-on Eclipse means that it
can be integrated easily with other similar tools
e.g. IDEs
- Cantata needs to work with other suppliers
tool chains
- Customers are increasingly demanding an Eclipse
experience