Broker@Cloud verification and testing tool suite

Continuous quality assurance and optimization for cloud service brokerage

You are here: Broker@Cloud / Download /
Department of Computer Science

Download Centre

Introduction

This page grants access to the download bundle for the Broker@Cloud Verification and Testing Tool Suite. These tools were developed for the EU FP7 Broker@Cloud project, to support the continuous quality assurance objective.

The Broker@Cloud Verification and Testing Tool Suite is offered as Open Source software, under the Apache 2 License. This license allows you to download the source code for the tools and incorporate them in your own Cloud service development framework. The tools consume and produce XML files, which allows you to develop your own user interfaces to create XML input and render the XML output in whatever way you like. The software bundle provides one standalone Java Swing application for running all the tools; and another set of CGI programs for offering each tool individually as a web service (as demonstrated on this website). Please read the licensing terms before downloading or using the software.


Software Licensing Terms

The Broker@Cloud Verification and Testing Tool Suite is copyright © 2015 Anthony J H Simons and Raluca Lefticaru, University of Sheffield, UK. All rights reserved. DO NOT ALTER OR REMOVE COPYRIGHT NOTICES FROM THE SOFTWARE FILES.

The Broker@Cloud Verification and Testing Tool Suite (the "Software") is developed as an output of the European Union collaborative research project, Broker@Cloud: enabling continuous quality assurance and optimization in future enterprise cloud service brokers, FP7-ICT-2011-8 no. 318392, and is licensed under the Apache License, Version 2.0 (the "License"). You may not use the Software except in compliance with the License. You may obtain a copy of the License at:

Unless required by applicable law or agreed to in writing, Software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

The freedoms granted by the License to incorporate, redistribute, modify or extend the software apply only to foreground software contributed by the Broker@Cloud project; and not to any proprietary software, or background software incorporated from other sources, which may be offered under different terms of usage.

Please contact the Department of Computer Science, University of Sheffield, Regent Court, 211 Portobello, Sheffield S1 4DP, UK or visit www.sheffield.ac.uk/dcs if you need additional information or have any questions.


Software Dependencies

Before downloading the software, you need to have appropriate versions of the Java development tools (JDK) or the Eclipse IDE Java development framework. You also need to be aware of the various dependencies that exist between the Broker@Cloud Verification and Testing Tool Suite (VTTS) and other external libraries. Depending on your preferred means of launching the tools, the following prerequisites should be satisfied:

  • Command line usage: To run the tools individually on a Unix or Windows command line, we recommend that you have Java JDK 1.7 installed. You will also need the JAST library.
  • Java Swing demo GUI: To run the standalone Java Swing demonstration, we recommend that you have Java JDK 1.7 installed. You will also need the JAST and JSyntaxPane libraries.
  • Eclipse IDE integration: To run the tools within the Eclipse IDE, we recommend you have Java JDK 1.7 and Eclipse v4.0 (Luna) installed. You will also need the JAST and JSyntaxPane libraries.
  • JUnit test execution: To execute sample test suites generated in Java for Java service clients, we also recommend you install JUnit 4.0 (also available as a library within Eclipse).
  • Web service execution: To execute SOAP or REST web service clients, you will need to install additional libraries, some standard examples of which are included below for convenience (all are available from the original providers).

Download and Installation

The main download bundles will be archived at the Broker@Cloud GitHub, but can also be downloaded from this website. For convenience, the software is split into two bundles:

Download and unizp both bundles. The main bundle should contain the source code Java archive file brokeratcloud-vtts-1.0.jar. The library bundle should contain a root folder brokeratcloud-vtts-lib, containing a number of folders, each containing one or more library jar files.

Copy the contents of this library folder to somewhere on your machine from which your Eclipse, or JDK CLASSPATH, can access the library files as external jar files. Below, we will refer to the root of your library as lib, but you could use some other name.

If using Eclipse, create a new Eclipse project BrokerAtCloudVTTS (select: File -> New -> Java Project, and enter the project name). Import the main source code Java archive file brokeratcloud-vtts-1.0.jar. You should be able to see a collection of folders, which include:

  • src - the source code directory, containing Java sources
  • doc - the documentation directory, initially empty (see below)
  • xml - the xml directory, containing service specifications

