Code Coverage for BPMN by Mark Foster

Introduction

I visited a customer recently who asked a very interesting question…. they’d been performing a series of stress tests of their Business Process Management project made up of many & complex Business Process Management processes and they wanted to know if there were any activities/paths in any of their processes which they hadn’t traversed… sort of like “Clover” for Business Process Management, This led me to thinking about Business Process Management auditing and cross-referencing this with the Business Process Management activities.

BPMN Code Coverage: The Theory

CBPM_01

Let us take a look at the relevant tables in the SOAINFRA schema….

BPM_AUDIT_QUERY

Providing that the audit level has been set sufficiently high (for example “Production” would do), this table stores details of all BPMN activities instantiated at any given time.

BPM_CUBE_ACTIVITY & BPM_CUBE_PROCESS

These tables are a static view of all activities in all deployed process at any given time.

Deployed Business Process Management activities not in BPM_AUDIT_QUERY

It became obvious that selecting all activities in the join of BPM_CUBE_ACTIVITY and BPM_CUBE_PROCESS for a given deployed process/composite which did not exist in BPM_AUDIT_QUERY during a given time period would highlight activities not invoked as part of out testing. As a result I ended up with a piece of SQL thus….

…i.e. which activities in processes “BpmClover” and “BpmCallable” were not traversed in the last 24 hours.

BPMN Code Coverage: The Practice

I needed a fairly simple process to test with, not too complex but with a good selection of activities, human tasks, boundary events, gateways etc… and ended up with the following (not BPMN best practices by any means)….
…i.e. a main process and a callable sub-process. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki Mix Forum

Unknown's avatarAbout Jürgen Kress
As a middleware expert Jürgen works at Oracle EMEA Alliances and Channels, responsible for Oracle’s EMEA Fusion Middleware partner business. He is the founder of the Oracle SOA & BPM and the WebLogic Partner Communities and the global Oracle Partner Advisory Councils. With more than 5000 members from all over the world the Middleware Partner Community is the most successful and active community at Oracle. Jürgen manages the community with monthly newsletters, webcasts and conferences. He hosts his annual Fusion Middleware Partner Community Forums and the Fusion Middleware Summer Camps, where more than 200 partners get product updates, roadmap insights and hands-on trainings. Supplemented by many web 2.0 tools like twitter, discussion forums, online communities, blogs and wikis. For the SOA & Cloud Symposium by Thomas Erl, Jürgen is a member of the steering board. He is also a frequent speaker at conferences like the SOA & BPM Integration Days, JAX, UKOUG, OUGN, or OOP.

Leave a comment