Test plan for Group-level project templates
Test Plan
Introduction
This test plan is for #6861 (closed). The feature allows setting of a subgroup as a provider for project templates in group's general settings and also selecting a project from that subgroup to be used as a template at project creation time.
Scope
- Group Settings > General > Custom project templates
- Create project flow from primary navigation bar
- Create project flow from a group's page
- Testing actual repository export is out of scope
- Displaying project descendants from sub-groups of the displayed group are not supported
- The plan focusses on functional testing
- Manual testing should involve a 20+ groups, each with a sub-group set as a "Custom project template".
- Manual testing should also involve a source sub-group with a large number of (20+) templates
ACC Matrix
The matrix below identifies the Attributes, Components, and Capabilities relevant to the scope of this test plan.
Attributes (columns) are adverbs or adjectives that describe (at a high level) the qualities testing is meant to ensure Components have.
Components (rows) are nouns that define major parts of the product being tested.
Capabilities link Attributes and Components. They are what your product needs to do to make sure a Component fulfils an Attribute
This feature includes "Projects" and "Groups" functional area and so they included in the matrix.
For more information see the Google Testing Blog article about the 10 minute test plan and this wiki page from an open-source tool that implements the ACC model.
The numbers indicate the count of Capabilities at each intersection of Attribute and Component
Intuitive | Secure | Responsive | Obvious | Stable | |
---|---|---|---|---|---|
Groups | 1 | 1 | 1 | ||
Project | 4 | 1 | 1 |
Capabilities
-
Group is
- Intuitive
- It's clear how to set a subgroup as a "Custom project template"
- Secure
- Only the subgroups under the current group are shown in the list for selecting "Custom project template"
- Stable
- Any other sub-groups not set as "Custom project template" does not get affected.
- Intuitive
-
Project is
- Intuitive
- Its easy to select a project template from a group when creating project
- Group tab visibility when creating project from template depends on the project creation context (??)
- Project templates available for selection when creating a project depends on the project creation context
- Its is easy to change the the current project path to a sub-group of the selected group
- Secure
- Only users with appropriate (developer/maintainer ??) access to the group will able to see the group's templates
- Responsive
- UI for Create from template > Group tab is responsive
- Intuitive
Test Cases
Capabilities mentioned above can be used to guide the testing. Some cases not completely obvious from the capabilities are mentioned in below list. This list, however, should not be considered exhaustive and should only be used as a reference point for actual tests.
When adding new automated tests, please keep testing levels in mind.
Automated Tests
Example group structure used in the test scenarios:
top-level-group
|
|
--- ruby-projects-group (A 1st level sub-group)
| |
| --- ruby-project-1
| |
| --- ruby-project-2
| |
| --- ruby-projects-sub-group (A 2nd level sub-group)
| |
| --- templates-for-ruby-projects (A 2nd level sub-group)
| |
| --- ruby-project-template-1
| |
| --- ruby-project-template-2
|
--- java-projects-group (A 1st level sub-group)
|
--- java-project-2
|
--- java-project-2
|
--- templates-for-java-projects (A 2nd level sub-group)
|
--- java-project-template-1
|
--- java-project-template-2
Scenario 1: New project from primary navigation bar
- Set project level templates in Group Settings > General > Custom project templates for multiple Groups.
- Initiate creating a new project from the primary navigation bar
- Verify that no "Group" tab is shown under "Create from template" tab
Scenario 2: New project in a 1st level sub-group - when templates are also set from that group
- Set a project level template using a 1st level sub-group (e.g.
ruby-projects-group
from above example) in Group Settings > General > Custom project template for a group. - Navigate to that group
- Initiate creating a new project in the group
- Verify that only the sub-group selected in the first step appears along with all its templates (From above example,
ruby-project-1
andruby-project-2
should appear in the list) - Verify that any templates in the 2nd level sub-group of the selected group do not appear in the list under Create from template > Group (From above example,
ruby-project-template-1
andruby-project-template-2
should not appear in the list) - Select a template to use
- Verify that the project path has changed to the selected template's group
- Verify that the user is able to change the project path to a sub-group of the current group but not its siblings or any other group.
Scenario 3: New project in a 2nd level group - when templates are set from that 2nd level sub-group
- Set a project level template using a 2nd level sub-group (e.g.
templates-for-ruby-projects
from above example) in Group Settings > General > Custom project template for a group. - Navigate to the 2nd level sub-group (e.g.
templates-for-ruby-projects
from above example) - Initiate creating a new project in the group
- Verify that only the 2nd level sub-group selected in the first step appears along with all its templates in the list under Create from template > Group (From above example,
ruby-project-template-1
andruby-project-template-2
should appear in the list) - Verify that any templates in the parent group of the selected group do not appear in the list under Create from template > Group (From above example,
ruby-project-1
andruby-project-2
should not appear in the list)
https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6878#note_105985512
Scenario 4: New project in a parent group (1st level) - when templates are set from its sub-group (2nd level) -- Invalid for 1st iteration. See:- Set a project level template using a 2nd level sub-group (e.g.
templates-for-ruby-projects
from above example) in Group Settings > General > Custom project template for a group. - Navigate to its parent group. (e.g.
ruby-projects-group
in the above example) - Initiate creating a new project in the group
- Verify that no templates appear under Create from template > Group
Scenario 5: New project in a sub-group (2nd level) - when templates are set from its parent-group (1st level)
- For the
ruby-projects-group
, set the project level template to a sub-group (e.g.templates-for-ruby-projects
from above example) in Group Settings > General > Custom project template for a group. - Navigate to its sub-group. (e.g.
ruby-projects-sub-group
in the above example) - Initiate creating a new project in that sub-group (2nd level)
- Verify that the sub-group selected in the first step appears along with all its templates shows in the list under Create from template > Group (From above example,
ruby-project-template-2
andruby-project-template-2
should appear in the list)
Manual Tests
- Check that the UI is responsive
- Check that the UI stable with:
- 20+ groups, each with a sub-group set as a "Custom project template".
- A sub-group set as a "Custom project template" that has a large number of (20+) templates.