QA/Shield
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/12/2016 | 1.0 | Adrian Florinescu | Created first draft |
| 10/10/2016 | 1.1 | Adrian Florinescu | Updates |
| 11/10/2016 | 1.2 | Adrian Florinescu | Updates |
| 17/10/2016 | 1.3 | Adrian Florinescu | Updates |
| 21/02/2017 | 2.0 | 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 addon that addresses user attrition and satisfaction in Firefox. QA focus shall be given mainly to:
- SHIELD Recipe management
- SHIELD Control center (recipe administration center)
- Delivery system for the Shield recipes: how and if the filter expressions are targeting a certain niche of the FF users.
Ownership
Project Owner: Gregg Lind [:gregglind ]
Product Manager: Matt Grimes [:Matt_G]
Development: Michael Cooper [:mythmon]
Development: Michael Kelly [:Osmose]
Development: Gregg Lind [:gregglind]
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 recipe from the functional point of view
- Minimal recipe delivery: should cover integration with the Firefox client
- Basic recipe filters: the testing will cover that the recipes are delivered and executed to the intended bucket of people.
- Basic performance variations on FF browser: the testing shall cover basic scenarios to identify that broken or extreme recipes do not affect negatively FF
Out of Scope
-
Requirements for testing
Environments
TBD - Specify OSes that need to be covered Specify other configuration/environmental setup needed - The preliminary testing phase shall take place in Nightly 52, but the requirements for testing Shield as it graduates to system add-on will change. 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/
- 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/.
Aurora
text
Beta
text
Post Beta / Release
text
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 | Evaluation Criteria | Test Type | Owners |
|---|---|---|---|---|---|
| 1 | Control Center | Admin interface allows admin users to add/edit recipes | Basic configuration actions are possible | Manual/Usability | Eng Team |
| 2 | Recipe execution | Recipes created in the admin interface are delivered to the Client FF | The FF Client receives and executes the recipe | Manual | Eng Team |
| 3 | Peer approval | Recipes created in the admin interface need peer approval to be enabled | Each recipe created in the admin interface cannot be run without peer approval | Manual | Eng Team |
| 4 | Filter Expressions | Each recipe targets a particular bucket defined in filter expressions area in admin | Only FF matching the filter expressions will run the recipe | Manual | Eng Team |
| 5 | Sampling | Basic check on client running the recipe ratio | Heuristic approach to do a basic checking of the sampling set in the recipe | Manual | Eng Team |
Builds
This section should contain links for builds with the feature -
- Links for Nightly builds
- Links for Aurora 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 | 10.05.2016 | |
| Study documentation/specs received from developers | 10.05.2016 | |
| QA - Test plan creation | 12.05.2016 | |
| QA - Test cases/Env preparation | 23.06.2016 | |
| QA - Nightly Testing | ||
| QA - Aurora Testing | ||
| QA - Beta Testing | ||
| Release Date |
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 |
Status
Overview
Track the dates and build number where feature was released to Nightly Track the dates and build number where feature was merged to Aurora Track the dates and build number where feature was merged to Release/Beta
Risk analysis
Identify the high-risk assumptions Identify existing bugs on the feature with high risk Identify if other areas are affected by the fix
References
- List and links for specs
Testcases
Overview
Summary of testing scenarios - TBD
Test Areas
| Test Areas | Covered | Details | Reviewer |
|---|---|---|---|
| Private Window | Yes | Osmose, Mythmon | |
| Multi-Process Enabled | Yes | Osmose, Mythmon | |
| Multi-process Disabled | Yes | Osmose, Mythmon | |
| Theme (high contrast) | Yes | Osmose, Mythmon | |
| UI | |||
| Mouse-only operation | Yes | Osmose, Mythmon | |
| Keyboard-only operation | Yes | Osmose, Mythmon | |
| Display (HiDPI) | No | Osmose, Mythmon | |
| Interraction (scroll, zoom) | Yes | the heartbeat bar shouldn't zoom (same behavior as the url bar) | Osmose, Mythmon |
| Usable with a screen reader | No | Osmose, Mythmon | |
| Usability and/or discoverability testing | Yes | Is this feature user friendly | Osmose, Mythmon |
| Help/Support | |||
| Help/support interface required | No | future plans to have something related to this, but not in the first versions | Osmose, Mythmon |
| Support documents planned(written) | Yes | Make sure support documents are written and are correct. | Osmose, Mythmon |
| Install/Upgrade | |||
| Feature upgrades/downgrades data as expected | No | Osmose, Mythmon | |
| Does sync work across upgrades | No | Osmose, Mythmon | |
| Requires install testing | No | System addon | Osmose, Mythmon |
| Affects first-run or onboarding | Yes | at least some tcs ran for first run | Osmose, Mythmon |
| Does this affect partner builds? Partner build testing | Yes | Osmose, Mythmon | |
| Enterprise | Raise up the topic to developers to see if they are expecting to work different on ESR builds | ||
| Enterprise administration | No | Osmose, Mythmon | |
| Network proxies/autoconfig | No | Osmose, Mythmon | |
| ESR behavior changes | No | Osmose, Mythmon | |
| Locked preferences | No | Osmose, Mythmon | |
| Data Monitoring | |||
| Temporary or permanent telemetry monitoring | Yes | Osmose, Mythmon | |
| Telemetry correctness testing | Yes | Osmose, Mythmon | |
| Server integration testing | Yes | Chris H handles it | Osmose, Mythmon |
| Offline and server failure testing | Yes | Chris H handles it | Osmose, Mythmon |
| Load testing | No | Osmose, 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 | Osmose, Mythmon | |
| Comprehensive API testing | No | Osmose, Mythmon | |
| Permissions | No | Osmose, Mythmon | |
| Testing with existing/popular addons | Yes | Pop-up blocker, privacy addons, profile json, test pilot integration testing: talk with BM team about effort | Osmose, Mythmon |
| Security | Security is in charge of Matt Wobensmith. We should contact his team to see if security testing is necessary for current feature. | Osmose, Mythmon | |
| 3rd-party security review | TBD | osmoses to advice further on this | Osmose, Mythmon |
| Privilege escalation testing | No | Osmose, Mythmon | |
| Fuzzing | TBD | osmoses to advice further on this | Osmose, Mythmon |
| Web Compatibility | depends on the feature | ||
| Testing against target sites | No | Osmose, Mythmon | |
| Survey of many sites for compatibility | Yes | scenarios with heartbeat redirect with addon blocker and blocked site | Osmose, Mythmon |
| Interoperability | depends on the feature | ||
| Common protocol/data format with other software: specification available. Interop testing with other common clients or servers. | No | Osmose, Mythmon | |
| Coordinated testing/interop across the Firefoxes: Desktop, Android, iOS | No | Osmose, Mythmon | |
| Interaction of this feature with other browser features | yes | test if it's possible to send to the about:accounts as a survey page | Osmose, Mythmon |
Test suite
Full Test suite - Link within TestRail link
Bug Work
Tracking bugs:
- Bug 1275996 - [Tracker] SHIELD System Add-on v1.0
- Bug 1308656 - [Land shield-recipe-client as system addon
Bug fix verification
| Bug No | Summary | Status | Firefox Verion |
|---|---|---|---|
| 123 | bug summary | NEW | Nighly 45 |
Logged bugs
Bug 111111
Bug 211111
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)
Results
Nightly testing
List of OSes that will be covered by testing
- Link for the tests run
Merge to Aurora Sign-off
List of OSes that will be covered by testing
- Link for the tests run
- Full Test suite
Checklist
| Exit Criteria | Status | Notes/Details |
|---|---|---|
| Testing Prerequisites (specs, use cases) | ||
| Testing Infrastructure setup | ||
| Test Plan Creation | ||
| Test Cases Creation | ||
| Full Functional Tests Execution | ||
| Automation Coverage | ||
| Performance Testing | ||
| All Defects Logged | ||
| Critical/Blockers Fixed and Verified | ||
| Daily Status Report (email/etherpad statuses/ gdoc with results) | ||
| Metrics/Telemetry | ||
| QA Signoff - Nightly Release | Email to be sent | |
| QA Aurora - Full Testing | ||
| QA Signoff - Aurora Release | Email to be sent | |
| QA Beta - Full Testing | ||
| QA Signoff - Beta Release | Email to be sent |