QA/Shield: Difference between revisions

From MozillaWiki
< QA
Jump to navigation Jump to search
Line 206: Line 206:
|-
|-
| Private Window  
| Private Window  
|style="text-align:center;" | Yes || || Osmose, mythmon
|style="text-align:center;" | Yes || || Osmose, Mythmon
|-
|-
| Multi-Process Enabled  
| Multi-Process Enabled  
|style="text-align:center;" | Yes || || Osmose, mythmon
|style="text-align:center;" | Yes || || Osmose, Mythmon
|-
|-
| Multi-process Disabled  
| Multi-process Disabled  
|style="text-align:center;" | Yes || || Osmose, mythmon
|style="text-align:center;" | Yes || || Osmose, Mythmon
|-
|-
| Theme (high contrast)  
| Theme (high contrast)  
|style="text-align:center;" | Yes || || Osmose, mythmon
|style="text-align:center;" | Yes || || Osmose, Mythmon
|-
|-
| '''UI'''  
| '''UI'''  
Line 221: Line 221:
|-
|-
| Mouse-only operation   
| Mouse-only operation   
|style="text-align:center;" | Yes || || Osmose, mythmon
|style="text-align:center;" | Yes || || Osmose, Mythmon
|-
|-
| Keyboard-only operation   
| Keyboard-only operation   
|style="text-align:center;" | Yes || || Osmose, mythmon
|style="text-align:center;" | Yes || || Osmose, Mythmon
|-
|-
| Display (HiDPI)  
| Display (HiDPI)  
|style="text-align:center;" | No || || Osmose, mythmon
|style="text-align:center;" | No || || Osmose, Mythmon
|-
|-
| Interraction (scroll, zoom)  
| Interraction (scroll, zoom)  
|style="text-align:center;" | Yes || the heartbeat bar shouldn't zoom (same behavior as the url bar) || Osmose, mythmon
|style="text-align:center;" | Yes || the heartbeat bar shouldn't zoom (same behavior as the url bar) || Osmose, Mythmon
|-
|-
| Usable with a screen reader   
| Usable with a screen reader   
|style="text-align:center;" | No || || Osmose, mythmon
|style="text-align:center;" | No || || Osmose, Mythmon
|-
|-
| Usability and/or discoverability testing   
| Usability and/or discoverability testing   
|style="text-align:center;" | Yes || Is this feature user friendly || Osmose, mythmon
|style="text-align:center;" | Yes || Is this feature user friendly || Osmose, Mythmon


|-
|-
Line 243: Line 243:
|-
|-
| Help/support interface required   
| Help/support interface required   
|style="text-align:center;" | No || future plans to have something related to this, but not in the first versions || Osmose, mythmon
|style="text-align:center;" | No || future plans to have something related to this, but not in the first versions || Osmose, Mythmon
|-
|-
| Support documents planned(written)   
| Support documents planned(written)   
|style="text-align:center;" | Yes || Make sure support documents are written and are correct. || Osmose, mythmon
|style="text-align:center;" | Yes || Make sure support documents are written and are correct. || Osmose, Mythmon


|-
|-
Line 253: Line 253:
|-
|-
| Feature upgrades/downgrades data as expected   
| Feature upgrades/downgrades data as expected   
|style="text-align:center;" | No || || Osmose, mythmon
|style="text-align:center;" | No || || Osmose, Mythmon
|-
|-
| Does sync work across upgrades   
| Does sync work across upgrades   
|style="text-align:center;" | No  || || Osmose, mythmon
|style="text-align:center;" | No  || || Osmose, Mythmon
|-
|-
| Requires install testing     
| Requires install testing     
|style="text-align:center;" | No || System addon || Osmose, mythmon
|style="text-align:center;" | No || System addon || Osmose, Mythmon
|-
|-
| Affects first-run or onboarding     
| Affects first-run or onboarding     
|style="text-align:center;" | No || at least some tcs ran for first run || Osmose, mythmon
|style="text-align:center;" | No || at least some tcs ran for first run || Osmose, Mythmon
|-
|-
| Does this affect partner builds? Partner build testing   
| Does this affect partner builds? Partner build testing   
|style="text-align:center;" | Yes ||  || Osmose, mythmon
|style="text-align:center;" | Yes ||  || Osmose, Mythmon


|-
|-
Line 272: Line 272:
|-
|-
| Enterprise administration   
| Enterprise administration   
|style="text-align:center;" | No || || Osmose, mythmon
|style="text-align:center;" | No || || Osmose, Mythmon
|-
|-
| Network proxies/autoconfig   
| Network proxies/autoconfig   
|style="text-align:center;" | No || || Osmose, mythmon
|style="text-align:center;" | No || || Osmose, Mythmon
|-
|-
| ESR behavior changes   
| ESR behavior changes   
|style="text-align:center;" | No || || Osmose, mythmon
|style="text-align:center;" | No || || Osmose, Mythmon
|-
|-
| Locked preferences   
| Locked preferences   
|style="text-align:center;" | No || || Osmose, mythmon
|style="text-align:center;" | No || || Osmose, Mythmon


