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:
- Create a new account at https://app.flowcov.io/
- Create FlowCov repository
- Use the FlowCovCoverageRule instead of the ProcessCoverageRule
- Upload the reports with our bash script locally or within your build pipeline
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.