views:

346

answers:

4

Does anyone know what unit testing tools are available when developing Tibco processes?

In the next few months I'll be working on a Tibco project and I'm trying to find any existing unit testing frameworks that might make the job easier to build with a TDD approach.

Thus far, the only one I've been able to locate is called BWUnit. It seems ok but its currently in beta and its commercial software. If possible I'd like to use an open source tool but as long as it is able to do a good job I'd be happy.

So does anyone know of any other unit testing tools for Tibco development?

Also, does anyone have any experience with BWUnit? How useful is/was it?

+1  A: 

There's an old framework called Raccoon built above Tibco ActiveEnterprise.

It has a component for unit testing called UiTest focused on RendezVous messaging.

It doesn't seem to have too much activity lately, though.

antispam
+2  A: 

I've had great success creating a soap interface layer for each of my processes (taking in the same arguments) and leveraging SoapUI to do all the testing driven from a few database tables.

Edit:

What I described is pretty much how BWUnit is working: it creates a web service interface around each of your processes (maybe with a little less manual work, but same concept.)

Test Input (SoapUI) -> Testable Interface (soap/ems/etc) -> Existing process -> Exit Interface -> Assertions (SoapUI)

You could do the testing within tibco itself, with files, RV, JMS, or any input for that matter, except you're writing all the test assertion code yourself rather than using an existing tool that has it all built in. You can then rely on SoapUI to generate all your JUnit reports etc.

If you want to get really fancy, you can add a soapui target to your build script to include the unit tests and/or functional tests for each build once it's deployed.

Nathan
What does that have to do with Unit Testing Tibco processes?
mezoid
See edit - not sure how it's not unit testing the processes. What's not making sense?
Nathan
Sorry, I didn't understand what you had initially written. You're update clarified a few things....
mezoid
+2  A: 

Deopends on the protocol used (what is used). Racoon and SoapUI has been mentioned. With them you can test on a "per module" level. That is Component or System tests. Especially usful for performance tests. However this is the most common way to test tibco components.

I will have a look at the BWUnit, looks interesting and integrated with CI Servers (I have built a similar tool in a project). A flaw of this approch may be that TIBCO systems usually are composed of different tools and not only BW, this means that Java components, C++ servers and so fort is used to for the total system.

There is also a Commercial tool called GHTester (http://www.greenhatconsulting.com/ghtester/)

If you are using RV you might have a look at http://www.rvsnoop.org/ to capture the messages in a replayable format for free (OSS tool that I started)

oluies
+3  A: 

For BW projects, I cooked my own Unit Test framework based on BW Processes itself. So the automated tests and validations are coded in the TIBCO project itself.

For AMX projects I recommend SOAPUI for automated testing of your services. However, I coded all the unit tests in the underlying language, in my case Java, using JUnit. The Implementation classes under the components reference each other directly in the unit tests, bypassing the AMX code doing the messaging.

GankBanger
This is what I've ended up having to do because I can't affort the expensive BWUnit licence.
mezoid
That solution works pretty good for us.The nature of the Designer Tester replaces the JUnit graphic interface nicely. I'm writing a detail description of this solution in my blog, once I finish it I'll post a link to it here.
GankBanger