Saturday, November 22, 2008

Testing with Oracle BPEL - part 1

One of the biggest challenge with the BPEL language is the unit testing.
How can I be sure that my tiny change in my BPEL process won't affect the global behaviour of my entire process ?

Test Driven Development
In test-driven development technique aka TDD, everything is based on tests. We create first the test, check if the new test fails when we run it, then write some code, and then check if the test succeed. In Java/J2EE, this technique is very powerfull and is used in extrem programming methodology.

Testing with Oracle BPEL
I recently find out Oracle BPEL provides a test framework (actually I knew it, but I never tried it because I wasn't very confident...).
This framework will enable us to use an approach very similar to TDD. In JDeveloper, we'll have our process design as usual and others windows with our tests design.

These next features are available :
  • emulate inbound and outbound messages (synch and asynch processes)
  • assert some values and XML data
  • assert the number of execution of an activity

With these functionnalities, we are now able to do :
  • lots of unit tests on our BPEL processes
  • integration tests

As in JUnit concept, all the tests can be unified in a test suite to run all tests together.
All the tests will be packaged with the BPEL suitcase.