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
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.
BlogTwitterLinkedInFacebookWikiMixForum