docs/use-cases/test-management/README.md
[!IMPORTANT]
This use case description is a draft. It will be detailed and improved based on feedback from the community. If you have any feedback please contact us.
This guide describes how OpenProject can be used for lightweight test management by modeling test plans, test cases, and test runs using built-in features such as work package types, workflows, custom fields and project templates. It enables teams to manage and execute tests within the same environment they already use for project and requirements tracking.
This use case is intended for teams that:
This setup is not a replacement for full-scale test automation or advanced lab management tools, but rather a structured and integrated approach to test tracking.
[!NOTE]
At OpenProject, automated testing is a key part of our development process. It helps us detect bugs early and avoid regressions, especially as the codebase grows. We use continuous integration and deployment (CI/CD) to ensure that changes are tested and released quickly and reliably. You can see our automated test runs on GitHub Actions. In addition to automated tests, we also perform smoke tests and exploratory testing to cover areas that are harder to automate and to validate the overall user experience.
| Concept | OpenProject entity |
|---|---|
| Requirements | Work package (e.g., type Feature or User Story) |
| Test case | Work package type Test Case |
| Test run | Work package type Test Run (child of test case) |
| Test plan | Project (created from a template) |
| Version under test | OpenProject Version field on test runs |
| Defect | Work package (e.g., type Bug) |
Feature or User Story may relate to one or more Test Cases.Test Case defines a reusable test specification.Test Case has one or more Test Runs (child work packages).Test Run is specific to one software version.Test Plans are realized as individual projects per version, created from a reusable template.Bugs can be linked to failed Test Runs.This structure supports traceability from requirements to execution and defect reporting.
A new test plan project is created based on a predefined template using the create project form.
In the next step the newly created test plan is adjusted by specifying the test object. The easiest way is to select all work packages (CMD + A) -> right click -> bulk edit.
For all test runs which are not planned the status should be adjusted to something like Not planned.
Passed, Test failed, Blocked)As previously stated, agile boards (Kanban or Scrum) can help us track the test execution progress, i.e. visualize Test Runs by status (e.g., To Do , In Progress , Failed , Passed).
Comments and activity log (Activity tab) complement custom fields in the sense that they can also be used to record:
Activity tab is especially beneficial during the static testing phase. As a reminder, static testing is, among other things, verification of the test cases themselves (sort of testing of test case). Testers review the test cases/test runs searching for inconsistencies, errors, unclarity. Activity tab is a good place to discuss their findings, as well as track the complete and chronological history of a test.
Further tools can be used for reporting and metrics purposes with OpenProject:
As test cases evolve, we need to track changes and reuse them across different cycles. There are several possibilities to achieve this:
To support consistency and standardization, OpenProject allows administrators to define automatically generated subjects for work packages. This feature enables the use of predefined patterns for naming, including for work package types such as Test Case and Test Run. As a result, newly created test cases and test runs automatically follow a consistent naming structure. This approach helps eliminate manual errors, improves searchability, and enhances filtering capabilities.
The subject pattern can incorporate dynamic attributes from the test case/test run itself (or its parent). In this example, Test run's subject is derived from 2 fields: Parent's subject and Version.
Such subject is created upon save and is not manually editable.
Automatically generated subjects reduce manual effort and ensure that the name remains accurate and up-to-date if an attribute referenced in the subject pattern changes.
OpenProject enables seamless integration between software development and test automation workflows in GitHub and GitLab with planning and specification in OpenProject. Work packages can display information from GitHub pull requests and GitLab merge requests in a dedicated tab.
This tab lists all pull or merge requests linked to a work package, showing their status (e.g., Ready or Merged) as well as the current state (e.g., success or queued) of the actions configured to run for each request—whether in GitHub or GitLab. The results of these actions are also displayed within the tab.
The relationship between work packages and pull/merge requests is many-to-many: a single work package can be linked to multiple pull or merge requests, and a single pull or merge request can be associated with multiple work packages.
Integrating GitHub and GitLab with OpenProject offers several advantages for software development teams:
This section provides guidance on how to configure OpenProject for test management. It assumes familiarity with OpenProject administration features.
The work package type Test case can be configured so it shows the relevant information:
children)requires)Hierarchy)Here you find an example for a test case.
The work package type Test run can be configured so it shows the relevant information:
requires)related to)Here you find an example for a test run.
Define useful roles such as:
TesterTest ManagerAdd permissions such as:
Define custom fields that describe the test object such as:
hierarchy)user)New,In progressTest passedTest failedTest passed.