6
Testing
JR Conlin edited this page 2020-12-04 09:02:30 -08:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Types of tests:

Automated

Manual

  • You can perform sync testing for the environments by adjusting configuration on the various sync clients.
  • If testing Android, you may wish to enable android dev mode, and point to a local or stage sync server.
  • Manual test plans:
    • Durable Sync test plan - Test plan used by Softvision for both the initial rollout and user migration for Durable Sync.
  • Regular sync testing against staging is currently performed on a weekly cadence by Softvision as part of the Firefox train releases. Heres a list of the tests performed.
  • If you open up one of those tests (ie here) you can see under “preconditions” theres a set of testing instructions. Based on those instructions, we can confirm that SV is already testing against staging instance of Durable Sync here.
  • If QA finds an issue in staging, they should contact #services-engineering for triage. Well identify if the issue is worth rolling a new release for staging, or if its safe to allow the issue to roll out to production without being immediately addressed. If a new release needs to be created, we need to also be cautious to understand what else may have been merged to master since the previous release so as not to introduce any unwanted changes that may go untested.

Tools

  • We have a collection of example bookmark files and tools here that can be useful when performing manual testing.
  • There is also a collection of Conditioned Profiles that can be useful in both manual and automated tests.

Process:

For regular releases:

  • Code changes are required as part of the release creation process, which means all the automated tests via CircleCI will be run.

For major/high risk releases:

A major/high risk release is identified by the team as something that either impacts a large section of the codebase (ie, sweeping re-write), or is a change that we have other reason to suspect might need some extra attention. An example of this can be found here (identified by team as high risk because of the pagination optimization), or changes to the spanner queries that wed like to perform additional specific tests against.

  • Same as regular releases AND:
  • Additional load tests run as needed.
  • Release manager or EM/EPM should ensure we have an appropriate PI request created to coordinate manual testing. Well want to get this request in as early as possible to ensure time for coordination with the QA team. See here for more details on the PI Request process.
  • If the releases fixes a security issue, make sure to involve Security.

If were adding new tests as part of a release, well need to pay attention to make sure theyre actually being run automatically. If not, they may need to be manually triggered for the first release create that includes them.