Clear Tests for Jira

Plan, run and trace tests in Jira. Write test cases, run them step by step against a version or sprint, report bugs as Jira work items, and show which requirements are covered. Your test data stays inside Atlassian: the app runs on Atlassian and sends nothing to outside services.


Get started

  1. Install the app from the Atlassian Marketplace.
  2. Open a Jira project and choose Tests in the tab bar at the top of the project (under More if the bar is full). You see five tabs: Tests, Cycles, Reports, Import & CI and Settings.
  3. Select New test, type a title, add a step with an expected result, and save. The test gets a key like PROJ-T1.
  4. Open the Cycles tab, select New cycle, add your test to it and select Run. Choose Pass or Fail for each step. If a step fails, select Create bug.
  5. Open the requirement work item. In the right-hand column, expand the Tests section (it starts collapsed each time). Under Test coverage you see your test and its latest result.

You can do this with no documentation in a few minutes. The rest of this page explains each part.

If the page says "Clear Tests is setting up. Try again in a minute.", the app is creating its storage after an install or an update. Wait a moment and reload.

Who can do what

Clear Tests follows Jira permissions in the project:

You canIf you have
See tests, cycles, reports and the coverage panelBrowse projects
Create and edit tests, run cycles, create bugs, link testsEdit work items
Change project settings, create and revoke CI tokensAdminister projects (project admin)
Open the administration pageJira administrator

Without the permission, a button is hidden or the page shows a short message such as "You do not have access to do this in this project."

You can remove a link from a work item if you can browse the test's project and you either have the Link work items permission on the work item's project or can edit work items in the test's project. A link from a test in a project you cannot browse can't be removed by you, the same as with Jira's own links.

Tests tab

Create and edit a test

Select New test. Fields:

  • Title, Objective, Preconditions
  • Type: Manual, Gherkin or Automated
  • Status: Draft, Ready or Deprecated
  • Priority: Low, Medium, High or Critical
  • Labels (separated by commas), Estimated minutes, Automation key, Folder
  • Steps: for each step an Action, Test data and Expected result. Use Up, Down and Remove to arrange steps and Add step to add one.
  • Gherkin: for a Gherkin test, write the scenario here.
  • Parameters: a table of values. Use Add column, Add row, Remove row and Remove column. Each row runs the test once with those values. A table can have up to 20 columns and 100 rows with unique column names.

When you open an existing test, a Hints list appears under the steps if there is something to point out. It helps you write better tests: a step without an expected result, a vague step, another test in the folder with the same title, no work item linked, or a linked work item that changed.

Try it:

  1. Select New test and type a title.
  2. Add two steps and give each an Expected result.
  3. Select Save. The window closes and the new test shows in the list. When you save an existing test, the text "Saved." appears at the top of the window.

If someone else saved the test while you were editing it, Clear Tests asks you to reload so nobody overwrites the other's work.

Version history

Every save creates a new version. Open Version history in the editor to see earlier versions, each with its save time. Select Compare to see what differs from the current test: the changed fields (title, objective, preconditions, type, status, priority, labels, Gherkin text, estimated minutes, automation key and parameters) and the steps that come back, are removed or change, with the text of the version and of the current test side by side. Select Restore to bring one back; you are asked to confirm first. The restored text becomes the newest version, and older versions stay in the history. A cycle item remembers the version of the test it was added with, so a result always shows the steps that were run.

Try it: edit and save a test twice, open Version history, select Compare on the first version and then Restore.

Folders

The Folders panel organizes tests in several levels. Select New folder, type a Folder name and select Create. Use Rename, Move to... and Delete on a folder. Only an empty folder can be deleted. A folder cannot be moved into itself or one of its subfolders. All tests shows everything and No folder shows tests outside any folder.

Search, filters and bulk actions

Search by Search title or objective. Filter by Status, Type, Priority, Label, AI drafts and Needs review. Select Clear filters to reset. The list shows 50 tests per page; use Next and Previous.

Select tests with the checkboxes (or Select all on this page) to use the bulk actions: Move to..., Set status, Add label, Add to cycle and Delete.

Trash

Delete moves tests to the trash. Open the Trash filter to see them and select Restore. Tests in the trash are deleted for good after 30 days.

