Test plan for "Suggest approvers based on code owners"

Introduction

This test plan is for #5382 (moved) and extends test plan #7286 for https://gitlab.com/gitlab-org/gitlab-ee/issues/6961. The feature displays a list of suggested approvers based on the files changed and any matching rules in a CODEOWNERS file.

Scope

  • Only suggests approvers, does not assign them
  • Only users (specified by handle or email) are supported, not groups.
  • Suggested approvers are displayed while editing a merge request (not viewing)
  • EE-only (Starter)

ACC Matrix

Simple Secure Responsive Intuitive Reliable
Merge Requests 2 2

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.

Capabilities

Merge Requests are:

  • Intuitive

    • Show tips about using the feature when appropriate
    • Ineligible approvers are shown but can't be selected
  • Reliable

    • Only display code owners for files included in the MR
    • Only include code owners from the target branch, not the source branch

Test Plan

Scenario: Show tips

  • If no CODEOWNERS file is present show a tip about using the feature
  • If a CODEOWNER is not an eligible approver show them in the list but disabled and with a tooltip explaining they are not an eligible approver.

Scenario: Displaying approvers

  • Check that all relevant approvers are displayed:
    • Should not include code owners of files that aren't included in the MR
    • Should not include code owners from source branch
    • Should include all code owners of files included in the MR

Scenario: Selecting approvers

  • Check that ineligible approvers are shown but can't be selected (possible FE test? Check that ineligible approvers aren't rendered as links? Otherwise e2e test)

End-to-end tests:

  • Add a different CODEOWNERS files to target and source branches and check that a new MR displays the expected code owners from the target CODEOWNERS file.

Coverage of CODEOWNERS file parsing covered by existing tests and https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/7368

Test Coverage sheet

Edited Oct 30, 2018 by Mark Lapierre
Assignee Loading
Time tracking Loading