You should also have some unresolved dependencies, showing as red checkboxes on on folders containing Java packages. In your Eclipse IDE, configure your build path (right-click on the project name BrokerAtCloudVTTS, then select: Build Path -> Configure Build Path -> Add External JARs) to include the following external jar-files provided in your root library folder (here called lib, but use the name you gave it):

  • lib/jast/jast-1.1.jar - the Java Abstract Syntax Trees marshalling library
  • lib/jsyntaxpane/jsyntaxpane-1.0.0.jar - JSyntaxPane code formatting library

Select OK to complete this, after you have added both libraries, and ensure that the red checkboxes have now disappeared.

The VTTS tools may now be used directly to analyse and verify the example XML service specifications provided in the /xml folder. You may also generate high-level test-suites, which are also stored as XML under the same folder. Please see the end-user guide for further information on how to use the tools. The generated documentation (see below) also has usage instructions for each tool.


Generating Documentation

Detailed navigable documentation may be created from the main source code bundle, using the javadoc tool provided as part of your Java JDK installation. Eclipse may not have a particular javadoc generator installed, and a dialog will ask you to point to your particular JDK installation.

Generate Javadoc documentation in Eclipse (left-click the project name BrokerAtCloudVTTS, menu select: Project -> Generate Javadoc). This will open a dialog where you must fill in the path to your JDK's javadoc program; and you should also tell Eclipse where to put the generated documentation. For this, use the directory set up within the project, ready to receive the documentation. These might look something like this under Windows:

  • C:\Program Files\Java\jdk1.7.0_80\bin\javadoc.exe
  • <path-to-eclipse>\Eclipse\BrokerAtCloudVTTS\doc

Select OK to complete this, after ensuring both dialog fields point to the right places, and you should see a log appear in the Eclipse output console as Javadoc is created. Note that VTTS code should generate no Javadoc warnings; but user-generated classes added subsequently may generate warnings, if not fully documented by the user. To view the documentation, open the file:

  • <path-to-eclipse>\Eclipse\BrokerAtCloudVTTS\doc\index.html

Selection of External Libraries

You are free to translate the high-level XML test-suites generated by our tools into whatever concrete format you need for your cloud service technology. For demonstration purposes, we have provided three concrete groundings, which all assume Java clients to invoke each service, and use JUnit as the technology to execute the tests. If you generate concrete JUnit test-driver classes using our demonstration groundings, the resulting test-drivers will have further dependencies, which may appear in the project as red checkboxes.

  • For testing simple Java clients (POJOs), you will only need to install JUnit 4.0, which is provided as part of the Eclipse distribution. Your generated test-driver will depend on a Java client to be tested.
  • For testing JAX-WS Java clients for SOAP web services, you will have used JAX-WS to create your web service and also to generate a Java client from the WSDL description of the service. Your generated test-driver will depend on a Java resource class and a Java interface to the service, in the style expected by JAX-WS.
  • For testing JAX-RS Java clients for REST web services, you will have installed a suitable REST service. Your generated test-driver will depend on the Apache Jersey reference implementation of JAX-RS; and also on the Google Gson library for unmarshalling JSON data.

We assume that it is easy for you to obtain JUnit, JAX-WS and JAX-RS libraries as part of your Java Enterprise Edition platform. For convenience we have bundled some of the other libraries in the second download bundle. This bundle contains the root folder: brokeratcloud-vtts-lib, which has the following structure:

  • gson - the Google Gson library for marshalling and unmarshalling JSON format data (needed for our generated REST clients).
  • jackson - the Jackson library for processing JSON format data in different ways (may be needed for future REST clients).
  • jast - the Java Abstract Syntax Trees library for marshalling and unmarshalling XML (needed by all verification and testing tools).
  • jersey - the Apache Jersey reference implementation of a JAX-RS REST web service (needed for our REST clients).
  • jsyntaxpane - the Google JSyntaxPane library for syntax highlighting of code (needed by the standalone Java Swing application).

Add the relevant jar-files to your build path as and when you need them (in Eclipse, this will be indicated by a red checkbox appearing on a generated Java file, when this file depends on types that are as yet unknown to the environment). See the instructions above on how to configure your build path.

Regent Court, 211 Portobello, Sheffield S1 4DP, United Kingdom