Cycles tab

A test cycle is a run of a set of tests, for example for a version, a sprint or a regression round. Cycle keys look like PROJ-C1.

Create, edit, clone, close, delete

  • New cycle opens the form: Name, Description, Fix version, Sprint, Environment, Start date, End date. A new cycle is Planned; it becomes Active when you save the first result, and Done when you close it.
  • Edit changes the cycle.
  • Clone copies the cycle with its tests but without results, for example for a regression round.
  • Close cycle locks the results. You cannot record results or add tests to a closed cycle, but you can still link bugs.
  • Delete removes the cycle and all its results for good, after a confirmation.

Add tests

Select Add tests, then Add from:

  • Folder – all tests in a folder
  • Label – tests with a label
  • Search – by title or objective; select tests and choose Add selected
  • Work items in a version – finds the requirement work items in the version and adds the tests that cover them

Only the first 50 tests are shown in a search; narrow the search to see the rest.

Assign

Select items in the table, choose a person under Assign to and select Assign selected. Clear assignee removes it. Filter the table by Assignee (Me, Anyone or Unassigned).

Run a test

Select Run on an item (or Run first test). On a work item, the Test coverage panel also has Run next to each test: it opens the project page at the test's latest active cycle. If the test is in no active cycle, the panel shows Not in an active cycle. The runner shows one test at a time with its Preconditions, Objective and each step with Action, Test data and Expected result.

  • Choose Pass, Fail, Block or Skip for each step. The result of the test is calculated from the steps.
  • Pass all marks all steps as passed.
  • Type an Actual result and a Comment.
  • Use Start timer, Stop timer and Reset to record Time.
  • If the test has a parameter table, each row is an iteration ("Row 1 of 3: user = admin"). Each iteration has its own result.
  • Save result stores the result. Next test and Previous test save first, so you do not lose results. If you close with unsaved changes, you can choose Save and close or Discard.

The statuses are fixed: Not run, In progress, Passed, Failed, Blocked and Skipped.

Try it:

  1. Open a cycle with two tests and select Run first test.
  2. Select Pass on step 1 and Fail on step 2.
  3. Select Save result, then Next test.

Bugs

On a CI cycle with failures, select Create bugs for N new failures to create one bug for each failed test that has no open bug yet. Each bug is created as you and links to the work items the test covers. One run creates up to 50 bugs. The bugs are created in steps while you keep the page open, and a line shows how many are done. If there are more than 50 new failures, the message says how many are left and you run it again. Running it twice never creates a second bug for the same failure.

For a single result, on a failed step or a failed test, select Create bug. If the test has steps, the dialog lets you choose the Failed step (a step, or The whole test). The dialog shows the Summary, Steps to reproduce, Expected and Actual that the bug will get; you can add your own text in Notes. The new work item is created as you, with the headings Preconditions, Steps to reproduce, Expected, Actual, Environment and Test cycle, and a link to the cycle. It is linked to the requirement with a "relates to" link.

  • Link existing bug: type the work item key and select Link.
  • Bugs in this cycle lists every bug that is linked to the cycle.
  • The work item type for bugs is set in Settings (default: Bug, or the first type that is not a sub-task).

Reports tab

Views: Progress, Coverage, Flaky tests, AI drafts, History and Export.

  • Progress: choose a cycle. You see results by status, by assignee and the tests first run per day.
  • Coverage: choose a Scope (Version, Sprint, Epic key or JQL query) and select Show coverage. You get a table of work items with their tests, status and bugs, and a Readiness summary: Covered by a test, Passed and Open bugs. Use Only count results from this cycle or the version option to narrow it. At most 1000 work items are checked; narrow the scope for more.
  • Flaky tests: tests whose last results switch between passed and failed (they switched between passed and failed in at least 3 of the last 10 runs).
  • AI drafts: how many tests came from the AI, how many you have accepted, and AI drafts still in Draft that wait for review.
  • History: find a test and see all its results with time, result, source (manual or CI), who ran it and the cycle.
  • Export: Export tests, Export cycle results and Export coverage matrix prepare a CSV text. Select the text, copy it (Ctrl+C or Cmd+C) and paste it into a spreadsheet or a .csv file. The CSV can be imported again.

