Aiding and Recognizing Full DMN Conformance

DMN promises something truly revolutionary to the practice of decision management: a tool-independent, directly executable decision language for business users. Vendor implementations that fulfill that promise are emerging, albeit slowly. Unfortunately, many proprietary decision modeling tools have appropriated the DMN name as a marketing decal without conforming to the spirit, much less the letter, of this promise. Officially, DMN Conformance Level 1 requires a tool only to be able to draw a Decision Requirements Diagram and something that looks like a decision table, but does not require these diagrams to be executable or even valid. CL1 models are essentially just drawings based on standard shapes. They do serve the purpose of engaging business users in creating requirements that can be implemented in the vendor's proprietary rule language, but to call them standards-based seems a bit cynical. Nevertheless, the majority of the 17 tools listed on the DMCommunity website as supporting DMN do no more than this.

The ability of a decision modeling tool to validate and execute its logic is not a nice-to-have. It's fundamental, must-have, and full DMN implementation supports this. Conforming to the standard means adopting the standard shapes and graphical structures - DMN is a graphical language, after all - as well as the standard expression language, FEEL, and the standard XML interchange format. To encourage and support vendors working toward full DMN conformance, a Technology Compatibility Kit (TCK) working group was established last year, supported by a growing group of vendors and practitioners: Fujitsu, RedHat, Trisotech, Method and Style, Camunda, Oracle, and OpenRules. The goal of the group is to assist and ensure conformance to the spec, by:

  1. Defining test cases and expected results
  2. Providing tools to run the tests, and
  3. Recognizing and publicizing vendor success

The TCK includes a set of DMN models submitted by members. Each model is provided in the standard XML format along with an associated XML test file that provides values for the input data and expected values for all decision nodes. DMN tools execute the test models with the test input data provided and compare with the expected results. The tool vendor then creates a CSV file listing the tests passed, failed, or skipped, and those results are published on the TCK website. The vendor’s DMN tool is tested as a black box; the TCK imposes no requirements or limitations on its design or runtime environment. Tool vendors are responsible for executing their own tests and reporting the results.

To assist in this, the TCK provides a java runner, free and open source, that reads the model files, invokes the DMN tool, and compares with the results. The TCK provides infrastructure for running the tests, but requires the vendor to implement the vendor-specific component of the invocation. Use of this runner is optional; it is provided only to facilitate automated testing for java-based DMN tools.

The TCK website is At the top you see a summary of the submitters to date:

Clicking Details shows you the results for a submitter. In this view, tests are aggregated by DMN feature or category.

The Tests tab lists the individual tests:

...and you can drill down to see the details of any particular test:

The TCK has already been extremely valuable to participants in clarifying ambiguous requirements of the spec and filtering out test cases that do not fully comply. Tools must be able to import the DMN XML file, but there is no constraint on their internal operation. While we only have 49 tests so far, we expect the number of tests to grow to the hundreds.

In sum, the TCK provides a way to help vendors become compliant with the standard, by clarifying and resolving ambiguities in the spec, promoting compatibility and interchange between tools. Today it allows vendors to demonstrate compliance with the standard, but ultimately it will provide a way for users to assess vendor compliance and support for specific DMN features they require. Joining the TCK is free. We meet by web conference every Friday at 9am PT, and new members are always welcome.