Skip to content

gematik/isik-testsuite


ISiK Test Suite

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Contributing
  5. License
  6. Contact

About The Project

This is a test suite for conformance tests of the ISiK specification modules, for both Stufe 3 and 5:

As default, Tests will be executed for the Stufe 5 of the specification. To run tests for Stufe 3 instead, you need to explicitly select the tag @Stufe3.

Release Notes

See ReleaseNotes.md for all information regarding the (newest) releases.

Getting Started

Prerequisites

To run the test suite you need the following components:

  1. This test suite, which you can get either by cloning this repository or downloading the latest release.
    • If you want to run the test suite using Maven, you need to have Java 17 and Maven installed on your machine. If you are behind a proxy, please make sure to configure the proxy settings for Java and Maven.
    • If you want to run the test suite using Docker, you need to have Docker and Docker Compose installed on your machine. If you are behind a proxy, please make sure to configure the proxy settings accordingly.
  2. An ISiK resource server (System under Test, SUT) that is compliant with one of the ISiK Stufe 3 or Stufe 5 specification modules.

Operating system requirements: cf. Tiger Framework OS requirements

Installation

Test environment

Configure the endpoint of the SUT using the configuration element servers.fhirserver.source in the tiger-isik-stufe3.yaml or tiger-isik-stufe5.yaml configuration file. Example:

servers:
  #...   
  fhirserver:
    type: externalUrl
    source:
      - http://localhost:9032

See examples for different configuration options in the tiger.yaml for ISIK Stufe 3, tiger.yaml for ISIK Stufe 5 or check the official Tiger documentation

Test resources

Each test case requires specific test resources to be present in the SUT. Create the following test resources in the SUT and put their corresponding IDs into the testdata/MODULENAME.yaml configuration file.

Example:

The @Patient-Read test case requires a patient resource to be created in the SUT by the user before the test case can be run. As the SUT would usually assign a new unique ID to each created resource, e.g. 244b0d72-fe47-4294-be48-7763895287c5, this newly assigned ID should be put into the testdata/basis.yaml configuration file. The precondition of the test case declares which configuration variable should be used - patient-read-id in this example:

...
patient-read-id: Patient-Read-Example
...

Test Selection

By default, all the mandatory tests for ISiK Level 3 are executed when running the testsuite. In Maven, this is achieved by activating the stufe3 profile, which is also the default when running the testsuite with Docker. To run all mandatory tests for ISiK Level 5, you can activate the stufe5 profile.

If you want to alternative tests to run, please refer to the Cucumber documentation for more information about tag expressions.

Currently supported tags are:

Tag Description
@Stufe3 Runs all tests for Stufe 3 of the specification. This is the default when running the testsuite with Docker.
@Stufe5 Runs all tests for Stufe 5 of the specification.
@Optional Runs all tests that are marked as optional in the specification. By default, these tests are not executed.
@Basis Runs all the tests from the Basis Module
@Terminplanung Runs all the tests from the Terminplanung Module
@Medikation Runs all the tests from the Medikation Module (only for @Stufe3)
@Vitalparameter Runs all the tests from the Vitalparameter Module (only for @Stufe3)
@Dokumentenaustausch Runs all the tests from the Dokumentenaustausch Module (only for @Stufe3)

Usage

Using Maven

You can run the test suite by defining the specification level and the tests to run using the TESTS_TO_RUN property.

Example:

# Run all mandatory tests for Stufe 3 (default)
mvn clean verify
# Run all mandatory tests for Stufe 5
mvn clean verify -Pstufe5
# Run only the Terminplanung tests for Stufe 5
mvn clean verify -Pstufe5 -DTESTS_TO_RUN="@Stufe5 and @Terminplanung"
# Run only the optional tests for Stufe 3
mvn clean verify -Pstufe3 -DTESTS_TO_RUN="@Stufe3 and @Optional"

Proxy settings

