Skip to content

Testing

JR Conlin edited this page Dec 4, 2020 · 6 revisions

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. Here’s a list of the tests performed.
  • If you open up one of those tests (ie here) you can see under “preconditions” there’s 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. We’ll identify if the issue is worth rolling a new release for staging, or if it’s 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 we’d 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. We’ll 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 we’re adding new tests as part of a release, we’ll need to pay attention to make sure they’re actually being run automatically. If not, they may need to be manually triggered for the first release create that includes them.

Clone this wiki locally