Top Things to Know When Testing Your Camunda BPM Processes

Testing BPM applications requires that you change your testing mindset. Unlike most conventional applications, which we tend to think of as two-dimensional, BPM applications are n-dimensional.

With your traditional applications usually, there is just a UI and multiple integrations. Workflow applications, on the other hand, are a lot more powerful, but harder to test. You’ve got business rules, dynamic roles, security, multiple integrations, the workflow itself, timers, events, and retries. It can be overwhelming.

What are some of the problems you’re seeing out there?

First, with a lot of BPM engines, you’ve got an auto-generated UI, meaning that the ID elements for the various UI elements are automatically generated. Ok, good. Now, you can create Selenium or Cyprus tests for all of that, but the minute a change needs to be made, all of the elements on every page can be regenerated, meaning that the IDs are automatically regenerated, meaning that your QA team has to recalibrate their tests.

Now, Camunda applications don’t typically do that, because Camunda doesn’t really do UI, but there is a new form builder, even in Camunda, that might be taking things in that direction. Time will tell.

BPM applications will change over time

The main reason we do BPM in the first place is that we know and expect that our applications will change over time. That’s the whole point of BPM: you observe, modify, measure, and improve. Well, if your QA team has worked hard to figure every possible path for your application, and then you go and change it, they’ve got to start all over on that. One additional gateway at the beginning of the process can double the number of possible paths. There’s a cost to that, both in terms of money, but also in terms of time.

How to deal with change from a Testing perspective?

The answer is automated testing. You need a system that automatically tests every path in your process, every integration, every business rule, every subprocess, every timer and every event. You need it to bulk & load test, you need it to stimulate intelligent data, and you need it to be integrated into CI/CD pipeline because Process Applications are part of a larger picture.