QA/shield-preference-experiments

From MozillaWiki
< QA
Jump to: navigation, search

Revision History

This section describes the modifications that have been made to this wiki page. A new row has been completed each time the content of this document is updated (small corrections for typographical errors do not need to be recorded). The description of the modification contains the differences from the prior version, in terms of what sections were updated and to what extent.

Date Version Author Description
5/16/2017 1.0 Adrian Florinescu Created first draft
6/07/2017 1.1 Adrian Florinescu Updates

Overview

Scope

This wiki details the testing that will be performed by the QA-Eng team for the SHIELD project. SHIELD is a system add-on that addresses user attrition and satisfaction in Firefox. QA focus shall be given mainly to:

  • New type Recipes: "Preference Experiment"
  • Check Shield changes to business logic:
    • before: Shield was checking for new recipes @ browser open
    • now: Shield checks for recipes every 24h
      • if a pref. experiment is disabled Shield cleans up/ unless the pref. has been changed by user.
  • Opt-in is automatic if FF user matches the filters


Ownership

Project Owner: Gregg Lind Gregg Lind [:gregglind ]
Product Manager: Matt Grimes [:Matt_G]
Development: Michael Cooper [:mythmon]
Development: Michael Kelly [:Osmose]


PM, QA Engineeting Team - Rares Bologa
QA Engineering Team - Adrian Florinescu
QA Engineering Team - Ovidiu Boca

Testing summary

Scope of Testing

In Scope

Detail what is in scope from a testing perspective for the project team:

  • Testing the admin interface : control center -> basic functionality of creating/updating a Preference Experiment Recipe
  • Minimal Preference Experiment recipe delivery: should cover testing of the new type recipe integration with the Firefox client
  • Basic recipe filters: the testing will cover that the new type recipes are delivered and executed.
  • Auto opt-in and experiment expiration
  • Experiment cancellation + timeout.

Out of Scope

  • Control Center (only basic interaction covered)


Requirements for testing

Environments

  • OSX 10.10
  • Ubuntu 16.04 x64
  • Windows 10 x64

See Channel Configuration

Channel dependent settings (configs) and environment setups

Nightly

The System Add-on is to be tested with two configurations:

  • 1. Mock test recipes - emulation of recipes

Documentation on: https://normandy-mock.dev.mozaws.net/

  1. Obtain a copy of Firefox with the SHIELD recipe client system add-on installed. You can check about:support to ensure that you have it.
  2. Set the extensions.shield-recipe-client.dev_mode preference to true to run recipes immediately on startup.
  3. Set the extensions.shield-recipe-client.logging.level preference to 0 to enable more logging.
  4. Set the security.content.signature.root_hash preference to 4C:35:B1:C3:E3:12:D9:55:E7:78:ED:D0:A7:E7:8A:38:83:04:EF:01:BF:FA:03:29:B2:46:9F:3C:C5:EC:36:04. This is the public hash used for verifying content signatures of the test data.
  5. The preference value for extensions.shield-recipe-client.api_url should be set for the mock recipe you want to run.


  • 2. Staging server - using Shield System addon and the staging Control Center
  1. You need VPN access.
  2. Obtain a copy of Firefox with the SHIELD recipe client system add-on installed. You can check about:support to ensure that you have it.
  3. Set the extensions.shield-recipe-client.dev_mode preference to true to run recipes immediately on startup.
  4. Set the extensions.shield-recipe-client.logging.level preference to 0 to enable more logging.
  5. Set the security.content.signature.root_hash preference to DB:74:CE:58:E4:F9:D0:9E:E0:42:36:BE:6C:C5:C4:F6:6A:E7:74:7D:C0:21:42:7A:03:BC:2F:57:0C:8B:9B:90.
  6. Set extensions.shield-recipe-client.api_url to https://normandy-admin.stage.mozaws.net/api/v1
  7. To access control center, https://normandy-admin.stage.mozaws.net/control/.


Beta

TBD

Post Beta / Release

Test Strategy

Test Objectives

