QA/Pointer Lock API Improvement

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
07/14/2016 1.0 Brindusa Tot Created first draft

Overview

Purpose

Detail the purpose of this document. For example:

  • The test scope, focus areas and objectives
  • The test responsibilities
  • The test strategy for the levels and types of test for this release
  • The entry and exit criteria
  • The basis of the test estimates
  • Any risks, issues, assumptions and test dependencies
  • The test schedule and major milestones
  • The test deliverables

Scope

This wiki details the testing that will be performed by the project team for the new implementation of Pointer Lock API with permission requirement removed. As the permission requirement for Fullscreen API was removed since several versions before, it make sense to not require additional permission for PointerLock when the document is in fullscreen. With this feature the permission requirement for Pointer Lock is removed and when pointer lock is activated, a warning bar is displayed with message "<site> has control of your pointer. Press Esc to take back control.". If full screen is requested as well as pointerlock then only the full screen warning is shown.

Following in this document is presented:

  • What will be tested
  • How testing will be performed

Ownership

Engineering contact: Dale Harvey


QA:
Rares Bologa - PM for QA team

Brindusa Tot - leading QA efforts

Simona Badau, QA

Testing summary

Scope of Testing

In Scope

The updates that are done on Pointer Lock API that should be included in our testing are:

  1. The permission requirement notification was disabled
  2. A warning bar is displayed with message "<site> has control of your pointer. Press Esc to take back control." went pointer lock is activated. If full screen is also requested, then only the warning for full screen is shown
  3. Pointer lock functionality with or without full screen.


The testing efforts will be invested on the following areas:

  • functionality: pointer lock functionality on different web pages(demo/game pages)
  • accessibility: High Contrast themes, Keyboard operation
  • performance: make sure that browser performance is not affected - after playing with pointer lock for some time, browser performance is the same

Out of Scope

The full functionality of Pointer Lock is not in the scope, as this feature's updates were done in the permissions area and notifications. Although, a smoke will be run on the functionality part.

Requirements for testing

Environments

Full testing will be done on following OSes:

  • Windows
  • Ubuntu
  • Mac OS X

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 Permission requirement for Pointer lock API was disabled The test objective is to demonstrate that Pointer lock API is enabled without Permission request Permission approval is not requested when try to access Pointer Lock API Manual Eng Team
2 Warning bar is displayed when pointer lock is activated The test objective is to demonstrate that when Pointer lock API is activated, a warning message: "<site> has control of your pointer. Press Esc to take back control." is displayed Correct warning messages is displayed when Pointer Lock API is activated Manual Eng Team
3 Pointer lock functionality without full screen The test objective is to demonstrate that when Pointer lock API functionality is correct without full screen enabled Pointer lock API functions correctly Manual Eng Team
4 Pointer lock functionality with full screen enabled The test objective is to demonstrate that when Pointer lock API functionality is correct with full screen enabled. Warning message for Pointer lock is not displayed, only the full screen warning is displayed Pointer lock API functions correctly under full screen Manual Eng Team
5 Pointer lock accessibility The objective of these test suites is to verify that the application is accessible. Testing for accessibility includes:

- testing using high Contract themes
- Mouse-only
- Keyboard-only

Manual Eng Team

Builds

This section should contain links for builds with the feature

  • Links for Nightly builds - available since 07.10.2016 link
  • 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 07.12.2016
Study documentation/specs received from developers 07.12.2016 07.14.2016
QA - Test plan creation 07.14.2016 07.16.2016
QA - Test cases/Env preparation 07.14.2016 07.15.2016
QA - Nightly Testing 07.15.2016 07.26.2016
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 Google docs/ Test Rail
Test case execution TestRail
Bugs management Bugzilla

Status

Overview

First released in Nightly in 07.10.2016 starting with build
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

- Will be added during testing

References

  • List and links for specs
 - http://www.html5rocks.com/en/tutorials/pointerlock/intro/ - Pointer Lock API introduction
 - https://developer.mozilla.org/en-US/docs/Web/API/Pointer_Lock_API - Pointer Lock API introduction
 - http://mdn.github.io/pointer-lock-demo/ 
 - http://threejs.org/examples/misc_controls_pointerlock.html 
 - https://kripken.github.io/BananaBread/wasm-demo/index.html 
 - http://substack.net/projects/voxel-forest/ 
 - http://media.tojicode.com/q3bsp/ 

