[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
RE: [hyades-dev] Interest in contributing a test execution framework
|
Mike
There is a guiding principle in this Hyadfes stuff. We need to leave
space so we can all release commercial tooling built on top of the
framework. This means that above all the project is about tools
interoperability and not about providing a best-of-breed toolset into
the public domain, and the decisions to put specific tools into the
public domain are very sensitive. Some clarity over the natural boundary
between paid-for and public domain tooling will emerge over the next six
months or so.
On this basis I think it is unlikely that your entire framework would
make sense in the open source project, at least in the short term.
However, it would be useful to identify a cleavage point in your
architecture, the layers below which are supported by the public domain
architecture, and the layers above which are your value-add. If
modifications are required to allow the public domain architecture to
support your tooling, these can form your contribution to the open
source effort.
What I will say is that although a a trace model will be released quite
soon, the test model is not yet in a state where we can release it. The
initial cut is based upon the OMG RFP revised initial response which,
although not yet available from the OMG is to be found at
http://www.fokus.gmd.de/u2tp/Related_Documents/related_documents.html#Latest%20Document
Beyond this there will be certain modifications and extensions, which
are due to be thrashed out amongst the initial participants at the end
of the month. At that point something will be put into the public domain
and you can start playing.
I hope this makes sense.
I'd be happy to talk to you about this stuff if you want. Please
suggest some times for a call. I'm GMT, so avoid too late in the
afternoon.
Regards,
Mike Norman,
CEO Scapa Technologies
Hyades project lead
-----Original Message-----
From: msilverstein [mailto:msilverstein@xxxxxxxxxxxxxx]
Sent: Friday, January 03, 2003 7:32 PM
To: hyades-dev
Subject: [hyades-dev] Interest in contributing a test execution
framework
Hello:
We'd like to gauge interest in a potential contribution to the Hyades
project by SilverMark. We've been creating object testing tools since
1996 and have a framework that may be of use to the project. I'll
briefly describe it without burdening you all with a lot of details at
the outset.
This is a test execution framework implemented in Java, based on
concepts described in "Automated testing of Object Oriented-Components
Using Intelligent Test Artifacts",
http://servlet.java.sun.com/javaone/javaone2000/pdfs/TS-708 and used as
a basis for the SilverMark's Test Mentor - Java Edition (
www.javatesting.com) commercial product. The essence of it is this:
* The framework provides objects that each possess a type of testing
behavior. These objects are called steps.
* Tests are composed of instances of steps, configured to perform
specific testing tasks.
* The tests themselves may be considered "executable models". One of
our areas of interest is to use the framework as basis for an executable
form of the UML Testing Profile.
* There are a variety of types of steps, and it is fairly easy to
extend the framework to provide additional behaviors. Some examples of
the behavior provided by specific step types are:
* calling methods and constructors
* setting/getting fields
* parsing and iterating over test data
* referencing test assets (asset reuse)
* sequencing other test steps
* running a piece of Java code (script)
* recursively extracting object state
* validation (assertion-like behavior)
* calling out to a JUnit test
* accessing distributed objects such as EJBs or through distribution
schemes such as RMI or CORBA
* Steps also share common properties, such as:
* name and description, for documentation
* expected exception (class of exception expected to be thrown by
executing the step)
* number of times to execute the step
* performance criterion (maximum time step should take to execute)
* precondition
* postcondition
* failure (step to execute if the owning step fails for any reason)
* invariant (step to execute, which performs an assertion on some
state that is assumed to be true under all circumstances)
* maximum execution time
* All of these common properties except for name are optional,
which reduces the overhead of step configuration. Individual step types
have their own configuration properties.
* Steps know how to represent themselves as XML. The objects that
represent the results of executing steps also know how to represent
themselves as XML.
* The framework includes mechanisms for reusing and passing
parameters to test assets, as well as iterating over composite
parameters
* Test steps implement the JUnit junit.framework.Test interface, so
they look and smell to JUnit like JUnit tests, and can even be run under
JUnit
Some benefits of using the framework are (in no particular order):
* You already have a robust, flexible, well tested framework for
composing and executing a variety of types of tests
* At execution time test steps use reflection to interact with
components under test, so complete tests can be implemented independent
of the presence of the system under test
* Steps may be configured incrementally, as more information about
the system under test becomes known.
* Test steps can conditionally override Java's private member access
checks
* Each test step measures its own execution time, so fine-grained
performance metrics are gathered
* Tests and test results are independent of presentation, so a
variety of views can be created for them, specific to the target
audience
* The framework can be easily extended to support additional testing
behaviors
* The framework can be easily extended to gather additional
fine-grained metrics during execution. For example, it would not be
difficult to extend the steps' behavior to measure memory consumption or
code coverage during individual method calls, given the presence of
callable API for those metrics.
I've gone on enough. Please let me know if any of this would be of
interest to the group.
- Mike
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mike Silverstein voice: (919) 858-8300 x29
SilverMark, Inc. fax: (919) 858-8308
5511 Capital Center Drive mobile: (919) 669-5906
Suite 510, Raleigh, NC 27606 toll free: (888) 588-0668
http://www.silvermark.com msilverstein@xxxxxxxxxxxxxx