This section details the progression test objectives that will be covered. Please note that this is at a high level. For large projects, a suite of test cases would be created which would reference directly back to this master. This could be documented in bullet form or in a table similar to the one below.

Ref Function Test Objective Test Type Risk Assessment and Coverage(RAC) Owners
TO-1 Control Center - create pref. experiment repice To verify basic functionality of experiment recipes Manual RAC-1 Eng Team
TO-2 Prefs. Experiment recipes fetching and execution To verify that prefs. experiment recipes are fetched and executed when filter is met Manual RAC-2 Eng Team
TO-3 Shield check for recipes change To verify that Shield now checks for recipes every 24hrs Manual RAC-1 Eng Team
TO-4 Prefs. Experiment recipes integration with FF. To verify the basic functionality of a prefs. experiment recipe executed on FF client Manual RAC-1, RAC-2, RAC-3 Eng Team
TO-5 Recipes execution business logic Checks that prefs. experiments recipes are not affected by the 24hrs logic and checks that heartbeats are Manual RAC-1, RAC-4 Eng Team
TO-6 Preferences set by Shield recipes are disabled when filter doesn't match Shield Exp. gets disabled when an update to FF triggers the user not to match the recipe anymore Manual RAC-4 Eng Team

Risk Assessment and Coverage

ID Description / Threat Description Covered by Test Objective Magnitude Probability Priority Impact Score
RAC-1 Experiment Recipes are not run when experiment filter == true TO-1, TO-3, TO-4, TO-5 3-High 2-Possible 3-High 18
RAC-2 Experiment Filter conditions are not returning the expected results TO-2, TO-4 3-High 2-Possible 3-High 18
RAC-3 Experiment is not disabled when filters do not qualify the user anymore for the exp. TO-3 3-High 2-Possible 3- High 18
RAC-4 Integration between Heartbeats and Experiment Prefs. TO-5, TO-6 3-High 2-Possible 2-Medium 12

Values:

  • Magnitude: 1- Low , 2-Moderate, 3-High
  • Probability: 1-Unlikely, 2-Possible, 3-Almost Certain
  • Priority: 1 - Low, 2-Medium, 3-High

Impact Score Breakdown:

  • An impact value of 1, 2, 3, 4 would describe an area which although should be covered there aren't expected any discoveries of critical issues.
  • An impact value of 6, 8, 9, 12 would describe an area in which we expect to find issues but those issues are not expected to be critical.
  • An impact value of 18 or 27 would describe an area on which it is likely to find issues and those issues to be critical or blockers.

Builds

This section should contain links for builds with the feature -

  • Links for Nightly builds
  • Links for Beta builds

Test Execution Schedule

The following table identifies the anticipated testing period available for test execution.

Project phase Start Date End Date
Start project 05.16.2017
Study documentation/specs received from developers 05.15.2017
QA - Test plan creation 05.16.2017
QA - Test cases/Env preparation 05.16.2017
QA - Nightly Testing 05.16.2017
QA - Beta Testing TBD TBD
Release Date TBD TBD

Testing Tools

Detail the tools to be used for testing, for example see the following table:

Process Tool
Test plan creation Mozilla wiki
Test case creation Test Rail
Test case execution Test Rail
Bugs management Bugzilla / Git

References

https://bugzilla.mozilla.org/show_bug.cgi?id=1359664

Testcases

Overview

Summary of testing scenarios - TBD

Test Areas

