QA/Shield Opt Out Studies: Difference between revisions
| Line 238: | Line 238: | ||
|- | |- | ||
| Theme (high contrast) | | Theme (high contrast) | ||
|style="text-align:center;" | | |style="text-align:center;" | Yes || - about:studies || Osmose | ||
|- | |- | ||
| '''UI''' | | '''UI''' | ||
| Line 244: | Line 244: | ||
|- | |- | ||
| Mouse-only operation | | Mouse-only operation | ||
|style="text-align:center;" | | |style="text-align:center;" | Yes || - about:studies || Osmose | ||
|- | |- | ||
| Keyboard-only operation | | Keyboard-only operation | ||
|style="text-align:center;" | | |style="text-align:center;" | Yes || - about:studies || Osmose | ||
|- | |- | ||
| Display (HiDPI) | | Display (HiDPI) | ||
|style="text-align:center;" | | |style="text-align:center;" | Yes || - about:studies|| Osmose | ||
|- | |- | ||
| Interraction (scroll, zoom) | | Interraction (scroll, zoom) | ||
|style="text-align:center;" | | |style="text-align:center;" | Yes || - about:studies || Osmose | ||
|- | |- | ||
| Usable with a screen reader | | Usable with a screen reader | ||
|style="text-align:center;" | | |style="text-align:center;" | Yes || - about:studies || Osmose | ||
|- | |- | ||
| Usability and/or discoverability testing | | Usability and/or discoverability testing | ||
| Line 266: | Line 266: | ||
|- | |- | ||
| Help/support interface required | | Help/support interface required | ||
|style="text-align:center;" | | |style="text-align:center;" | Yes || sumo-page for about:studies || Osmose | ||
|- | |- | ||
| Support documents planned(written) | | Support documents planned(written) | ||
| Line 276: | Line 276: | ||
|- | |- | ||
| Feature upgrades/downgrades data as expected | | Feature upgrades/downgrades data as expected | ||
|style="text-align:center;" | Yes || | |style="text-align:center;" | Yes || || Osmose | ||
|- | |- | ||
| Does sync work across upgrades | | Does sync work across upgrades | ||
|style="text-align:center;" | | |style="text-align:center;" | TDB - the sync actually syncs add-ons || || Osmose | ||
|- | |- | ||
| Requires install testing | | Requires install testing | ||
| Line 304: | Line 304: | ||
|- | |- | ||
| Locked preferences | | Locked preferences | ||
|style="text-align:center;" | | |style="text-align:center;" | No || || Osmose | ||
|- | |- | ||
| Line 346: | Line 346: | ||
|- | |- | ||
| 3rd-party security review | | 3rd-party security review | ||
|style="text-align:center;" | | |style="text-align:center;" | No || || Osmose | ||
|- | |- | ||
| Privilege escalation testing | | Privilege escalation testing | ||
| Line 352: | Line 352: | ||
|- | |- | ||
| Fuzzing | | Fuzzing | ||
|style="text-align:center;" | | |style="text-align:center;" | No || - || Osmose | ||
|- | |- | ||
| Line 375: | Line 375: | ||
|- | |- | ||
| Interaction of this feature with other browser features | | Interaction of this feature with other browser features | ||
|style="text-align:center;" | | |style="text-align:center;" | no || || Osmose | ||
|} | |} | ||
Revision as of 15:01, 14 August 2017
Approvals Required / Received
The following individuals are required to/have approved this Test Plan:
| Name | Title | Department | Approval Date | Method |
|---|---|---|---|---|
| QA Manager | Product Integrity | Date | ||
| Software Engineer | Engineering | Date | ||
| EPM | Product Management | Date |
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.
- After the user matches the filter expression and the recipe is executed:
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
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/
- 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.
- Set the extensions.shield-recipe-client.dev_mode preference to true to run recipes immediately on startup.
- Set the extensions.shield-recipe-client.logging.level preference to 0 to enable more logging.
- 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.
- 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
- You need VPN access.
- 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.
- Set the extensions.shield-recipe-client.dev_mode preference to true to run recipes immediately on startup.
- Set the extensions.shield-recipe-client.logging.level preference to 0 to enable more logging.
- 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.
- Set extensions.shield-recipe-client.api_url to https://normandy-admin.stage.mozaws.net/api/v1
- 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 | - | 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 addon when the filter do not match | Manual | - | 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 | 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 | 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
- List and links for specs
- Meta Bug 1388092 - QA tracker for opt-out studies
- opt-out-study: Install a Study Add-on Without Prompting
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) | Yes | - about:studies | Osmose |
| UI | |||
| Mouse-only operation | Yes | - about:studies | Osmose |
| Keyboard-only operation | Yes | - about:studies | Osmose |
| Display (HiDPI) | Yes | - about:studies | Osmose |
| Interraction (scroll, zoom) | Yes | - about:studies | Osmose |
| Usable with a screen reader | Yes | - about:studies | Osmose |
| Usability and/or discoverability testing | Yes | Is this feature user friendly | Osmose |
| Help/Support | |||
| Help/support interface required | Yes | sumo-page for about:studies | 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 | Osmose | |
| Does sync work across upgrades | TDB - the sync actually syncs add-ons | 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 | No | 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 | No | Osmose | |
| Privilege escalation testing | No | Osmose | |
| Fuzzing | No | - | 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 | no | Osmose |
Test suite
Full Test suite - Link within TestRail [link]
Bug Work
Tracking bugs:
Bug work
- bug 1388092 - {Tracker} QA tracker for opt-out studies]
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 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 |