diff --git a/general/monthly/quality.md b/general/monthly/quality.md index 42193f84e6d377a1edf5d62d0390fc3e8c9dbc0e..3e7c3f26cc99133dd80c1d41f24182d3a4557a06 100644 --- a/general/monthly/quality.md +++ b/general/monthly/quality.md @@ -1,2 +1,51 @@ # The role of the Quality team for a Monthly Release -To be added. + +## General process overview + +Quality engineer helps facilitate the gating validations that happens during our regular monthly release process. +It is important to note that the Quality engineer is not the person responsible to verify every aspect of the release (bug fixes, features & etc). + +This responsibility falls on everybody on the team: +* The developer who owns the Merge Request is responsible for validating the change/fix. +* The product manager who owns the feature is responsible for performing **Feature Assurance** on the end-to-end workflow to make sure the feature is working as expected. +* We, GitLab Engineering and Product as a team, relies on collaboration and trust to work through the QA Task and check off all the items for a release. + +Quality engineer works closely with Release Managers to ensure that the team checks off all the **Feature Assurance** and **Bugs & Changes tested** items for a given release. +This is done on the QA issue of the release. An example of this is [here](https://gitlab.com/gitlab-org/release/tasks/issues/197). + +It is also helpful for the Quality Engineer to complete the Release Manager on-boarding and participate once as a trainee before taking part in the release process. + +### First Release Candidate + +Quality Engineer: + +1. Gets notified from the Release Manager once the first Release Candidate is ready. + * This will be in the form of a Release Task. An example of this is [here](https://gitlab.com/gitlab-org/release/tasks/issues/195). +1. Assist in preparing the QA issue. + * The Feature Assurance list will be populated by the Release Manager which comes from the [kick off document](https://docs.google.com/document/d/1ElPkZ90A8ey_iOkTvUs_ByMlwKK6NAB2VOK5835wYK0/edit). For whatever reason if the Release Manager is unable to do so, the Quality Engineer is the backup person. + * The Quality Engineer is responsible to populate the `Bugs & Changes tested` section with an itemized list in the QA Task. See ["Generating QA Task Items" section](#generating-qa-task-items). + * Since this is the first time we create the issue, we do not need to mention individuals to verify the `Bugs & Changes tested` tasks. Populating the description alone should be enough. +1. Run GitLab QA automated QA tests on staging once the first Release Candidate has been deployed. +1. Update the Release QA Task with automated test results from GitLab QA. + +### Follow up Release Candidates + +Quality Engineer: + +1. Gets notified from the Release Manager once an updated Release Candidate has been deployed to staging. +1. Assists in updating the QA issue. We are using one QA issue to track everything that goes into a release. + * Rename the RC number `RC#`, with `#` being the current Release Candidate number. + * Generate the updated list for the `Bugs & Changes tested` section for that Release Candidate. See ["Generating QA Task Items" section](#generating-qa-task-items). + * Create a new `RC#` under the `Bugs & Changes tested` section and paste the itemized list of the QA Task Items for that `RC#`. +1. Notify the responsible people involved to perform **Feature Assurance** and verify **Bugs & Changes tested** items in the Release QA Task. + 1. Write up a summary and `@` mention the product managers and developers who has an empty checkbox next to his/her name. + 1. Post this as a comment in the QA issue. Mention to the team that the validation can be performed on both staging and production. + If the setup on staging is insufficient, validation on production is acceptable. An example of this comment can be referred to [here](https://gitlab.com/gitlab-org/release/tasks/issues/197#note_73494080). +1. Run GitLab QA automated QA tests on staging once a Release Candidate has been deployed. +1. Update the Release QA Task with automated test results from GitLab QA. + +## Generating QA Task Items + +The Quality Engineer is responsible to populate the **Bugs & Changes tested** section in the QA Task. There are 2 ways to generate this itemized list. + 1. **Legacy method:** This can be generated from the git command in the Release QA Task template. Command: ````git log PREVIOUS_TAG-ee..LATEST_TAG-ee --pretty=format:"- [ ] [%h](https://gitlab.com/gitlab-org/gitlab-ee/commit/%h) @%aN \`%s\`"```` + 1. **New method:** Currently the Quality team is experimenting how to generate this list automatically via an automated script. Please work with Mark on the Quality team for access. Work that is being done is documented in this [issue](https://gitlab.com/gitlab-org/release-tools/issues/196). \ No newline at end of file