CodeTools proposal: "SigTest"
Kevin Looney
kevin.looney at oracle.com
Wed Feb 26 13:31:19 PST 2014
Name: SigTest
Summary: A collection of tools used to evaluate platform compatibility
and API change.
Proposed by: Kevin Looney
Rationale:
SigTest is already an Open Source project, located under the ME
OpenSource infrastructure:
https://sigtest.java.net/
This is not a proposal for a new project, it is a proposal for a
transfer of the SigTest (java.net) project into the OpenJDK CodeTools
community, and moderation under OpenJDK bylaws.
The SigTest open source project is a collection of tools, originally
based on Oracle's commercial SigTest tools product. The SigTest tools
can be used to compare APIs and to measure the test coverage of an API.
The tools were originally created to assist in the creation of Java
technology compatibility test suites (TCKs), but are also useful in the
creation of other types of test suites and in the software development
process. The SigTest project consists of the following tools.
The *Signature Test tool* - makes it easy to compare the signatures of
two different implementations or different versions of the same API.
When it compares different implementations of the same API, the tool
verifies that all of the members are present, reports when new members
are added, and checks the specified behavior of each API member. When it
compares different versions of the same API, the tool checks that the
old version can be replaced by the new one without adversely affecting
existing clients of the API.
The *API Coverage tool* can be used to estimate the test coverage a test
suite provides for an implementation of a specified API. It does this by
determining how many public class members the test suite references
within the API specification. The tool uses a signature file
representation of the API specification as the source of specification
analysis. It does not process a formal specification in any form.
The *API Check tool* tracks API changes and roughly checks for source
and binary compatibility. Much like Signature Test tool, it compares the
reference implementation of an API recorded as golden signature file
with a tested implementation. Unlike Signature Test tool, which requires
that all classes (and the classes they depend on) be specified to the
tool, API Check tool does not require dependencies to be specified. For
that reason, API Check tool is faster than Signature Test tool, but less
rigorous.
The SigTest open source project was created in 2008 - in order to
develop a community that will improve the tools, improve software
development techniques with respect to platform compatibility, and
enhance the development of software test suites. We expect to continue
this charter through inclusion in OpenJDK.
--
kevin.looney at oracle.com
More information about the code-tools-dev
mailing list