|-
|-
Line 288: Line 288:
|-
|-
| Temporary or permanent telemetry monitoring   
| Temporary or permanent telemetry monitoring   
|style="text-align:center;" | Yes ||  || Osmose, mythmon
|style="text-align:center;" | Yes ||  || Osmose, Mythmon
|-
|-
| Telemetry correctness testing   
| Telemetry correctness testing   
|style="text-align:center;" | Yes || || Osmose, mythmon
|style="text-align:center;" | Yes || || Osmose, Mythmon
|-
|-
| Server integration testing   
| Server integration testing   
|style="text-align:center;" | Yes || Chris H handles it || Osmose, mythmon
|style="text-align:center;" | Yes || Chris H handles it || Osmose, Mythmon
|-
|-
| Offline and server failure testing   
| Offline and server failure testing   
|style="text-align:center;" | Yes || Chris H handles it || Osmose, mythmon
|style="text-align:center;" | Yes || Chris H handles it || Osmose, Mythmon
|-
|-
| Load testing   
| Load testing   
|style="text-align:center;" | No  || || Osmose, mythmon
|style="text-align:center;" | No  || || Osmose, Mythmon


|-
|-
Line 307: Line 307:
|-
|-
| Addon API required?   
| Addon API required?   
|style="text-align:center;" | No ||  || Osmose, mythmon
|style="text-align:center;" | No ||  || Osmose, Mythmon
|-
|-
| Comprehensive API testing   
| Comprehensive API testing   
|style="text-align:center;" | No || || Osmose, mythmon
|style="text-align:center;" | No || || Osmose, Mythmon
|-
|-
| Permissions   
| Permissions   
|style="text-align:center;" | No || || Osmose, mythmon
|style="text-align:center;" | No || || Osmose, Mythmon
|-
|-
| Testing with existing/popular addons
| Testing with existing/popular addons
|style="text-align:center;" | Yes || Pop-up blocker, privacy addons, profile json, test pilot integration testing: talk with BM team about effort || Osmose, mythmon
|style="text-align:center;" | Yes || Pop-up blocker, privacy addons, profile json, test pilot integration testing: talk with BM team about effort || Osmose, Mythmon


|-
|-
| ''' Security '''  
| ''' 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
||  || 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   
| 3rd-party security review   
|style="text-align:center;" | TBD || osmoses to advice further on this || Osmose, mythmon
|style="text-align:center;" | TBD || osmoses to advice further on this || Osmose, Mythmon
|-
|-
| Privilege escalation testing
| Privilege escalation testing
|style="text-align:center;" | No || || Osmose, mythmon
|style="text-align:center;" | No || || Osmose, Mythmon
|-
|-
| Fuzzing   
| Fuzzing   
|style="text-align:center;" | TBD || osmoses to advice further on this || Osmose, mythmon
|style="text-align:center;" | TBD || osmoses to advice further on this || Osmose, Mythmon


|-
|-
Line 336: Line 336:
|-
|-
| Testing against target sites   
| Testing against target sites   
|style="text-align:center;" | No ||  || Osmose, mythmon
|style="text-align:center;" | No ||  || Osmose, Mythmon
|-
|-
| Survey of many sites for compatibility   
| Survey of many sites for compatibility   
|style="text-align:center;" | Yes || scenarios with heartbeat redirect with addon blocker and blocked site  || Osmose, mythmon
|style="text-align:center;" | Yes || scenarios with heartbeat redirect with addon blocker and blocked site  || Osmose, Mythmon


|-
|-
Line 346: Line 346:
|-
|-
| Common protocol/data format with other software: specification available. Interop testing with other common clients or servers.   
| Common protocol/data format with other software: specification available. Interop testing with other common clients or servers.   
|style="text-align:center;" | No ||  || Osmose, mythmon
|style="text-align:center;" | No ||  || Osmose, Mythmon
|-
|-
| Coordinated testing/interop across the Firefoxes: Desktop, Android, iOS   
| Coordinated testing/interop across the Firefoxes: Desktop, Android, iOS   
|style="text-align:center;" | No  || || Osmose, mythmon
|style="text-align:center;" | No  || || Osmose, Mythmon
|-
|-
| Interaction of this feature with other browser features   
| Interaction of this feature with other browser features   
|style="text-align:center;" | yes || test if it's possible to send to the about:accounts as a survey page || Osmose, mythmon
|style="text-align:center;" | yes || test if it's possible to send to the about:accounts as a survey page || Osmose, Mythmon
|}
|}



Revision as of 14:16, 22 February 2017

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/

  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/.


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

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 No 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 with the gdoc, follow the format from link
Smoke Test suite - Link with the gdoc, follow the format from link
Regression Test suite - Link with the gdoc - if available/needed.

Bug Work

Tracking bug – Bug 1275996 - [Tracker] SHIELD System Add-on v1.0

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
    • Daily Smoke, use template from link
    • Full Test suite, use template from link
    • Regression Test suite, if needed/available

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