Traceable Test Coverage for all process stakeholders

Dominik Horn is Co-Founder of FlowSquad — specialists in process automation and individual software development. You may know Dominik through his COVID-19 pandemic work, where FlowSquad teamed up with RemedyMatch, to implement Camunda as the backend of its logistics solution, quickly and accurately matching thousands of protective items with the people who need them each day. In this guest post, Dominik explains why FlowSquad has developed a platform that ensures traceability for all stakeholders and seamless integration into your CI/CD infrastructure:

In software development, test coverage is an essential indicator of the quality of an application. Only through comprehensive and systematic testing can errors be detected and fixed early on. For this reason, there are numerous test libraries for almost every programming language. Under Java, JaCoCo is a very well-known solution for reporting test coverage.

In order to make the test coverage visible and understandable for all stakeholders, some tools prepare and present the generated coverage reports. These include SonarQube or Codecov. The calculation of the test coverage can be integrated into the build pipeline by automatically uploading the reports.

From a technical point of view, BPMN is also a programming language, even though it follows a different goal and targets other stakeholders. For this reason, it is also essential to achieve high test coverage in automated BPMN processes. There is already a tool that allows the calculation of test coverage: Camunda BPM Test Coverage: https://github.com/camunda/camunda-bpm-process-test-coverage.

This library automatically generates a visual representation of the coverage from test cases as HTML files. However, the delivery of these reports to the different stakeholders, especially the non-technical process experts, is challenging because of its static format.

We needed additional requirements for various customer projects, that could not be implemented with this solution alone:

  • Approval of new process versions by process owners
  • Collaboration and transparency for all stakeholders
  • Traceability and history of test coverage
  • Enrichment of the reports with own data
  • Presentation along with commits and branches

For these reasons, we developed FlowCov – a platform that covers precisely these requirements and supports Camunda BPM. It allows you to upload the generated reports within your own build pipeline, prepare them visually, and make them available to all stakeholders.

From the very beginning, we decided to create a structure based on the familiar way of working with Git, so FlowCov also has repositories, branches, and commits. For each commit, reports can be uploaded that show the test coverage at the given time. Using this data, an overview of the development of the coverage can be created. Test coverage can be displayed not only at the commit level, but even for individual models, test classes, and methods.

Getting started with FlowCov is very easy and can be completed in four steps:

  1. Create a new account at https://app.flowcov.io/
  2. Create FlowCov repository
  3. Use the FlowCovCoverageRule instead of the ProcessCoverageRule
  4. Upload the reports with our bash script locally or within your build pipeline

We have published a step-by-step guide at https://flowcov.io/docs. A detailed example including the GitHub action pipeline can be found here: https://github.com/Nlea/NY-Cheesecake-process

FlowCov is currently available in a public beta version. Our goal is to create a platform that involves all stakeholders, in collaborative process development. To achieve this goal and take the community’s ideas into account, we will make FlowCov permanently available in the cloud for free. An on-premise installation in your own data center is also possible to meet the highest data protection requirements. A separately hosted (dedicated) installation in the cloud is also available.

We are continually working to improve FlowCov and add new features. If you have any questions, ideas or feedback, you can always join our Slack Channel: https://join.slack.com/t/flowcov/shared_invite/zt-gyh1d6d1-esd4cAZJnLuFObsiH7OCNA

These are the next steps on our current roadmap:

  • Full support for DMN
  • Support for Call Activities
  • Visual simulation of test methods

We are looking forward to the feedback and the ideas of the community.

Don’t miss Dominik demonstrating FlowCov’s unique test coverage, with Camunda Consultant Nele Uhlemann at CamundaCon LIVE 2020.2 on October 9th. And stay in touch with Flowsquad on Twitter, GitHub or email — info@flowsquad.io.

  • Creating a Frictionless Enterprise: Five Fundamentals

    What if you could remove all of the friction in your enterprise, allowing for a streamlined, perfectly aligned flow of information across both internal and external stakeholders? Manuel Sevilla — Chief Digital Officer of Business Services at Capgemini — recently shared his thoughts on this topic at CamundaCon LIVE 2020.2, identifying the framework businesses must adopt to embrace the frictionless attitude. Let’s take a closer look at the five fundamentals enterprises should consider when trying to increase efficiency, get to market faster, and provide users with an enhanced experience.  1. Hyperscale Automation To improve your enterprise’s efficiency, focus on delivering a touchless process — one that uses automation in a way that makes it easier for the end users (and...

    Read more
  • Should data be embedded in business processes?...

    In October, I had the opportunity to lead a session at Camunda Unconference. This was a rather unique event, with an “unconference” format designed specifically for the community; it was most conducive to great peer-to-peer discussions, and exhange of ideas, experiences and learnings. What was also interesting was that the topics for the sessions were sourced from within the community, and each topic was voted in to a final shortlist. The sessions themselves were discussion-led, to encourage collaboration and creativity. Data in Process I had voted for “Data in Process” as one of the topics; it has always intrigued me, and needless to say, I was thrilled at the opportunity to lead the session! I have been consulting for customers building...

    Read more
  • Testing Process Dependencies

    Welcome to the next post in our blog series: “Treat your processes like code – test them!” You can find the last post: “Testing entire process paths” here. Today’s topic is “Testing process dependencies”. For the execution of a model, there are often additional resources required. This might be source code or the dependency on other models. But how can we deal with this when testing our models? In this post we will take a closer look at the following dependencies: Models: Dependencies to BPMN diagrams referenced by the executed model Code: Dependencies on source code referenced in the BPMN. We will get to know another library that will help us with testing: camunda-bpm-mockito. The examples for this blog post...

    Read more