fleet/.github/ISSUE_TEMPLATE/release-qa.md
Gabe Lopez a44403a4d9
Update release-qa.md (#31242)
adding MDM tests for windows mdm migration, iPhone/iPadOS turning MDM
off, Locking & Wiping hosts
2025-07-24 12:48:59 -07:00

17 KiB

name about title labels assignees
Release QA Checklist of required tests prior to release Release QA: #g-mdm,#g-orchestration,#g-software,:release xpkoala,pezhub,jmwatts

Goal: easy-to-follow test steps for checking a release manually

Important reference data

  1. fleetctl preview setup
  2. permissions documentation
  3. premium tests require license key (needs renewal) fleetctl preview --license-key=eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJGbGVldCBEZXZpY2UgTWFuYWdlbWVudCBJbmMuIiwiZXhwIjoxNjQwOTk1MjAwLCJzdWIiOiJkZXZlbG9wbWVudCIsImRldmljZXMiOjEwMCwibm90ZSI6ImZvciBkZXZlbG9wbWVudCBvbmx5IiwidGllciI6ImJhc2ljIiwiaWF0IjoxNjIyNDI2NTg2fQ.WmZ0kG4seW3IrNvULCHUPBSfFdqj38A_eiXdV_DFunMHechjHbkwtfkf1J6JQJoDyqn8raXpgbdhafDwv3rmDw
  4. premium tests require license key (active - Expires Sunday, January 1, 2023 12:00:00 AM) fleetctl preview --license-key=eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJGbGVldCBEZXZpY2UgTWFuYWdlbWVudCBJbmMuIiwiZXhwIjoxNjcyNTMxMjAwLCJzdWIiOiJGbGVldCBEZXZpY2UgTWFuYWdlbWVudCIsImRldmljZXMiOjEwMCwibm90ZSI6ImZvciBkZXZlbG9wbWVudCBvbmx5IiwidGllciI6InByZW1pdW0iLCJpYXQiOjE2NDI1MjIxODF9.EGHQjIzM73YyMbnCruswzg360DEYCsDi9uz48YcDwQHq90BabGT5PIXRiculw79emGj5sk2aKgccTd2hU5J7Jw

Smoke Tests

Smoke tests are limited to core functionality and serve as a pre-release final review. If smoke tests are failing, a release cannot proceed.

Fleet core:

Fleet version (Head to the "My account" page in the Fleet UI or run fleetctl version):

Web browser (e.g. Chrome 88.0.4324):

Prerequisites

  1. fleetctl preview is set up and running the desired test version using --tag parameters.
  2. Unless you are explicitly testing older browser versions, browser is up to date.
  3. Certificate & flagfile are in place to create new host.
  4. In your browser, clear local storage using devtools.

Orchestration

Test nameStep instructionsExpected resultpass/fail
$Name{what a tester should do}{what a tester should see when they do that}pass/fail
Update flow
  1. remove all fleet processes/agents/etc using fleetctl preview reset for a clean slate
  2. run fleetctl preview with no tag for latest stable
  3. create a host/query to later confirm upgrade with
  4. STOP fleet-preview-server instances in containers/apps on Docker
  5. run fleetctl preview with appropriate testing tag
All previously created hosts/queries are verified to still existpass/fail
Login flow
  1. navigate to the login page and attempt to login with both valid and invalid credentials to verify some combination of expected results.
  2. navigate to the login page and attempt to login with both valid and invalid sso credentials to verify expected results.
  1. text fields prompt when blank
  2. correct error message is "authentication failed"
  3. forget password link prompts for email
  4. valid credentials result in a successful login.
  5. valid sso credentials result in a successful login
pass/fail
Packs flowVerify management, operation, and logging of ["2017 packs"](https://fleetdm.com/handbook/company/why-this-way#why-does-fleet-support-query-packs).
  1. Packs successfully run on host machines after migrations
  2. New Packs can be created
  3. Packs can be edited and deleted
  4. Packs results information is logged
pass/fail
Log destination flowVerify log destination for software, query, policy, and packs.
  1. Software, query, policy, and packs logs are successfully sent to external log destinations
  2. Software, query, policy, and packs logs are successfully sent to Filesystem log destinations
pass/fail
OS settingsVerify OS settings functionality
  1. Verify able to configure Disk encryption (macOS, Windows, & Linux).
  2. Verify host enrolled with Disk encryption enforced successfully encrypts.
pass/fail

MDM

Test nameStep instructionsExpected resultpass/fail
$Name{what a tester should do}{what a tester should see when they do that}pass/fail
MDM enrollment flowVerify MDM enrollments, run MDM commands
  1. Erase an ADE-eligible macOS host and verify able to complete automated enrollment flow.
  2. With Windows MDM turned On, enroll a Windows host and verify MDM is turned On for the host.
  3. Verify able to run MDM commands on both macOS and Windows hosts from the CLI.
pass/fail
MDM migration flowVerify MDM migration for ADE and non-ADE hosts
  1. Turn off MDM on an ADE-eligible macOS host and verify that the native, "Device Enrollment" macOS notification appears.
  2. On the My device page, follow the "Turn on MDM" instructions and verify that MDM is turned on.
  3. Turn off MDM on a non ADE-eligible macOS host.
  4. On the My device page, follow the "Turn on MDM" instructions and verify that MDM is turned on.
  5. Verify Windows host migrates from 3rd party MDM to Fleet when automatic migration is turned on.
pass/fail
OS settingsVerify OS settings functionality
  1. Verify Profiles upload/download/delete (macOS & Windows).
  2. Verify Profiles are delivered to host and applied.
pass/fail
Setup experienceVerify macOS Setup experience
  1. Configure End user authentication.
  2. Upload a Bootstrap package.
  3. Add software (FMA, VPP, & Custom pkg)
  4. Add a script
  5. Enroll an ADE-eligible macOS host and verify successful authentication.
  6. Verify Bootstrap package is delivered.
  7. Verify SwiftDialogue window displays.
  8. Verify software installs and script runs.
pass/fail
OS updatesVerify OS updates flow
  1. Configure OS updates (macOS & Windows).
  2. Verify on-device that Nudge prompt appears (macOS 13).
  3. Verify enforce minimumOS occurs during enrollment (macOS 14+).
pass/fail
iOS/iPadOSVerify enrollment, profiles, & software installs
  1. Verify ADE enrollment.
  2. Verify OTA enrollment.
  3. Verify Profiles are delivered to host and applied.
  4. Verify VPP apps install & display correctly in Activity feed.
  5. Verify Turn Off MDM for BYOD & ADE hosts.
pass/fail
Lock & WipeVerify hosts can be locked & wiped
  1. Verify locking a host from the Fleet UI (macOS, Windows, & Linux)
  2. Verify unlocking a host from the Fleet UI (macOS, Windows, & Linux)
  3. Verify wiping a host from the Fleet UI (macOS, Windows, & Linux)
  4. Verify wiping and locking hosts using fleetctl (macOS, Windows, & Linux)
pass/fail
Certificates UploadAPNs cert and ABM token renewal workflow
  1. Renew APNs Certificate.
  2. Renew ABM Token.
  3. Ensure ADE hosts can enroll.
pass/fail

Software

Test nameStep instructionsExpected resultpass/fail
$Name{what a tester should do}{what a tester should see when they do that}pass/fail
Query flowCreate, edit, run, and delete queries.
  1. permissions regarding creating/editing/deleting queries are up to date with documentation
  2. syntax errors result in error messaging
  3. queries can be run manually
pass/fail
Host FlowVerify a new host can be added and removed following modal instructions using your own device.
  1. Host is added via command line
  2. Host serial number and date added are accurate
  3. Host is not visible after it is deleted
  4. Warning and informational modals show when expected and make sense
pass/fail
My device pageVerify the end user's my device page loads successfully.
  1. Clicking the Fleet desktop item, then "My device" successfully loads the my device page.
  2. The "My device" page is populated correctly and as expected.
  3. Styling and padding appears correct.
pass/fail
ScriptsVerify script library and execution
  1. Verify able to run a script on all host types from CLI.
  2. Verify scripts library upload/download/delete.
  3. From Host details (macOS, Windows, & Linux) run a script that should PASS, verify.
  4. From Host details (macOS, Windows, & Linux) run a script that should FAIL, verify.
  5. Verify UI loading state and statuses for scripts.
  6. Disable scripts globally and verify unable to run.
  7. Verify scripts display correctly in Activity feed.
pass/fail
SoftwareVerify software library and install / download
  1. Verify software library upload/download/delete.
  2. From Host details (macOS, Windows, & Linux) run an install that should PASS, verify.
  3. From My Device (macOS, Windows, & Linux) software tab should have self-service items available, verify.
  4. Verify UI loading state and statuses for installing software.
  5. Verify software installs display correctly in Activity feed.
pass/fail
Migration TestVerify Fleet can migrate to the next version with no issues.

Using the github action https://github.com/fleetdm/fleet/actions/workflows/db-upgrade-test.yml

  1. Using the most recent stable version of Fleet and main, click Run workflow
  2. Enter the Docker tag of Fleet starting version, e.g. 'v4.64.2'
  3. Enter the Docker tag of Fleet version to upgrade to, e.g. 'rc-minor-fleet-v4.65.0'
  4. Click Run workflow.
  5. Action should complete successfully.
pass/fail

All Product Groups

Test nameStep instructionsExpected resultpass/fail
$Name{what a tester should do}{what a tester should see when they do that}pass/fail
Release blockersVerify there are no outstanding release blocking tickets.
  1. Check this filter to view all open ~release blocker tickets.
  2. If any are found raise an alarm in the #help-engineering and #g-mdm (or #g-endpoint-ops) channels.
pass/fail
Load tests - minor releases only unless otherwise specifiedVerify all load test metrics are within acceptable range on final build of RC.
  1. Check this Google doc to review load test key metrics and checks.
  2. After all expected changes have been merged to the RC branch, two load tests will need to be run - a new instance with no data, and a migrated instance.
  3. For the new instance with no data, set up a load test environment using the RC branch and allow it at least 24hrs of run time.
  4. For the migrated instance, set up a load test environment on the previous minor release branch. Once the environment has been set up and stabilized, follow the instructions in Deploying code changes to fleet to migrate to the RC branch. Monitor the metrics post-migration to determine if any performance issues arise.
  5. Record metrics in this spreadsheet for the two load test runs.
pass/fail

Notes

Issues found new to this version:

Issues found that reproduce in last stable version:

What has not been tested:

Include any notes on whether issues should block release or not as needed:



fleetd agent:

Includes updates to:

  • Orbit: True / False
  • Desktop: True / False
  • Chrome extension: True / False

List versions changes for any component updates below:

  • Orbit v1.xx.x > v1.xx.x
  • Desktop v1.xx.x > v1.xx.x
  • Chrome extension v1.xx.x > v1.xx.x

Testing gates for new fleetd release

Goal: Ensure new fleetd is tested and promoted from local > edge > stable channels

  1. Build a new fleetd from the release candidate branch as needed for Orbit, Desktop, and Chrome Extension.
Test nameStep instructionsExpected resultpass/fail
$Name{what a tester should do}{what a tester should see when they do that}pass/fail
`fleetd` local testing 1. Following [Testing TUF]([url](https://github.com/fleetdm/fleet/blob/main/tools/tuf/test/README.md)) instructions create binaries for Mac, Windows, and Ubuntu using your local TUF repository and install on macOS, Linux, and Windows hosts.
1. Confirm the hosts install with the updated version and are working correctly.
2. Confirm any new features and/or bug fixes associated with this release are working as intended.
pass/fail
`fleetd` auto-update tests 1. Conduct the [`fleetd` auto-update n+1 test]([url](https://github.com/fleetdm/fleet/blob/main/tools/tuf/test/Fleetd-auto-update-test-guide.md))
2. QA certifies new release by commenting in issue.
1. Agent successfully auto-updates.
2. Issue is certified by QA.
pass/fail
`fleetd` tests 1. Set up a host in your instance to receive updates from the `edge` channels.
2. Work with engineer leading the release to push changes to the `edge` channel.
1. Confirm the hosts running on the edge channel receive the update and are working correctly.
2. Confirm any new features and/or bug fixes associated with this release are working as intended.
pass/fail

New fleetd pushed to edge

Goal: Ensure fleetd version pushed to edge is working with the current released version of fleet.

  1. Fleet server is running the latest released version available on Fleet Releases page.
  2. Set Agent options to use edge in the Fleet server configuration. For example:
    update_channels:
    osqueryd: edge
    orbit: edge
    desktop: edge
Test nameStep instructionsExpected resultpass/fail
$Name{what a tester should do}{what a tester should see when they do that}pass/fail
Query flowRun queries. 1. Queries can be run manually pass/fail
Host FlowVerify a new host can be added using your own device. 1. Hosts can enroll and report correct version of `fleetd` (orbit, osquery, desktop).
2. Refetching host vitals completes and returns updated information.
pass/fail
My device pageVerify the end user's my device page loads successfully. 1. Clicking the Fleet desktop item, then "My device" successfully loads the my device page.
2. The "My device" page is populated correctly and as expected.
3. Styling and padding appears correct.
pass/fail
ScriptsVerify script execution 1. Verify able to run a script on all host types from CLI.
2. From Host details (macOS, Windows, & Linux) run a script that should PASS, verify.
3. From Host details (macOS, Windows, & Linux) run a script that should FAIL, verify.
4. Verify script results display correctly in Activity feed.
pass/fail
SoftwareVerify software install / download 1. From Host details (macOS, Windows, & Linux) run an install that should PASS, verify.
2. From My Device (macOS, Windows, & Linux) software tab should have self-service items available, verify.
3. Verify software installs display correctly in Activity feed.
pass/fail
OS settingsVerify OS settings functionality 1. Verify able to configure Disk encryption (macOS, Windows, & Linux).
2. Verify host enrolled with Disk encryption enforced successfully encrypts.
pass/fail
Packs flowVerify management, operation, and logging of ["2017 packs"](https://fleetdm.com/handbook/company/why-this-way#why-does-fleet-support-query-packs). 1. Packs successfully run on host machines after migrations
2. New Packs can be created.
3. Packs can be edited and deleted
4. Packs results information is logged
pass/fail

Notes

Issues found new to this version:

Issues found that reproduce in last stable version:

What has not been tested:

Include any notes on whether issues should block release or not as needed: