Package tests run in various pipelines and we have a few tests tagged as `:blocking`. `:blocking` tests block merge requests on failure and`:smoke` tests block deployments from going further in case of failure.
Other Package related tests that are not tagged as `:blocking` run when the full suite of tests runs.
Package tests run in various pipelines and we have a few tests tagged as `:smoke`.`:smoke` tests block deployments from going further in case of failure.
Other Package related tests that are not tagged as `:smoke` run when the full suite of tests runs.
@@ -55,7 +55,7 @@ A majority of the testing we will need to do will exist at the `Single Cell` lev
#### Feature
This testing is done as part of the day to day work of development, the unit/integration tests added as part of developing the features. The SET can help advise on edge cases / scenarios that should be considered for testing. We currently have two E2E test suites defined: `smoke` and `blocking` ([the test suite definitions](../test-platform/blocking-tests.md#overview)).
This testing is done as part of the day to day work of development, the unit/integration tests added as part of developing the features. The SET can help advise on edge cases / scenarios that should be considered for testing. We currently have one E2E test suite defined: `smoke`.
@@ -66,10 +66,6 @@ You can leave any feedback about this process in the [dedicated issue](https://g
- Define acceptable thresholds for action like quarantining/focus on refactoring
- Step towards unlocking [Merge train](https://gitlab.com/gitlab-org/quality/quality-engineering/team-tasks/-/issues/195)
### Flaky tests management in end-to-end tests
The end-to-end tests follow a separate process of automatically quarantining flaky tests as [outlined here](/handbook/engineering/infrastructure/test-platform/blocking-tests/#managing-test-failures).
@@ -320,12 +320,6 @@ Please note that the borrow request might not guarantee 100% allocation to the r
The list of all SET borrow requests can be seen [here](https://gitlab.com/gitlab-com/Product/-/issues/?label_name%5B%5D=SET%20Borrow).
### Blocking tests
Blocking tests have met stricter reliability criteria than other tests in our test suite. When a failure is seen in a blocking test, it's less likely to be flakiness and more likely to be a true issue.
For more information, please visit our [blocking tests page](blocking-tests).
### Risk mapping
The Test Platform Sub-Department helps facilitate the risk mapping process. This requires the participation of Product Management, Development, UX, and the Quality team to develop a strategic approach to risk and mitigation planning.
GitLab's end-to-end tests for API and UI, located in `qa/qa/specs/features/`, can be promoted to:
-**Smoke Tests**: Essential for the release process, they are executed and can stop deployments from going further.
-**Blocking Tests**: Key to maintaining code quality in MRs, blocking on failure and mandatory passing for MR approval.
In the longer term, the `:blocking` bucket will be sunset. All the tests will be run as a blocking step in the MRs and
only smoke tests will be run during the release process.
### Defining a Blocking Test
- A `:blocking` test consistently succeeds in the master or nightly pipeline for at least 14 days.
- A blocking test is for MR quality control and not included in deployment pipelines.
## Promotion Processes
### To Blocking Suite
Tests are selected for promotion by a weekly automated script that uses the data produced by reliable test report. The automated script
is run once a week by a schedule named "Weekly reliable, unreliable E2E spec report" in the [quality/toolbox project](https://gitlab.com/gitlab-org/quality/toolbox/-/pipeline_schedules).
- Criteria: 14 consecutive days of success and top 10 in run frequency in master or nightly pipelines
- The process involves generating MRs for the top-performing tests and assigning them for review by counterpart SET for
the DevOps stage of the test as a DRI.
- A test should ideally not be promoted manually without it being identified in the reliable test report. However, if a
test has been identified in the reliable test report did not make it to the top 10 number of runs, it can be promoted
by manually creating an MR.
- Orchestrated tests are also selected for promotion to blocking even though they do not currently run in the blocking GDK jobs (`gdk-qa-blocking`).
This will ensure we have a set of stable orchestrated tests when we make the [orchestrated tests block MRs](https://gitlab.com/gitlab-org/quality/quality-engineering/team-tasks/-/issues/2516)
The flow of promotion to blocking as a decision tree:
```mermaid
flowchart TD
%% nodes
reliable_test_report[Reliable test report\nruns once a week]