Test Areas Covered Details Reviewer
Private Window Yes Osmose
Multi-Process Enabled Yes Osmose
Multi-process Disabled Yes Osmose
Theme (high contrast) No Osmose
UI
Mouse-only operation No Osmose
Keyboard-only operation No Osmose
Display (HiDPI) No Osmose
Interraction (scroll, zoom) No Osmose
Usable with a screen reader No Osmose
Usability and/or discoverability testing Yes Is this feature user friendly Osmose
Help/Support
Help/support interface required No future plans to have something related to this, but not in the first versions Osmose
Support documents planned(written) Yes Make sure support documents are written and are correct. Osmose
Install/Upgrade
Feature upgrades/downgrades data as expected Yes Modifications to preferences should rollback cleanly Osmose
Does sync work across upgrades No Osmose
Requires install testing No System addon Osmose
Affects first-run or onboarding No Osmose
Does this affect partner builds? Partner build testing No Osmose
Enterprise Raise up the topic to developers to see if they are expecting to work different on ESR builds
Enterprise administration No Osmose
Network proxies/autoconfig No Osmose
ESR behavior changes No Osmose
Locked preferences Yes Locked preferences should be able to be modified Osmose
Data Monitoring
Temporary or permanent telemetry monitoring Yes Osmose
Telemetry correctness testing No Osmose
Server integration testing Yes Chris H handles it Osmose
Offline and server failure testing Yes Chris H handles it Osmose
Load testing No Osmose
Add-ons If add-ons are available for testing feature, or is current feature will affect some add-ons, then API testing should be done for the add-on.
Addon API required? No Osmose
Comprehensive API testing No Osmose
Permissions No Osmose
Testing with existing/popular addons No Osmose
Security Security is in charge of Matt Wobensmith. We should contact his team to see if security testing is necessary for current feature. Osmose
3rd-party security review TBD Osmose to advice further on this Osmose
Privilege escalation testing No Osmose
Fuzzing TBD Osmose to advice further on this Osmose
Web Compatibility depends on the feature
Testing against target sites No Osmose
Survey of many sites for compatibility No Osmose
Interoperability depends on the feature
Common protocol/data format with other software: specification available. Interop testing with other common clients or servers. No Osmose
Coordinated testing/interop across the Firefoxes: Desktop, Android, iOS No Osmose
Interaction of this feature with other browser features yes test modification of preferences that affect other features, like e10s Osmose

Test suite

Full Test suite - Link within TestRail [link]

Bug Work

Tracking bugs:



Bug work
  • bug 1359664 - [Tracker] SHIELD Preference Experiments]
Full Query
ID Priority Component Assigned to Summary Status Target milestone
1359655 -- Normandy Client Osmose [:osmose, :mkelly] Sync shield-recipe-client from GitHub (commit e37261c) RESOLVED ---
1368703 -- General Osmose [:osmose, :mkelly] [Shield][Control Center] - Trim Slug/ Slug branches left/right RESOLVED ---
1368724 -- General Osmose [:osmose, :mkelly] [Shield] Handle the error in the cases where the Pref. Experiment is aborted RESOLVED ---
1368977 -- General Osmose [:osmose, :mkelly] [Shield] Executing Heartbeat type recipe fail - TypeError: can't access dead object VERIFIED ---
1370913 -- General [Shield] Pref. Experiment is executed when recipe Preference branch type differs from the one set on FF client RESOLVED ---
1371053 -- Normandy Client Osmose [:osmose, :mkelly] Re-enable Shield System Add-on for Beta and Release Channels RESOLVED ---

6 Total; 0 Open (0%); 5 Resolved (83.33%); 1 Verified (16.67%);

Sign off

Criteria

Check list

  • All test cases should be executed
  • Has sufficient automated test coverage (as measured by code coverage tools) - coordinate with RelMan
  • All blockers, criticals must be fixed and verified or have an agreed-upon timeline for being fixed (as determined by engineering/RelMan/QA)

Checklist

Exit Criteria Status Notes/Details
Testing Prerequisites (specs, use cases) done
Testing Infrastructure setup done
Test Plan Creation done
Test Cases Creation done
Full Functional Tests Execution done
Automation Coverage yes
Performance Testing no
All Defects Logged no defects logging split between Bugzilla and Git
Critical/Blockers Fixed and Verified yes
Daily Status Report (email/etherpad statuses/ gdoc with results) Yes when required
Metrics/Telemetry N/A
QA Signoff - Nightly Release N/A System Add-on
QA Aurora - Full Testing N/A System Add-on
QA Signoff - Aurora Release N/A System Add-on
QA Beta - Full Testing N/A System Add-on
QA Signoff - Beta Release N/A System Add-on