Testcases

Test cases can be found here - gdoc link

Test cases can be found also on TestRail at: link


Test Areas

Test Areas Covered Details
Private Window Yes
Multi-Process Enabled Yes
Multi-process Disabled No
Theme (high contrast) Yes
UI
Mouse-only operation Yes
Keyboard-only operation Yes
Display (HiDPI) Yes
Interraction (scroll, zoom) No
Usable with a screen reader No e.g. with NVDA
Usability and/or discoverability testing Yes Is this feature user friendly
Help/Support
Help/support interface required No Make sure link to support/help page exist and is easy reachable.
Support documents planned(written) No Make sure support documents are written and are correct.
Install/Upgrade
Feature upgrades/downgrades data as expected No
Does sync work across upgrades No
Requires install testing No separate feature/application installation needed (not only Firefox)
Affects first-run or onboarding No Florin/Lawrence are investigating if there is a dedicated QA for this, or we should test? Should be an yes/no and if is yes should add in detail column the team/person assigned.
Does this affect partner builds? Partner build testing No yes/no options, add comment with details about who will lead testing
Enterprise Raise up the topic to developers to see if they are expecting to work different on ESR builds
Enterprise administration No
Network proxies/autoconfig No
ESR behavior changes No
Locked preferences No
Data Monitoring
Temporary or permanent telemetry monitoring No List of error conditions to monitor
Telemetry correctness testing No
Server integration testing No
Offline and server failure testing No
Load testing No
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
Comprehensive API testing No
Permissions No
Testing with existing/popular addons No
Security Security is in charge of Matt Wobensmith. We should contact his team to see if security testing is necessary for current feature.
3rd-party security review No
Privilege escalation testing No
Fuzzing No
Web Compatibility depends on the feature
Testing against target sites Yes
Survey of many sites for compatibility No
Interoperability depends on the feature
Common protocol/data format with other software: specification available. Interop testing with other common clients or servers. No
Coordinated testing/interop across the Firefoxes: Desktop, Android, iOS No
Interaction of this feature with other browser features Yes Interaction with full screen feature

Test suite

First Run of Testcases can be found at: link
Full Test Run, after fix of bug 1287408  - can be found at link

Bug Work

Tracking bug – meta bug 1273351

Bug fix verification
Bug No Summary Status Firefox Verion
1273351 Get rid of permission requirement for PointerLock API Verified-Fixed Nighly 50
1287408 Geolocation preferences not applied properly in Nightly Verified-Fixed Nighly 50
Logged bugs

Bug 1287104 - PointerLock demo can't be enabled after changing focus
Bug 1288692 - After Web Console is opened - full screen is entered on a PointerLock demo instead of just entering PointerLock
Bug 1289403 - [e10s] PointerLock works very slow on Nightly and Aurora with this site http://mdn.github.io/pointer-lock-demo/
Bug 1287408 - Geolocation preferences not applied properly in Nightly

Sign off

Criteria

Check list

  • All test cases should be executed
SignOff Criteria - Small feature
Nightly to Aurora Open Bugs Severity Number of Open Bugs
Blocker 0
Critical 2
Major 4
Normal 12
Minor+Enh 15

Results

Nightly testing

List of OSes that will be covered by testing

  • Link for the tests run
    • Full Test suite if testcase ca be found on TestRail at link

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) [DONE]
Testing Infrastructure setup [DONE]
Test Plan Creation [DONE]
Test Cases Creation [DONE]
Full Functional Tests Execution [DONE]
Automation Coverage
Performance Testing N/A
All Defects Logged [DONE]
Critical/Blockers Fixed and Verified [DONE]
Metrics/Telemetry N/A
QA Signoff - Nightly Release [DONE] Sign Off email sent on
QA Aurora - Full Testing
QA Signoff - Aurora Release Email to be sent
QA Beta - Full Testing
QA Signoff - Beta Release Email to be sent