July 2nd 2012

Sureassert UC 2.0.0 is now available for download

This is the first v2.x release, built upon a new foundation using byte-code instrumentation and the JaCoCo library. This release offers much improved performance, improved incremental real-time code coverage reporting (including partial coverage) and improved JUnit integration (e.g. test class exclusion filtering). All users of 1.x and BETA versions should update as soon as possible.

Change details TBA shortly…

April 22nd 2012

Sureassert UC 2.0.0-BETA-2 is now available for download

This is an early release version of Sureassert 2.0 that fixes some issues found in BETA-1.


0000035 block Exemplars fail with NPE when AspectJ cannot resolve JoinPoint for Sureassert advice
0000034 feature #= should support primitive types
0000033 major Cannot use $argN notation within arguments of a SIN Expression

March 17th 2012

Sureassert UC 2.0.0-BETA-1 is now available for download

This is an early release version of Sureassert 2.0. The big change is behind the scenes with the instrumentation mechanism, which now uses AspectJ Load-Time Weaving. This significantly reduces the time taken for Sureassert to process projects when performing builds.

Important notes:

  • This BETA-1 build has code coverage reporting disabled as this funcionality has not been ported to the new back-end mechanisms yet. The 2.0.0 release will have coverage reporting re-enabled (along with some new coverage reporting features).
  • If upgrading from a previous build, uninstall the previous build first before installing this one.
  • If upgrading from a previous build, you may experience problems using the Run/Debug As->Sureassert UC function and the Workspace/Selection Sureassert UC Runner launches. This is because the launch configuration has changed with this version. To fix this simply remove the old launches (Run->Run Configurations->expand OSGi Framework and delete any Sureassert launches). They will then be re-created with the correct configuration on the next attempt to Run/Debug As->Sureassert UC. This step will be removed with the full 2.0.0 release.


0000031 minor Double shorthand notation doesn’t work within primitive array type
0000030 minor Cannot create empty primitive array
0000029 minor Cannot use array.lenth
0000028 minor Can’t directly represent the string “null” (see text for workaround)
0000025 block Compilation error in instrumented source: Nested if without {}
0000011 feature Instrumentation speed may be increased with bytecode AOP

November 17th 2011

Thought it would be good to give a quick update on the development roadmap.  Work on version 2 has started.  Items on the roadmap for version 2.x are:

  • Enhanced performance: replace the current source-level instrumentation component with a bytecode AOP agent.  This should dramatically reduce the time required by Sureassert to instrument projects.
  • Enhanced coverage reporting: add the ability to generate Sureassert test coverage reports for individual projects or the entire workspace, amongst other improvements.
  • Enhanced build system integration / standalone execution: support Sureassert execution without headless Eclipse and add ant/maven integration.
  • Enhanced contract enforcement: add annotations to specify pre and post-conditions of methods (including abstract/interface methods).
  • Enhanced Eclipse integration: show/hide Exemplars; Exemplar editor; etc.

If you have a burning need for any of these or any other features, please drop us a note at

On a separate note, all releases from 1.3.1 onwards will be kept available for download from this website.


November 13th 2011

Sureassert UC 1.3.1 is now available for download!


0000024 major On some Eclipse builds Sureassert can cause org.eclipse.jdt.core to crash with NullPointerException
0000023 major Enabling auto-refresh (polling on Windows) can result in frequent full builds
0000022 major Classes with nested anonymous types (i.e. anon defined within anon) cause instrumentation error

October 11th 2011

Sureassert UC 1.3.0 is now available for download!


0000021 feature Allow use of an Exemplar as a template for another Exemplar within a class
0000020 feature Enforce use of “Class/instanceName” for named instances and allow omission of “Class/” within class
0000019 major Project instrumentation results in NPE where there is an enum using constructor invocations this(n) or super(n)
0000018 feature Should be able to use the instance and arguments of a stubbed method in the stub result expression
0000017 tweak Stub definitions require =expression even for methods that return void
0000016 major Exemplar before property not functioning, and should include after property for any required clean-up
0000015 minor Markers on interfaces for inherited Exemplars resulting in error not removed when error is fixed
0000014 feature Cannot use the re-execution postfix (“!”) in the instance property pointing at an instanceout

August 28th 2011

Sureassert UC 1.2.1 is now available for download!


0000013 feature Add support for defining Exemplars on non-static inner classes
0000010 minor A class in interface causes SureAssert error

August 15th 2011

Sureassert UC 1.2.0 is now available for download!

Major Changes:

0000009 UseCases sometimes not exeucted in correct order when using ucName!, leading to UC errors.
0000007 Support behaviour verification
0000008 Error “cannot define both UC and MUC on a method” should be reported as Problem at method line not global Error
0000006 Shouldn’t need to fully-qualify java.lang classes
0000005 Method stub defs containing fully-qualified class names cause NPE
0000004 Signatures with 1 parameter treated as no-params by dependency manager
0000003 Dependencies on instanceout not calculated

June 26th 2011

Sureassert UC 1.1.0 is now available for download!

New Features:

  • 0000002: [Performance] UC Engine now runs as embedded background server
  • 0000001: [Feature] Stubs can now throw exceptions

May 28th 2011

The initial release of Sureassert UC, v1.0.1, is now available for download!

Comments are closed.