Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Executive Summary

Xray is used by many Agile teams or , as well as by teams doing the who are undergoing an Agile transformation , and are moving out from of traditional waterfall scenarios.

Being Agile also One of the primary points of being Agile means having a tool does not dictacte how you should work but that gives you instead freedom to constantly adapt it to your team needs. This that adapts to your team's needs. This document sums up the different possibilities you have in working with Xray in an agile context and provides some guidance , although you should in getting started. Of course, we always suggest you evaluate what best fits best to your context.your team's needs. 


In order to have a successful Agile process, you need to have

...

these processes/mindsets in place:

  • immediate information/no handoffs: Xray provides immediate information visibility right within your work item; thus. This way, you don't have to ask someone to know the about results, the testing progress, or what is the coverage status of a an Epic/Story. Thus, for For example, you can see how a user story is from a QA standpoint, right from the Story issue screen; likewise, you can see QA feedback in your existing Scrum Boards
  • collaboration: everyone is invited to collaborate, no matter their role; therefore, anyone can interact and collaborate on user stories, Test test cases, on test planning, on test execution; as .  This is because Xray works inside Jira and uses different issue types as an abstraction of its own entities, meaning you can collaborate inside Jira, the Jira wayway (smile) 

In short, after successful installation & setup, we advise you to:

  • have Test Plan(s) per sprint
  • configure your existing Agile Boards (i.e. Scrum Board of active sprint) to show Test Plans and (Sub) Test Executions assigned to your Sprints and to show the coverage status on the covered issues

But However, as there is much more to know besides these points, please read the following sections to have a thoroughly a thorough understanding of how can to take advantage of Xray in an Agile context.

Xray in Scrum based teams

If you're following Agile, particularly the Scrum framework, you'll have sprints of one, two, or more weeks (a sprint has a short, well-defined time period).

...

Info
titleShould you use Sub-Test Executions or not?

As Xray is a flexible tool, and every team has its own demands, we highly recommend to start simple and explore some of possibilities offered by the tool.

Following the Agile principles, your processes should be reviewed often by the team and adapted accordingly with team needs.

You should also not dictate a long and very strict processprocesses, as you want to promote "Individuals individuals and interactions over processes and tools". Therefore, you need to find the right balance.

Process

  • review the user stories with your team (remember: testers are part of the team)
  • create Tests for each user story
  • organize the Tests
  • create one or more Test Plans (see above) and add the relevant Tests
  • schedule multiple Test Executions, from the Test Plan or directly from each Story as Sub-Test Executions
  • track overall, consolidated progress at the Test Plan level
  • use reports to assess additional information, such as...
    • Overall Coverage Report, for evaluating the current coverage status of the coverable entities (e.g. user stories)
    • Traceability Report, to quickly filter out relevant entities based on their coverage, check the runs of related Tests and reported defects
    • Test Executions Report and/or Test Plans Report, as means to see the results obtained on different environments, on different revisions of the SUT, and to check the reported defects and if they're still to be resolved or not
  • use Jira dashboards to share information about your project, including testing progress; use some specific gadgets for the later

What belongs to a release?

Tests, Pre-Conditions and Test Sets are reusable entities; thus, in typical scenarios, they do not belong to the scope of a release, or of a sprint.

In the other hand, Test Executions, Sub-Test Executions and Test Plans represent work targeted for a given release and/or a given sprint. Thus, they can be tracked as any other issue that needs to be handled in the scope of your release/sprint. If you have these issues assigned to some release through the FixVersion/s field, then they will appear in the summary information of the Releases project page.

Image RemovedImage Added


Info
titlePlease note

As of Xray v3.4, Tests created from the "requirement"/story screen will inherit the FixVersion/s from the parent issue. The version assigned to the Test case has no special meaning, unless you want to handle it as specification work that you need to address in the context of that release. If that's not the case, you can simply ignore.

Xray may change this behaviour in the future.

Coverage: Epics and Stories

Xray understands the "hierarchical" relation between Epic<=>Story. In fact, it's just one of the possible scenarios for handling parent and "sub-requirements".

...

Info
titlePlease note

Please make sure you have the Epic<=>Story relation enabled under Xray "Issue Type Mappings" administration section.


Image RemovedImage Added  Image RemovedImage Added


Note that you can create and/or link a Test explicitly with an Epic, if you wish to cover it directly.


Creating Test cases

Tests can be created right from the Epic/Story screen. That way, they will be automatically linked with the respective issue.

Image RemovedImage Added

Otherwise, if you create Tests using the Create button from the top navigation bar, or from a Test Set, or from a Test Repository folder action, then you have to specify the covered issue.

You can do that at the moment of creation...

Image RemovedImage Added

 or later on, by using the More > Link action available from the Test issue screen (or from the Story/Epic issue screen, but using the "tested by" issue link in that case).

Image RemovedImage Added

Organizing the Test cases

Organization is essential to easily find the Tests later on, whenever you need to perform regression testing, for example.

...

Thus, you'll need a structured way to organize your Test cases to make your work more efficient.

Possible organization scenarios

Xray provides several different options for organizing Test cases.

...

Info
titleLearn more

Each organization approach provides its own benefits and its own limitations. Check out some comparison information providing better insights on the possibilities and limitations of some of these approaches


Regression testing

The list of Tests you wish to run for regression testing may be quite dynamic and change over time, or it can be quite static; it depends on your internal process.

...

On the other hand, you can have an implicit way of defining the Tests you wish to run during regression testing. How? Well, you may start by creating a first Test Plan for regression testing, adding all the Tests that you consider relevant. On upcoming releases, you may clone (using "issue clone" operation) the previous Test Plan and add/remove the Tests that you want.

Defining the scope of your testing using Test Plans

During the lifetime of a sprint, you will perform testing as a way to ensure you have a shippable product. Therefore, you'll need at least one Test Plan as means to identify what you want to test and also to track its results.

...

Expand
titleWhat is purpose of a Test Plan, how many can I have and how does it affect coverage?
Info

Purpose

A Test Plan defines, first of all, the testing scope (i.e. the testing that you aim to perform in some context). Test planning can occur in the context of a release, in the context of a sprint or in the context of "testing cycle" (i.e. some timeframe that you allocate to perform some testing).

The Test Plan is used as basis to schedule Test Executions for all or a subset of the Tests being tracked within it. 

As you may have multiple "iterations" (i.e. scheduling of multiple runs for the Tests by creating multiple Test Executions), you'll need a way to see the consolidated progress for all those "iterations"; the Test Plan provides you exactly that by showing you the latest status for each Test being tracked within the Test Plan.

How many

In the simplest scenario, you can have just one Test Plan with all the tests that you aim to perform (no matter their nature, neither their type nor if they're regression related or not).

Eventually, you may have multiple active Test Plans at the same time. The main reason would be if you want to manage & track test progress independently.

Although being totally up to you to decide, you may want to have more than one Test Plan,

  • if overall you want to manage each Test Plan independently
  • If each Test Plan lifecycle is independent
  • if you want to assign each plan to different teams
  • if you want to clearly distinguish the results from different tests, because they, for example, bring different value (e.g. automated testing vs manual testing, regression testing vs non-regression testing, integration vs E2E tests, functional vs non-functional testing)

Coverage Analysis

You can analyze your coverage (i.e. how your "requirements"/user stories are) from the release perspective, and for that the number of Test Plans you have is irrelevant; what matters are the Test Executions assigned to that release and the respective Test Runs.

If you want, you may eventually perform coverage analysis just by considering explicitely  the Tests and related results performed in the context of some given Test Plan, so you can assess what requirements are being "covered" by that Test Plan and what is their status if we just consider the results performed in the scope of that plan.

Basic: one Test Plan per Sprint

The simplest approach is to have just one Test Plan per sprint; you can set this explicitly by setting the Sprint field on the Test Plan issue.

...

Test Executions created from the Test Plan will also, by default, inherit the Test Plan assigned version (i.e. FixVersion/s).


Test Plans for RT and NRT

Sometimes, you may prefer to distinguish regression testing (RT) from non-regression testing (NRT), for several reasons.

...

You can analyze your coverage (i.e. how your "requirements"/user stories are) from the release perspective or from each Test Plan perspective.

Multiple Test Plans

As a manager, you can define as many Test Plans as you wish.

...

The following diagram shows an example of possible different criteria for creating Test Plans. 

Using Sub-Test Executions

Xray provides the ability to easily create Test Executions containing all the Tests that cover some "requirement"/Story as a sub-task of it.

Image RemovedImage Added

This may provide a quick way for you to schedule the execution of certain Tests; you can also link that Sub Test Execution to an existing Test Plan.

...

Info
titleShould you use Sub-Test Executions or not?

To be clear, you don't have to use Sub-Test Executions. However, as mentioned above they may provide some interesting benefits for some specific use cases.

However, if you decide to also use Sub-Test Executions, please always link them to the proper Test Plan so you can track their results at an higher level: at the Test Plan level. That way, you will be able to always track the progress from the Test Plan point-of-view.

Tracking progress in Agile/Scrum based boards

As shown in Agile Enhancements page, you can configure your Agile Scrum board to show immediate feedback about:

...

Including in the board Test Executions coming from automated testing (i.e. during CI), may not be recommended as it will overload the board and not provide any real added value. Instead, you may include only Test Plan(s) as means to group and show the consolidated results coming from automation.

Image RemovedImage Added

Xray in Kanban based teams

You may have a look at the previous instructions for Scrum teams as most of it can also be applied in Kanban teams.

...

Thus, you can have a Test Plan to track the Tests related with the features being addressed on the Kanban board. You may complement it with additional Test Plans, namely, for tracking the regression testing. It may be a good approach to have the Test Plan with regression tests, or smoke tests, as an independent Test Plan, so it is more apparent if regression is occurring or not.

Questions

  • We're not really adopting Scrum perfectly... can we use these approaches in our case?
    • Yes, you may follow these same principles and adapt them to your methodology.
  • We have a hardening/clean-up sprint where we wish to test thoroughly, including deep regression testing. How can this be handled?
    • Hardening sprints are normally a sign that Agile is not fully being embraced. Having said that, you can have a Test Plan to track the testing performed in the scope of that sprint, adding all Tests related with user stories and other issues "implemented" on previous sprints, and thus consider the results performed in the scope of this Test Plans as being the relevant ones
  • Are Test Plans, Test Executions or Sub-Test Executions child issues of an Agile board? In other words, do they belong to some Agile board?
    • No. All those issues, first of all, belong to some project. They can optionally be assigned to a release (through the FixVersion/s field) and to a sprint (through the Sprint custom field).
    • A different thing is showing whatever issues you want in your existing boards; as those entities are implemented as issues, you can configure boards to show them. In fact, the same issues can be included (i.e. shown) in different boards. 

Further reading