Import & CI tab

The tab has two views: Import tests and CI. To get your tests out as CSV, use Reports > Export.

CI setup

Send JUnit XML or Cucumber JSON reports from your build with one curl line. Each project has its own tokens; a token works only for its project. Only project admins see the CI address and tokens.

  1. Open Import & CI and CI, then select Create token.
  2. Type a Token name (for example the name of the pipeline) and create it.
  3. Copy the token now. It is shown only once and cannot be read again. Store it in your CI system as a secret named CLEARTESTS_TOKEN.
  4. Copy the CI address (shown on the page), choose your CI system under Pipeline examples and paste the snippet in your pipeline. Change report.xml to the path of your report. For Cucumber JSON send the .json file in the same way.

The address accepts these optional parameters: cycle (cycle name, default "CI" or "CI – branch name"), build, branch, commit, version and environment.

environment and version are shown on the cycle. build, branch and commit are stored with each run but are not shown on screen. A cycle that a build creates appears in the Cycles list and in Reports after you reload the page. A test created from a CI report is saved with the status Ready.

Results are matched to tests by the automation key (class.name). A test that does not exist is created as an Automated test in the folder Automated/<suite>. You can turn that off in Settings. CI never creates Jira work items. Reports are limited to 5 MB and 20,000 results per call, and one token can send 60 calls a minute. If the cycle is closed you get an error and must choose another cycle name. A report with more than 20,000 results is refused at once. The Atlassian platform limits how many uploads run at the same time, so a pipeline with many parallel jobs should upload one report at a time or retry when a call fails. A project can store about 100 MB of CI results per day (UTC); beyond that the upload answers 429 with a daily-limit message, and the pipeline should retry the next day. When the site's app storage is 90 % full, uploads and file imports stop (507) until space is freed by shortening the CI retention or deleting cycles.

The five snippets, as shown in the app (replace the address with yours):

GitHub Actions:

- name: Send test report to Clear Tests
  if: always()
  env:
    CLEARTESTS_URL: <your CI address>
    CLEARTESTS_TOKEN: ${{ secrets.CLEARTESTS_TOKEN }}
  run: |
    curl -X POST "$CLEARTESTS_URL?cycle=CI&build=${{ github.run_number }}&branch=${{ github.ref_name }}&commit=${{ github.sha }}" \
      -H "Authorization: Bearer $CLEARTESTS_TOKEN" --data-binary @report.xml

GitLab CI:

send-report:
  stage: .post
  when: always
  variables:
    CLEARTESTS_URL: <your CI address>
  script:
    - 'curl -X POST "$CLEARTESTS_URL?cycle=CI&build=$CI_PIPELINE_IID&branch=$CI_COMMIT_REF_NAME&commit=$CI_COMMIT_SHA" -H "Authorization: Bearer $CLEARTESTS_TOKEN" --data-binary @report.xml'

Bitbucket Pipelines:

- step:
    name: Send test report to Clear Tests
    script:
      - export CLEARTESTS_URL="<your CI address>"
      - 'curl -X POST "$CLEARTESTS_URL?cycle=CI&build=$BITBUCKET_BUILD_NUMBER&branch=$BITBUCKET_BRANCH&commit=$BITBUCKET_COMMIT" -H "Authorization: Bearer $CLEARTESTS_TOKEN" --data-binary @report.xml'

Jenkins:

post {
  always {
    withCredentials([string(credentialsId: 'cleartests-token', variable: 'CLEARTESTS_TOKEN')]) {
      sh '''curl -X POST "<your CI address>?cycle=CI&build=$BUILD_NUMBER&branch=$BRANCH_NAME&commit=$GIT_COMMIT" \
        -H "Authorization: Bearer $CLEARTESTS_TOKEN" --data-binary @report.xml'''
    }
  }
}

Azure DevOps:

- script: |
    curl -X POST "$CLEARTESTS_URL?cycle=CI&build=$(Build.BuildNumber)&branch=$(Build.SourceBranchName)&commit=$(Build.SourceVersion)" \
      -H "Authorization: Bearer $CLEARTESTS_TOKEN" --data-binary @report.xml
  displayName: Send test report to Clear Tests
  condition: always()
  env:
    CLEARTESTS_URL: <your CI address>
    CLEARTESTS_TOKEN: $(CLEARTESTS_TOKEN)

To stop a pipeline, select Revoke on its token. Pipelines that use it stop working at once.

You can also upload a report by hand under Upload a report by hand (up to 5 MB), with the same fields (Cycle name, Build, Branch, Commit, Version, Environment).

Try it:

  1. Create a token and copy it.
  2. Run curl -X POST "<your CI address>?cycle=Smoke" -H "Authorization: Bearer <token>" --data-binary @report.xml.
  3. Open the Cycles tab. The cycle "Smoke" has the results.

Import tests from another tool

Select Import tests, choose a File layout (or Detect from the file) and choose your CSV file. Up to 10 MB and 10,000 rows. Clear Tests recognizes these layouts: Xray, Zephyr Scale, Zephyr Essential, TestRail and Generic CSV.

How to move over:

  1. Export your tests to CSV in the old tool. Keep that export as an archive of your old tool. Clear Tests does not delete or change anything there.
    • Xray: use the test export (Issue Key, Test Type, Test Summary, Test Priority, Action, Data, Result, Precondition and so on).
    • Zephyr Scale: export the test cases to CSV (Name, Objective, Precondition, Test Script steps and Expected Result).
    • Zephyr Essential: export the tests to CSV.
    • TestRail: export the cases to CSV (Title, Section, Steps, Expected Result and so on).
    • Any other tool or a spreadsheet: choose Generic CSV. If Clear Tests does not recognize the header row, it shows Choose the columns so that you say which column holds the title, steps, expected results and so on. Only the title is required.
  2. Choose the file. Clear Tests checks it in the background and shows the Import plan when it is ready: how many tests will be created, updated, skipped as duplicates, and rows with errors. A small file is ready in seconds; a large one can take a few minutes, and you can keep the page open meanwhile.
  3. Read Rows with errors and Duplicates, skipped. The row numbers are spreadsheet rows, as you see them in Excel or Google Sheets, so the header is row 1 and the first test is row 2.
  4. Select Apply import. A large file continues in the background. When it ends, the message adds up: created, updated, unchanged, skipped, duplicates and rows with errors. The Tests and Cycles tabs then reload by themselves.

Rules: tests with a key that already exist are updated, not duplicated, so you can import the same file again after fixing it. A test without a key whose title is the same as an existing test in the same folder is skipped as a duplicate. Folders are made from the path in the file. Tests are linked to work items only through the column named below. A column with another name is ignored without a warning (for example, in a Generic CSV a column named Issue Key is not used). Keys that do not exist or that you cannot see are listed and not linked.

LayoutColumn (header) that links work items
XrayRequirements, or Linked Issues, Requirement, Covers (Issue Key is the key of the test itself)
Zephyr ScaleIssue Links, or Coverage (Issues), Coverage
Zephyr EssentialLinked Issues, or Issue Links, Requirements
TestRailReferences, or Defects
Generic CSV and pasted rowsLinked Issues, Issue Keys or Requirements; with Choose the columns, the field Work item keys

Header names are not case sensitive. A cell can hold several keys.

To paste from a spreadsheet instead, use Paste from a spreadsheet: copy the cells from Excel or Google Sheets, including the header row, paste them and select Check pasted rows. Large pastes are checked in the background in the same way.

Export as CSV

There is no file download button. Open Reports > Export, choose Export tests, Export cycle results or Export coverage matrix, and copy the CSV text. The export of tests can be imported again.

AI

Clear Tests can draft and review tests with the Forge LLM that runs inside Atlassian. AI only makes drafts. Nothing is saved until you select Accept, and accepted tests are saved as Draft with an AI draft badge until you set them to Ready.

  • Generate tests (on the work item panel): 3 to 10 tests with positive, negative and edge cases from the summary, description and acceptance criteria. The titles of tests already linked are sent too, so the AI does not repeat them.
  • Find gaps: scenarios that are missing, based on the requirement and the existing tests.
  • Generate for child work items (on an epic): one job per child work item, after a confirmation. If some jobs are still running, select Check again.
  • Quality check (in the test editor): fixed rules plus suggestions for improvement.
  • Convert to Gherkin and Convert to steps (in the test editor): fills the editor; you save it.
  • Summarize failures (AI) (on a cycle): likely causes and a suggested bug text, which you can use in a bug.

Choose Accept, Accept selected or Accept all for drafts, or Discard. Unsaved drafts expire after 24 hours, so you can come back and select Check again until then. They are removed automatically, normally within a day and at the latest within about two days.

Quota: by default 100 AI actions per site per calendar month (UTC). A Jira administrator can lower the limit or turn AI off on the administration page. When the limit is used up, the app says "The monthly AI limit of this installation is used up." and everything else keeps working.

Rovo agent

The Clear Tests Rovo agent uses your organisation's Rovo credits, not the Clear Tests AI quota. It can: show test coverage for a work item or a version, list failing tests, summarize a cycle, save test drafts it wrote (saved as Draft), create a cycle and add tests to a cycle. It returns test keys and titles only from projects you can browse, and only counts for other projects.

MCP for coding agents (Preview)

The same actions can be used from MCP clients. This uses a Preview module from Atlassian. The tools act with your own permissions, so you can only reach what you can already reach in Jira.

Custom agents may run create actions, such as creating a cycle, without asking you first, depending on how the agent is set up. The Clear Tests Rovo agent asks first. Every tool acts with your own permissions.

  • Custom agents in Rovo Studio: add the tools to your agent with Tools > Add tools > Connected apps > Clear Tests. No extra setup is needed.
  • Outside MCP clients (for example a coding assistant): a site or org admin first turns the tools on in Atlassian Administration > Apps > Sites > your site > Connected apps > Clear Tests for Jira. The client then connects to https://mcp.atlassian.com/forge/80334bcb-a631-479b-95c3-f58250debe13, and you approve access when asked.

Automation

Three actions are available in Jira Automation: Create test cycle (from a version, a sprint or a JQL query), Add tests to cycle (tests that cover the work items found by a JQL query) and Close test cycle.

Workflow validators (Preview)

Two validators can stop a transition. Add them to a transition in the workflow editor:

  • Linked tests passed: blocks the transition if a linked test has a latest result of Failed or Blocked, or has not been run.
  • Linked tests passed in the fix version: the same, but only looks at the test cycles of the work item's fix version.

The message says how many tests failed or were not run, and asks for at least one linked test or a fix version when they are missing. These validators use a Preview module from Atlassian.

My tests

My tests is under Apps in the Jira sidebar (Your apps). It lists the items assigned to you in open cycles, across projects. Select Run to open the item in its cycle.

Dashboard widgets

Two widgets are available. Each works on classic Jira dashboards (as a gadget) and on the new Jira dashboards (as a widget). Select Edit on the gadget or widget to set it up. On a classic dashboard, select Save when you are done.

  • Test cycle progress: choose a Project and a Cycle. Shows passed, failed and not run.
  • Requirement coverage: choose a Project, then A version or A JQL query.

Settings (project)

The Settings tab is for project admins and Jira administrators. Others see it read-only.

  • Default issue type for bugs: used by Create bug. Leave on Automatic to use Bug.
  • Create automated tests from CI reports: turn off to import CI results for existing tests only.
  • Tests for work items in this project live in: choose another project if your tests are kept elsewhere.

Administration page (Jira administrators)

In Jira settings (the gear icon), open Marketplace apps and then Clear Tests:

  • AI: Use AI to draft tests and review quality and Monthly AI actions (0 turns AI off). Shows the usage this month.
  • CI results: Keep CI results for (months). 0 keeps everything. Older CI run history is removed every day; the latest CI result of each test stays on its cycle until the cycle is deleted. Manual results are never removed.
  • Storage: how much of the app's storage is used. A warning shows when it is almost full.
  • CI tokens: all tokens on the site, with project, name, created and last used.
  • Maintenance: Recompute coverage recalculates the numbers on work items. Remove coverage data from work items removes the property (see Uninstall).
  • What Clear Tests stores: a short privacy summary and a link.

Licensing

Clear Tests is licensed per user through the Atlassian Marketplace. If the license is not active, the app turns read-only with the message "Your Clear Tests license is not active. You can still view and export your tests." You can still view everything, export CSV text, revoke CI tokens and remove coverage data. Creating, editing, running, linking, AI and CI uploads need an active license. Your data is never deleted because a license ends.

Privacy and data

What Clear Tests stores, and where:

  • Tests, folders, version history, cycles, results, actual results, comments and links are stored in the app's own storage inside Atlassian (Forge). They are deleted when the app is uninstalled. Trashed tests are deleted after 30 days.
  • The account ID of the person who created, changed, was assigned to or ran an item is stored with the row. Names and avatars are read from Jira when shown and are not stored. Account IDs are reported to Atlassian's Privacy API every week, and the value is cleared for closed accounts.
  • Clear Tests is not made to measure or rank employees. It shows no statistics per person apart from "assigned to me" and progress within one cycle.
  • CI tokens are stored only as a one-way hash with a name and dates. The token is shown once.
  • CI messages are kept to 2 KB per result. With a retention period, the CI run history and result log older than that are removed every day. The latest CI result of each test, with its message, stays on its cycle until you delete the cycle.
  • A cycle export contains the account IDs of assignees and of the people who ran tests.
  • On each linked work item the app writes a small property called cleartests with the number of linked tests and their status.
  • Settings and the monthly AI counter are stored as app settings.
  • AI uses the Forge LLM inside Atlassian. For Generate tests the app sends the work item summary, description and acceptance criteria and the titles of linked tests. Find gaps sends the same plus the steps of linked tests. Quality check and Convert to Gherkin / Convert to steps send the text of that one test. Summarize failures (AI) sends the failed test titles, expected and actual results and CI failure messages. No people fields (reporter, assignee, names, account IDs) are sent. Unsaved AI drafts expire after 24 hours and are removed automatically, normally within a day and at the latest within about two days.
  • While you use AI or import a file, short-lived records exist in the app's storage: AI jobs (with the account ID of the person who started them and the drafts), uploaded file text, import plans and import status. They expire after 24 hours and are removed automatically, normally within a day and at the latest within about two days. Nothing is sent to other services. The app has no outgoing network access at all.
  • The app logs only IDs, counts and status codes, never test text, work item text, tokens or account IDs.

Read more at https://www.helkrypt.no/privacy/apps and https://www.helkrypt.no/dpa.

Uninstall

When you uninstall Clear Tests, Atlassian deletes the app's storage. Before that, the app removes the cleartests property from all work items (Jira does this in the background and it can take a few minutes). You can also do it yourself first on the administration page with Remove coverage data from work items: it removes the property from all work items, and JQL searches such as testStatus = failed stop matching until you select Recompute coverage. Tests, cycles and results are not touched by that action.

To keep your tests, use Reports > Export first. If you moved from another tool, you also still have that tool's export.

Support

Email support@helkrypt.no. Tell me the Jira site, the project key and what you did, and include any error text. Please do not send test content you do not want me to see.

FAQ

Are my tests Jira work items?

No. Tests are stored in the app's own database inside Atlassian, so they don't fill your project with work items. You link a test to the requirement it covers, and bugs are normal Jira work items.

Can I move over from another test tool?

Yes. Export your tests to CSV from the old tool, and import the file under Import & CI. Clear Tests recognizes the Xray, Zephyr Scale, Zephyr Essential and TestRail layouts and a generic CSV with column choice. Old test runs are not imported: keep the export from your old tool as an archive.

Does anything leave Atlassian?

No. The app has no outgoing network access. AI uses Atlassian's Forge LLMs, which run inside Atlassian. Your CI sends reports to the app, not the other way round.

Does AI change my tests?

No. AI only makes drafts. Nothing is saved until you select Accept, and accepted tests carry an AI draft badge until you set them to Ready. An admin can set a monthly limit or turn AI off.

What happens if the license ends?

The app turns read-only. You can still view and export everything. Your data is not deleted.

What happens if I uninstall the app?

Atlassian deletes the app's storage. Before that, the app removes its small cleartests property from all work items. Export your tests as CSV first if you want to keep them.

Does it work on mobile?

Not supported.