Welcome to BPELUnit!


BPELUnit is a testing framework for real-life, automated, repeatable white-box unit testing of BPEL compositions. BPEL stands for Business Process Execution Language and is an XML-based language for composing, or orchestrating, Web services. BPEL programs are called Business Processes.

The BPELUnit framework allows testing of BPEL processes by specification of a so-called test harness for the BPEL process. The test harness consists of sequences of input/output operations which are executed by the framework on behalf of the client and every partner of the BPEL process, thus forcing the BPEL process to execute a certain path. A test case passes if all operations have been carried out successfully in a test run.

BPELUnit is written in Java and was designed as an extension of the xUnit family into the realm of Web service composition. It is therefore built around the same principles of test cases, suites, results, runners, and fixtures.

Download the BPELUnit 1.0 Release at SourceForge.


Getting Started

To start with, the Installation section contains a step-by-step installation tutorial for BPELUnit. The Using section contains online help files for the BPELUnit command line client, Ant task, Eclipse client and tool support.

As a real-life example, the Example section walks you through executing and testing the Meta Search BPEL process which comes with BPELUnit, and also explains how to use the Oracle JDeveloper and BPELUnit together.

Finally, the Source/Extending section contains more information about the extension points of BPELUnit, and how to setup an environment for working with the BPELUnit source code.


More Information

More background information about BPELUnit can be found in the paper Towards a BPEL unit testing framework (10 pages; July 2006) or the thesis Design and Implementation of a Framework for Testing BPEL Compositions (PDF, 110 pages, September 2006).

BPELUnit was programmed by Philip Mayer in spring to summer 2006 at the University of Hannover as part of the SOA project.