All eazyBI for Jira eazyBI for Confluence Private eazyBI

Zephyr Squad requirement coverage matrix
eazyBI for Jira

Overview

The Zephyr Squad requirement coverage matrix report requires data imported from the Zephyr Squad Test Management for Jira app.

Zephyr Requirement Coverage report represents an overview of requirements, their development, and testing status.

Requirement issues are imported in Jira Data Center (and Server) versions by default but are unavailable on Jira Cloud. This example includes additional steps to build a similar report also on Jira Cloud.

How to build report

On report rows, set Zephyr Squad Requirement dimension. Note that the Zephyr Squad Requirement dimension has only those requirement issues with at least one test related to it.

In the case of Jira Cloud, the Zephyr Squad Requirement dimension is not available by default. However, importing issue links can create a similar dimension Zephyr Squad Linked Requirement. The advanced settings for the requirement issue dimension might look like below:

[jira.customfield_zephyrreq]
name = "Zephyr Squad Linked Requirement"
inward_link = "is tested by"
outward_link = "tests"
issue_type = ["New Feature","Improvement","Task"] #list requirement issues types
multiple_values = true
dimension = true

On report pages, set filtering criteria for the report – dimensions Fix Version and Project. For the Fix Version, select hierarchy By status so you can easily check on unreleased versions. In the report, select Unresolved versions as the default value.

On report columns, set several default measures and properties describing the execution of each requirement issue.

If you would like to see the requirement split by individual tests on report rows, click on the requirement issue key and Drill across → Issue → Issue

Report definition for Jira Data Center

This definition does not work for Jira Cloud. The definition could be used for Jira Data Center or Server only.

If you have created the issue link dimension "Zephyr Squad Linked Requirement", then you should set the dimension "Zephyr Squad Linked Requirement" on report rows for report to work.

You can copy and import report definition into your eazyBI account to get this report together with all calculated measures. 

Report definition
{
  "cube_name": "Issues",
  "cube_reports": [ {
     "name": "Zephyr Squad requirement coverage matrix",
     "result_view": "table",
     "definition": {"columns":{"dimensions":[{"name":"Measures","selected_set":["[Measures].[Zephyr Squad Requirement status]","[Measures].[Tests linked to requirement]","[Measures].[Zephyr Squad Test Execution count]","[Measures].[Unresolved defect list]"],"members":[{"depth":0,"full_name":"[Measures].[Tests linked to requirement]","format_string":"#,##0","report_specific":true,"name":"Tests linked to requirement","calculated":true,"id":"[Measures].[Tests linked to requirement]"},{"depth":0,"name":"Zephyr Squad Test Execution count","full_name":"[Measures].[Zephyr Squad Test Execution count]","format_string":"#,##0","annotations":{"group":"Zephyr Squad","predefined":"true"},"calculated":true,"drilled_into_dimension":"Zephyr Squad Test Status"},{"depth":0,"full_name":"[Measures].[Unresolved defect list]","format_string":"MarkdownFormatter","report_specific":true,"name":"Unresolved defect list","calculated":true}]},{"name":"Zephyr Squad Test Status","selected_set":["[Zephyr Squad Test Status].[Status].Members"],"members":[],"bookmarked_members":[]}]},"rows":{"dimensions":[{"name":"Zephyr Squad Requirement","selected_set":["[Zephyr Squad Requirement].[Requirement].Members"],"members":[],"bookmarked_members":[]}],"nonempty_crossjoin":true},"pages":{"dimensions":[{"name":"Project","selected_set":["[Project].[All Projects]"],"members":[{"depth":0,"name":"All Projects","full_name":"[Project].[All Projects]","drillable":true,"type":"all"}],"bookmarked_members":[],"current_page_members":["[Project].[All Projects]"]},{"name":"Fix Version","selected_set":["[Fix Version].DefaultMember"],"members":[{"depth":0,"name":"All Fix Versions","full_name":"[Fix Version].[All Fix Versions]","drillable":true,"type":"all","expanded":true,"drilled_into":false},{"depth":1,"name":"ZB Kanban","full_name":"[Fix Version].[ZB Kanban]","drillable":true,"key":"ZK","expanded":true,"drilled_into":false,"parent_full_name":"[Fix Version].[All Fix Versions]"},{"depth":2,"name":"Unreleased","full_name":"[Fix Version].[ZB Kanban].[Unreleased]","drillable":true,"parent_full_name":"[Fix Version].[ZB Kanban]"}],"bookmarked_members":[],"current_page_members":["[Fix Version].[ZB Kanban].[Unreleased]"]}]},"options":{},"view":{"current":"table","maximized":false,"table":{"show_key":["Zephyr Squad Requirement"],"row_dimension_headers":{"Zephyr Squad Requirement":true},"cell_formatting":{"[Zephyr Squad Test Status].[UNEXECUTED]":{"type":"range","rules":[{"min":"1","background_color":"#B3BAC5"}]},"[Zephyr Squad Test Status].[PASS]":{"type":"range","rules":[{"background_color":"#34AD70","min":"1"}]},"[Zephyr Squad Test Status].[FAIL]":{"type":"range","rules":[{"min":"1","background_color":"#D4153B"}]},"[Zephyr Squad Test Status].[WIP]":{"type":"range","rules":[{"min":"1","background_color":"#FFD04D"}]},"[Zephyr Squad Test Status].[BLOCKED]":{"type":"range","rules":[{"min":"1","background_color":"#376BB7"}]}}}},"calculated_members":[]}
  } ],
  "calculated_members": [{"dimension":"Measures","name":"Zephyr Squad Requirement status","format_string":"","formula":"[Status].[Status].getMemberNameByKey(\n  [Zephyr Squad Requirement].CurrentHierarchyMember.get('Status ID')\n)"},{"dimension":"Measures","name":"Zephyr Squad Test Execution count","format_string":"","formula":"[Measures].[Zephyr Squad Tests scheduled] + [Measures].[Zephyr Squad Tests executed]"},{"name":"Unresolved defect list","dimension":"Measures","formula":"-- annotations.group=Zephyr Squad User defined\nGenerate(\n  --filter set of unresolved defects\n  Filter(\n    Descendants([Zephyr Squad Defect].CurrentMember, [Zephyr Squad Defect].[Defect]),\n    IsEmpty([Zephyr Squad Defect].CurrentMember.Get('Resolved at')) AND\n    [Measures].[Zephyr Squad Tests defect count] \u003e 0\n  ),\n  --generate a list of clicable defect keys\n  \"[\" ||\n  [Zephyr Squad Defect].CurrentMember.Name ||\n  \"]\" ||\n  --update the YOUR_JIRA_DOMAIN with right URL for you\n  \"(http://YOUR_JIRA_DOMAIN/browse/\" ||\n  [Zephyr Squad Defect].CurrentMember.Name || \n  \")\",\n  ', '\n)\n\n--set measure Formatting to Text -\u003e Markdown","format_string":"MarkdownFormatter"},{"name":"Tests linked to requirement","dimension":"Measures","formula":"-- annotations.group=Zephyr Squad User defined\n([Measures].[Zephyr Squad Tests created],\n--ignore dimensions related to test cycles\n[Project].CurrentHierarchy.DefaultMember,\n[Fix Version].CurrentHierarchy.DefaultMember,\n[Time].CurrentHierarchy.DefaultMember,\n[Zephyr Squad Test Cycle].CurrentHierarchy.DefaultMember,\n[Zephyr Squad Test Executed by].CurrentHierarchy.DefaultMember,\n[Zephyr Squad Test Status].CurrentHierarchy.DefaultMember)","format_string":""}]
}

See also