If using the tiger testsuite behind a proxy provide the proxy configuration at the following places:

  1. Maven configuration (official documentation.
  2. tiger-isik-stufe3.yaml or tiger-isik-stufe5.yaml (forwardToProxy configuration block)

Using Docker

The testsuite is also distributed as a Docker Image and can be instrumented using Docker Compose. Make sure that the Docker environment has a connection to the System-Under-Test ( configure docker proxy settings if needed).

To use the image, download and adjust the following files according to your test environment:

  • tiger-isik-stufe3.yaml or tiger-isik-stufe5.yaml (configuration of the test environment and test framework)
  • dc-testsuite.yml (configuration of the docker container)
  • testdata/*.yaml (configuration of test data per module)

Configuring Test Execution

The Test Suite runs environment variables to control which tests are executed. You can configure these in the dc-testsuite.yml file or pass them directly:

Variable Description Default
MAVEN_PROFILE Maven profile to activate (stufe3 or stufe5) stufe3
TESTS_TO_RUN Cucumber tags to filter test cases @Stufe3 and (not @Optional)

Example:

# Select the Stufe 5 tests and only run the tests from the Terminplanung module
environment:
  - MAVEN_PROFILE=stufe5
  - TESTS_TO_RUN="@Stufe5 and @Terminplanung"

Running Tests

Once all the configurations are done, you can start the test suite using the following command:

docker compose --project-name isik-testsuite -f dc-testsuite.yml up

For Docker, the Test Results will be stored in a Docker Volume, name tiger-testsuite-report. To access the results, you can copy them from the Docker Volume to your local machine using the following command:

docker run --rm -v tiger-testsuite-report:/report -v $(pwd):/local busybox cp /report/* /local/

Inspecting test results

Right after starting a test suite a browser window will open, which provides an overview of the testing progress. If using Tiger in Docker, please navigate to http://localhost:9010 manually. See Tiger Workflow UI for further information about the user interface. To run the test suite without the GUI, e.g. within a CI/CD pipeline, set the configuration element lib.activateWorkflowUi to false in the tiger-isik-stufe3.yaml or tiger-isik-stufe5.yaml configuration file.

After the test suite finishes the archived test results can be found in debug-report.zip file (take notice of the debug-report suffix) or target/site/serenity/index.html in case of a Maven run.

Warning Each test run deletes the reports of the previous run. Backup the created reports if you need them in the future.

Submitting test results as part of the ISiK certification process

The artifact target/test-report.zip is required to apply for the ISiK conformance certificate ( take notice of the test-report suffix). Please get an account to the TITUS platform and upload the report into the corresponding submission form.

Warning Each test run deletes the reports of the previous run. Backup the created reports if you need them in the future.

Contributing

If you want to contribute, please check our CONTRIBUTING.md.

License

Copyright 2025-2026 gematik GmbH

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.

See the LICENSE for the specific language governing permissions and limitations under the License.

Additional Notes and Disclaimer from gematik GmbH

  1. Copyright notice: Each published work result is accompanied by an explicit statement of the license conditions for use. These are regularly typical conditions in connection with open source or free software. Programs described/provided/linked here are free software, unless otherwise stated.
  2. Permission notice: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions::
    1. The copyright notice (Item 1) and the permission notice (Item 2) shall be included in all copies or substantial portions of the Software.
    2. The software is provided "as is" without warranty of any kind, either express or implied, including, but not limited to, the warranties of fitness for a particular purpose, merchantability, and/or non-infringement. The authors or copyright holders shall not be liable in any manner whatsoever for any damages or other claims arising from, out of or in connection with the software or the use or other dealings with the software, whether in an action of contract, tort, or otherwise.
    3. The software is the result of research and development activities, therefore not necessarily quality assured and without the character of a liable product. For this reason, gematik does not provide any support or other user assistance (unless otherwise stated in individual cases and without justification of a legal obligation). Furthermore, there is no claim to further development and adaptation of the results to a more current state of the art.
  3. Gematik may remove published results temporarily or permanently from the place of publication at any time without prior notice or justification.
  4. Please note: Parts of this code may have been generated using AI-supported technology.’ Please take this into account, especially when troubleshooting, for security analyses and possible adjustments.

Contact

Please open a GitHub issue or a ticket within Anfrageportal ISiK for any questions or feedback.

About

This repository contains a test suite for conformance tests of the ISiK specification

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages