QA/Shield Opt Out Studies

From MozillaWiki
< QA
Jump to: navigation, search

Approvals Required / Received

The following individuals are required to/have approved this Test Plan:

Name Title Department Approval Date Method
Lawrence Mandel/Ryan VanderMeulen QA Reviewer Product Integrity Date Email
Michael Kelly Software Engineer Engineering Date Email
Matt Grimes EPM Product Management Date Email



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
08/14/2017 1.0 Adrian Florinescu Created first draft

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: "Shield Opt Out Studies"
    • The opt-out-study action installs an add-on, typically one that implements a feature experiment by changing Firefox and measuring how it affects the user.
  • User flow
    • After the user matches the filter expression and the recipe is executed:
      • if the user is eligible for the study, they are enrolled.
      • and user is not enrolled if not eligible:
        • Their Shield add-on is too old to support add-on studies.
        • Their opt-out preference is set to false.
        • They have participated in this study/recipe previously.
        • They have an add-on installed with the same ID as the study add-on.

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 Shield Opt Out Study Recipe
  • Basic Shield Opt Out Study 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.
  • Shield Opt Out Study recipe expiration
  • Shield Opt Out Study recipe cancellation.

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 opt-out repice To verify basic functionality of opt-out recipes Manual RAC-1 Eng Team
TO-2 Opt-out recipes recipes fetching and execution To verify that opt-out recipes are fetched and executed when filter is met Manual RAC-1 Eng Team
TO-3 Opt-out recipes recipes integration with FF. To verify the basic functionality of a opt-out recipe executed on FF client Manual RAC-2 Eng Team
TO-4 Recipes execution business logic Checks that opt-out recipes are not affected by the 24hrs logic and checks that heartbeats are Manual RAC-1 Eng Team
TO-5 Opt-out recipes are not executed when user doesn't match the filter Shield opt-out experiment doesn't install the add-on when the filter do not match Manual - Eng Team
TO-6 Optout Study recipes allow both legacy and web extensions type add-ons Shield opt-out experiment installs both web extensions and legacy add-ons(signed) Manual RAC-3 Eng Team
TO-7 About:Studies lists the expected results The new page: about:studies lists the correct data and there is no page display issue (page update) Manual - Eng Team
TO-8 User is not enrolled into a study that he has participated in The OptOut recipe checks if the user has been enrolled in the same study or has been in one using the same add-on Manual RAC-5 Eng Team
TO-9 User is not enrolled into a study via sync study add-on installed Theoretically, the SHIELD study add-ons are outside AMO, so no add-on sync should be happening Manual RAC-7 Eng Team

Risk Assessment and Coverage

ID Description / Threat Description Covered by Test Objective Magnitude Probability Priority Impact Score
RAC-1 Opt-out 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 Integration between Heartbeats, Experiment Prefs. and Opt-out studies TO-5, TO-6 3-High 3- Almost Certain 3-High 27
RAC-3 Opt Out study addon do not allow both legacy and web extension type recipes TO-6 3-High 2-Possible 2-Medium 12
RAC-4 about:studies don't display the correct data TO-7 3-High 3- Almost Certain 2-Medium 18
RAC-5 An user is enrolled twice when the same add-on id is used TO-8 3-High 2-Possible 2-Medium 12
RAC-6 User is not automatically opt-out when add-on is uninstalled TO-5 3-High 2-Possible 2-Medium 12
RAC-7 Study Add-on is installed to different browser through sync TO-9 3-High 2-Possible 1-Medium 6

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 08.10.2017
Study documentation/specs received from developers 08.10.2017
QA - Test plan creation 08.14.2017
QA - Test cases/Env preparation 08.16.2017
QA - Nightly Testing 08.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

Testcases

Overview

Summary of testing scenarios - TBD

Test Areas

Test Areas Covered Details Reviewer
Private Window Yes Mythmon
Multi-Process Enabled Yes Mythmon
Multi-process Disabled Yes Mythmon
Theme (high contrast) Yes - about:studies Mythmon
UI
Mouse-only operation Yes - about:studies Mythmon
Keyboard-only operation Yes - about:studies Mythmon
Display (HiDPI) Yes - about:studies Mythmon
Interraction (scroll, zoom) Yes - about:studies Mythmon
Usable with a screen reader Yes - about:studies Mythmon
Usability and/or discoverability testing Yes Is this feature user friendly Mythmon
Help/Support
Help/support interface required Yes sumo-page for about:studies Mythmon
Support documents planned(written) Yes Make sure support documents are written and are correct. Mythmon
Install/Upgrade
Feature upgrades/downgrades data as expected Yes Mythmon
Does sync work across upgrades No Add-ons are synced through AMO, since Shield doesn't use AMO we shouldn't have this issue Mythmon
Requires install testing No System addon Mythmon
Affects first-run or onboarding No Mythmon
Does this affect partner builds? Partner build testing No Mythmon
Enterprise Raise up the topic to developers to see if they are expecting to work different on ESR builds
Enterprise administration No Mythmon
Network proxies/autoconfig No Mythmon
ESR behavior changes No Mythmon
Locked preferences No Mythmon
Data Monitoring
Temporary or permanent telemetry monitoring No The add-on/extension study handles it Mythmon
Telemetry correctness testing No The add-on/extension study handles it Mythmon
Server integration testing Yes Chris H handles it Mythmon
Offline and server failure testing Yes Chris H handles it Mythmon
Load testing No Mythmon
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 Mythmon
Comprehensive API testing No Mythmon
Permissions No Mythmon
Testing with existing/popular addons No Mythmon
Security Security is in charge of Matt Wobensmith. We should contact his team to see if security testing is necessary for current feature. Mythmon
3rd-party security review No Mythmon
Privilege escalation testing No Mythmon
Fuzzing No - Mythmon
Web Compatibility depends on the feature
Testing against target sites No Mythmon
Survey of many sites for compatibility No Mythmon
Interoperability depends on the feature
Common protocol/data format with other software: specification available. Interop testing with other common clients or servers. No Mythmon
Coordinated testing/interop across the Firefoxes: Desktop, Android, iOS No Mythmon
Interaction of this feature with other browser features no Mythmon

Test suite

Full Test suite -TestRail Suite Shield Suite

Bug Work

Tracking bugs:



Bug work
  • bug 1388092 - {Tracker} QA tracker for opt-out studies]
Full Query
ID Priority Component Assigned to Summary Status Target milestone
1388091 -- General [Shield][Control Center]Uploading new Addon for Opt-Out study fails RESOLVED ---
1390918 -- General Michael Kelly [:mkelly,:Osmose] [Shield][OptOut Studies] Recipe execution fails (normandy-admin.stage) RESOLVED ---
1392598 -- General Michael Cooper [:mythmon] [Shield] [Admin] [Opt-Out] /Extension/ page edit logic should be reviewed RESOLVED ---
1392935 -- General [Shield][Opt-Out Studies] about:studies - Learn More - Page not found VERIFIED ---
1392960 -- Preferences Michael Kelly [:mkelly,:Osmose] Privacy preference checkboxes don't match preference values when reached via about:preferences#privacy-reports RESOLVED Firefox 57
1392982 -- General [Shield][Admin] Cannot create any new Recipes VERIFIED ---
1393257 -- Normandy Client Michael Kelly [:mkelly,:Osmose] End in-progress add-on studies when the opt-out preference is switched off RESOLVED ---
1393751 -- General Michael Kelly [:mkelly,:Osmose] [Shield][Opt-Out] Cannot select Add-on from dropdown menu RESOLVED ---
1395147 -- General Andy Mikulski [:amikulski] [Shield][Opt-Out]Second page extensions cannot be used in recipes VERIFIED ---
1395223 -- General [Shield] Firefox fetches recipes and actions 2nd time in the same session 500s after startup (devmode on) RESOLVED ---
1395234 -- General [Shield] [Opt-Out] The Opt-Out study is not marked as completed once the study add-on is removed/disabled RESOLVED ---
1400897 P5 Normandy Client [Shield]about:studies page not found on session restore NEW ---
1400902 -- General Daniel Thorn [:relud] [Shield][Admin] Creating new extension with best-proxy switcher AMO add-on bounces off RESOLVED ---

13 Total; 1 Open (7.69%); 9 Resolved (69.23%); 3 Verified (23.08%);

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) in progress
Testing Infrastructure setup in progress
Test Plan Creation in progress
Test Cases Creation in progress
Full Functional Tests Execution in progress
Automation Coverage TBD
Performance Testing no
All Defects Logged in progress defects logging split between Bugzilla and Git
Critical/Blockers Fixed and Verified in progress
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 Beta - Full Testing N/A System Add-on
QA Signoff - Beta Release N/A System Add-on