As of today, it's already possible to attach test definitions to stories and to create campaigns with tests attached to those stories. However there is no convenient interface to manage the tests / story association.
This epic closes the gap and aims to make stories/tests management as seamless as story/task management already is with Planning and Taskboard.
Reference Mock-Up: https://www.figma.com/proto/3WLVBKdco1nc24aNFD94W5/Test-plan?node-id=480%3A21386&scaling=scale-down
This view looks like the Planning view but there is two major differences between them:
- There is no drag'n drop of items (neither stories, tests or campaigns)
- On the right hand side, it's not the sub milestones (eg. Sprints for Releases), it's the test campaigns attached to the milestone.
The Test Plan view combine two main use case:
- The definition of the Test Plan, that is to say, for each Backlog Item of a milestone, having the possibility to associate tests
- The creation of Test Campaigns associated to milestones (the current "Test Campaign" tab disappear in favor of this new screen)
The test plan is the left hand side of the screen, it lists all the Backlog Items (stories, bugs, requirements, ...) of a Milestone (release, sprints, etc). The Backlog Items are listed in the order defined in Planning view and only the top level elements (directly attached to the Milestone) are visible.
On the left hand side, in addition to Backlog Items, there is a generic "Other tests" section that:
- gather all the tests executed during one any campain of the milestone that cannot be attached to specific Backlog Item (for instance Non Regression tests)
- allow to create tests that are not meant to be associated to a specific Backlog Item
Each Backlog Item is presented collapsed by default and can be expanded with the little caret on the left of the title. At the same level of the title but on the right hand side, there are 2 informations:
- The number of tests that covers the Backlog Item
- A badge that indicate the status of the coverage:
- check mark + green => all the tests were executed and passed
- x + red => at least one of the test was executed and failed
- ! + blue => at least one of the test was executed and blocked
- ? + grey => no failure, no blocked but at least one of tests was not yet executed
- If there are no tests, there is no badge on the right hand side
Tests and test status
Important: the status of the test (passed, failed, ...) is based on the last execution of the test in any campaign of the milestone.
Let's take the Backlog Item "Support scrolling while dragging" bellow:
The second test "#6640 For results grids showing ..." can be passed in "R1.0 alpha" campaign while the fourth test "#2726 The user should be able..." can be passed in "Release 1.0 RC-1".
If a test is selected in several campaigns, it's the last execution status that "wins". In our case, even if the first test "#3131 Check scroll bar functionality...." was passed in "R1.0 alpha" campaign, if it's scheduled but not run in "Release 1.0 - Beta", it's status will be "not run".
As it's already done in Test Management interface, the tests are are automated are identified with the small gears icon.
Within a Backlog Item, at the end of the list, there is a "Create a new test" button that opens an test creation modal.
This is the standard artifact creation modal described in epic #14820. Hence implementation of [Create a new test] depends on this epic.
When a test is created with [Create a new test], it is automatically associated to the corresponding Backlog Item with "covered_by" nature. Test Definitions are outside the tracker hierarchy and can be associated to any kind of Backlog Items.
On the right hand side of the screen there is the list of campaigns associated to the milestone.
It's more or less the same view we already have with current "Test Campaign" tab. Campaigns are not "expandables", to see the actual content of a campaign, you have to click on it and you are redirected to the campaign execution view in TTM.
The one change is new campaign creation is proposed by default with tests associated with the milestone: