Xray Requirement coverage

Xray Requirement coverage report represent overview of requirement current status, its coverage by tests and executions and reported defects.


This report has Xray Requirement dimension as rows and, in columns, has many measures describing each requirement.

  • Xray Requirement status is a calculated measure which gets issue property value from Issue status for each requirement.

    [Status].[Status].getMemberNameByKey(
      [Xray Requirement].CurrentHierarchyMember.get('Status ID')
    )
  • Xray Tests created is a default eazyBI measure for Xray and represents how many test cases are created to cover each requirement.
  • Xray Tests with executions is a default eazyBI measure for Xray and represents how many test cases are executed, executing or scheduled for execution. As each test case is counted once in this measure (regardless of the number of executions), if this number is less than Xray Tests created, it means that some of requirement tests are not executed or scheduled for the execution yet.
  • Xray Test Runs is a default eazyBI measure for Xray and represents how many times requirement tests (issue type "Tests) have been executed, in execution or scheduled for executions.
  • Xray Test Run Summary is a calculated measure and returns test run count of selected requirement grouped by the test execution status.

    Generate(
      --set of all execution statuses
      Filter(
        Descendants([Xray Test Execution Status].CurrentMember,
          [Xray Test Execution Status].[Status]
        ),
        [Measures].[Xray Tests Run count] > 0
      ),
      --for each status return status name and count of test runs
      [Xray Test Execution Status].CurrentMember.Name || ' ' ||
      Format([Measures].[Xray Tests Run count], '#'),
      ', '
    )
  • Xray Tests defect count is a default eazyBI measure for Xray and represents how much unique defects are found during the testing of the requirement (test defects are related to test executions).
  • Xray Defect list is a calculated measure and provides a bit more information on the defects counted in previous column: it displays a list of found defects.

    Generate(
      --set of related defects
      Filter(
        Descendants([Xray Defect].CurrentMember, [Xray Defect].[Defect]),
        [Measures].[Xray Tests defect count] > 0),
        --for each defect return key and status
        [Xray Defect].CurrentMember.Name || ' ' || [Measures].[Xray Defect status],
        ", "
    )

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": "Xray Requirement coverage",
     "result_view": "table",
     "definition": {"columns":{"dimensions":[{"name":"Measures","selected_set":["[Measures].[Xray Requirement status]","[Measures].[Xray Tests created]","[Measures].[Xray Tests with executions]","[Measures].[Xray Test Runs]","[Measures].[Xray Test Run Summary]","[Measures].[Xray Tests defect count]","[Measures].[Xray Defect list]"],"members":[]}]},"rows":{"dimensions":[{"name":"Xray Requirement","selected_set":["[Xray 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","expanded":true,"drilled_into":false}],"bookmarked_members":[],"current_page_members":["[Project].[All Projects]"]},{"name":"Xray Test Plan","selected_set":["[Xray Test Plan].[All Xray Test Plans]"],"members":[{"depth":0,"name":"All Xray Test Plans","full_name":"[Xray Test Plan].[All Xray Test Plans]","drillable":true,"type":"all","expanded":true,"drilled_into":false},{"depth":1,"name":"Shuttle Launch to Skylab Testing","full_name":"[Xray Test Plan].[Shuttle Launch to Skylab Testing]","drillable":true,"key":"SKY","expanded":true,"drilled_into":false,"parent_full_name":"[Xray Test Plan].[All Xray Test Plans]"}],"bookmarked_members":[],"current_page_members":["[Xray Test Plan].[All Xray Test Plans]"]}]},"options":{},"view":{"current":"table","maximized":false,"table":{"row_dimension_headers":{"Xray Requirement":true}}}}
  } ],
  "calculated_members": [{"dimension":"Measures","name":"Xray Defect status","format_string":"","formula":"[Status].[Status].getMemberNameByKey(\n  [Xray Defect].CurrentHierarchyMember.get('Status ID')\n)","annotations":{"group":"Xray","drill_through_dimension_levels":"[Xray Test].[Test], [Xray Test Execution].[Execution]"}},{"dimension":"Measures","name":"Xray Tests Run count","format_string":"","formula":"Sum(\n  Filter(Descendants([Xray Test Execution].CurrentMember,\n    [Xray Test Execution].[Execution]),\n    [Measures].[Xray Tests with executions] > 0),\n  [Measures].[Xray Tests with executions]\n)","annotations":{"group":"Xray","drill_through_dimension_levels":"[Xray Test].[Test], [Xray Test Execution].[Execution]"}},{"name":"Xray Test Run Summary","dimension":"Measures","formula":"-- annotations.group=Xray User defined\n\nGenerate(\n  Filter(\n    Descendants([Xray Test Execution Status].CurrentMember,\n      [Xray Test Execution Status].[Status]\n    ),\n    [Measures].[Xray Tests Run count] > 0\n  ),\n  [Xray Test Execution Status].CurrentMember.Name || ' ' ||\n  Format([Measures].[Xray Tests Run count], '#'),\n  ', '\n)","format_string":""},{"name":"Xray Requirement status","dimension":"Measures","formula":"-- annotations.group=Xray User defined\n[Status].[Status].getMemberNameByKey(\n  [Xray Requirement].CurrentHierarchyMember.get('Status ID')\n)","format_string":""},{"name":"Xray Defect list","dimension":"Measures","formula":"-- annotations.group=Xray User defined\n\nGenerate(\n  Filter(\n    Descendants([Xray Defect].CurrentMember, [Xray Defect].[Defect]),\n    [Measures].[Xray Tests defect count] > 0),\n    [Xray Defect].CurrentMember.Name || ' ' || [Measures].[Xray Defect status]\n    \n    ,\n    \", \"\n)","format_string":""}]
}