QA/Shutdown Decoders

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
10/17/2016 1.0 Adrian Florinescu Initial Draft
03/29/2017 1.1 Adrian Florinescu Updates
07/21/2017 1.2 Bogdan Maris Updates

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 Shutdown Decoders project. It defines the overall testing requirements and provides an integrated view of the project test activities. Its purpose is to document:

  • What will be tested
  • How testing will be performed

Ownership

• Product/Program/Development Management:

• Engineering Team:

• UX:

• QA

Feature short description

The main purpose of the Shutdown Decoders feature is to reduce CPU/GPU & memory usage, and it does so by suspending the video element's video decoder when the video element is in background tabs or is invisible even in the foreground tab. The mechanism is that, when a video element is invisible, the original video decoder is replaced with a blank video decoder which only produces white frames that have the right resolution and time information. The original video decoder is released and the the CPU/GPU & memory usage is reduced.

Testing summary

Scope of Testing

In Scope

Testing is concentrated around the 2 scheduled development phases as follows:

  • Phase 1: verify that a a blank decoder is used to replace the video decoder. In this phase, the mechanism is applied to:
  1. Videos with both audio and video tracks
  2. Videos without audio track
  • Phase 2: enhance the mechanism and make sure it can apply to all video files, including tainted videos.

Out of Scope

Detail what is out of scope from a testing perspective for the project team. Note: if usability testing is not in the scope of testing feature.

Requirements for testing

Environments

Full testing will be performed on the following OSes:
  • Windows 10
  • Mac OS X
  • Ubuntu

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 RAC Owners
TO-1 Video track is paused when tab containing it loses focus. Video track is paused and CPU/GPU usage decreases Manual - Eng Team
TO-2 Stopped video track is resumed and synced to the sounds track when the tab containing it is focused. Video is synced to sound and resumed when tab is refocused Manual RAC-01 , RAC-03, RAC-04, RAC-09 Eng Team
TO-3 Video track is paused for all 3 supported formats for <video> html element (mp4, webm, ogg) Encoding formats are not affecting video/sound capabilities Manual RAC-05 Eng Team
TO-4 Telemetry is recorded related to the recovery of the video-decode-suspend Telemetry data is recorded Manual - Eng Team
TO-5 High Resolution >480p videos are covered by Shutdown decoder High Resolution videos are not lagging Manual - Eng Team
TO-6 Video and sound only videos work properly FF works properly on video only and sound only tracks Manual RAC -6 Eng Team
TO-7 Performance wise, the pause and resume in case of multiple frames/videos is acceptable and doesn't crash the media container TBD what are the expectations in terms of "acceptable" Manual RAC-07 Eng Team


Risk Assessment and Coverage

ID Description / Threat Description Covered by Test Objective Magnitude Probability Priority Impact Score
RAC-1 Visibility of video element TO-2 2-Moderate 2-Possible 2-Medium 8
RAC-2 When Video is resumed, the delay is too big TO-7 3-High 3-Almost Certain 3-High 27
RAC-3 On focus back, the sync between sound and video is not successful TO-2 3-High 3-Almost Certain 3-High 27
RAC-4 Video decoder is not accessible by the FF process TO-2 1-Unlikely 2-Possible 2-Medium 4
RAC-5 Not all video formats are supported correctly TO-3 2-Moderate 2-Possible 3-High 12
RAC-6 Sounds only "videos" are not correctly managed when talking about suspend decoder TO-6 1-Unlikely 2-Possible 2-Medium 4
RAC-7 Videos from multiple frames are not handled correctly (visibility concern) TO-8 3-High 2-Possible 3-High 12
RAC-8 Possible Performance issues with multiple tabs or multiple videos - also behavior on High loaded GPU/CPU TO-8 3-High 3-Almost Certain 3-High 27
RAC-9 Transition effect might not always be user friendly TO-2 3-High 3-Almost Certain 3-High 27

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 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.03.2016
Study documentation/specs received from developers 10.11.2016 10.17.2016
QA - Test plan creation 10.18.2016 10.20.2016
QA - Test cases/Env preparation 10.20.2016
QA - Nightly Testing
QA - Aurora Testing
QA - Beta Testing 06.15.2017 07.21.2017
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 TestRail
Test case execution TestRail
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


References

  • List and links for specs
 https://wiki.mozilla.org/Firefox/Shutdown_Decoders 
 https://mozilla.invisionapp.com/share/K48PCVSEM
  • bug 1293963 - [Meta] Suspend-video-decoder: phase-1 shipping
Full Query
ID Priority Component Assigned to Summary Status Target milestone
1276556 P3 Audio/Video: Playback [META] Tracking enable of background tab video decoder suspend NEW ---
1294349 -- Audio/Video: Playback Gerald Squelart (he/him) (not at Mozilla since 2022-09-15) Telemetry to support background video decoder suspend: Recovery time from video-decode-suspended RESOLVED mozilla51
1294656 -- Audio/Video: Playback Tzuhao Kuo [:kaku] Seek to nearest keyframe when resuming videos with no audio - no audio track RESOLVED mozilla51
1305338 P1 Audio/Video: Playback Mark Liang(:mark_liang) [UX] UX Spec for Shutdown Decoder Phase 1 RESOLVED ---
1309492 P3 Audio/Video: Playback Tzuhao Kuo [:kaku] If a video element's video is suspended, make it draw black frames. RESOLVED ---
1309494 P3 Audio/Video: Playback Tzuhao Kuo [:kaku] Use spinning loading UI if resuming video element's video decoder is longer than 250ms. RESOLVED mozilla55
1345403 -- Audio/Video: Playback Tzuhao Kuo [:kaku] Mark a video element as taint and never suspend it again if it is passed into drawImage() RESOLVED mozilla55
1346116 -- Audio/Video: Playback Tzuhao Kuo [:kaku] Consider a video element is in tree or not to suspend its video decoder RESOLVED mozilla55
1346120 -- Audio/Video: Playback Tzuhao Kuo [:kaku] If a video element's video is suspended, keep the last decoded video frame on the screen RESOLVED mozilla55
1346235 P1 Audio/Video John Lin [:jhlin][:jolin] Fennec has stopped working while playing videos VERIFIED Firefox 55
1348432 P1 Audio/Video: Playback Tzuhao Kuo [:kaku] Missing audio in YouTube videos that were requested within the same tab. Refreshing page fixes audio. VERIFIED mozilla55
1348864 P1 Audio/Video Tzuhao Kuo [:kaku] Black frame displayed on video decoder resume RESOLVED ---
1349456 -- Audio/Video: Playback Tzuhao Kuo [:kaku] Mark a video element as taint and never suspend it again if it is aptured via mozCaptureStream() RESOLVED mozilla55
1349459 -- Audio/Video: Playback Tzuhao Kuo [:kaku] Mark a video element as taint and never suspend it again if it is passed into createImageBitmap() VERIFIED mozilla55
1365581 P3 Audio/Video Tzuhao Kuo [:kaku] [Shutdown Decoder] OGV video elements are not suspended. RESOLVED ---
1365584 P1 Audio/Video Tzuhao Kuo [:kaku] [Shutdown Decoder] On WEBM video element resume the player returns a error RESOLVED ---
1369970 -- Audio/Video: Playback Tzuhao Kuo [:kaku] [Shutdown Decoder] enable the preference. RESOLVED mozilla55

17 Total; 1 Open (5.88%); 13 Resolved (76.47%); 3 Verified (17.65%);


Testcases

Full testsuites can be found on TestRail at link

Test Areas

Test Areas Covered Details
Private Window Yes
Multi-Process Enabled Yes
Multi-process Disabled Yes
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
RTL build testing No
Help/Support
Help/support interface required TBD 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 TBD 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 TBD
ESR behavior changes No
Locked preferences TBD
Data Monitoring
Temporary or permanent telemetry monitoring Yes List of error conditions to monitor
Telemetry correctness testing No
Server integration testing No
Offline and server failure testing Yes
Load testing Yes
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 TBD
Privilege escalation testing No
Fuzzing No
Web Compatibility depends on the feature
Testing against target sites Yes
Survey of many sites for compatibility Yes
Interoperability depends on the feature
Common protocol/data format with other software: specification available. Interop testing with other common clients or servers. TBD
Coordinated testing/interop across the Firefoxes: Desktop, Android, iOS No
Interaction of this feature with other browser features No


Bug Work

Meta bug: 1293963- (Phase_1_Shutdown_Decoder) META Suspend-video-decoder: phase-1 shipping

Logged bugs ( blocking 1293963 )
Full Query
ID Priority Component Assigned to Summary Status Target milestone
1276556 P3 Audio/Video: Playback [META] Tracking enable of background tab video decoder suspend NEW ---
1294349 -- Audio/Video: Playback Gerald Squelart (he/him) (not at Mozilla since 2022-09-15) Telemetry to support background video decoder suspend: Recovery time from video-decode-suspended RESOLVED mozilla51
1294656 -- Audio/Video: Playback Tzuhao Kuo [:kaku] Seek to nearest keyframe when resuming videos with no audio - no audio track RESOLVED mozilla51
1305338 P1 Audio/Video: Playback Mark Liang(:mark_liang) [UX] UX Spec for Shutdown Decoder Phase 1 RESOLVED ---
1309492 P3 Audio/Video: Playback Tzuhao Kuo [:kaku] If a video element's video is suspended, make it draw black frames. RESOLVED ---
1309494 P3 Audio/Video: Playback Tzuhao Kuo [:kaku] Use spinning loading UI if resuming video element's video decoder is longer than 250ms. RESOLVED mozilla55
1345403 -- Audio/Video: Playback Tzuhao Kuo [:kaku] Mark a video element as taint and never suspend it again if it is passed into drawImage() RESOLVED mozilla55
1346116 -- Audio/Video: Playback Tzuhao Kuo [:kaku] Consider a video element is in tree or not to suspend its video decoder RESOLVED mozilla55
1346120 -- Audio/Video: Playback Tzuhao Kuo [:kaku] If a video element's video is suspended, keep the last decoded video frame on the screen RESOLVED mozilla55
1346235 P1 Audio/Video John Lin [:jhlin][:jolin] Fennec has stopped working while playing videos VERIFIED Firefox 55
1348432 P1 Audio/Video: Playback Tzuhao Kuo [:kaku] Missing audio in YouTube videos that were requested within the same tab. Refreshing page fixes audio. VERIFIED mozilla55
1348864 P1 Audio/Video Tzuhao Kuo [:kaku] Black frame displayed on video decoder resume RESOLVED ---
1349456 -- Audio/Video: Playback Tzuhao Kuo [:kaku] Mark a video element as taint and never suspend it again if it is aptured via mozCaptureStream() RESOLVED mozilla55
1349459 -- Audio/Video: Playback Tzuhao Kuo [:kaku] Mark a video element as taint and never suspend it again if it is passed into createImageBitmap() VERIFIED mozilla55
1365581 P3 Audio/Video Tzuhao Kuo [:kaku] [Shutdown Decoder] OGV video elements are not suspended. RESOLVED ---
1365584 P1 Audio/Video Tzuhao Kuo [:kaku] [Shutdown Decoder] On WEBM video element resume the player returns a error RESOLVED ---
1369970 -- Audio/Video: Playback Tzuhao Kuo [:kaku] [Shutdown Decoder] enable the preference. RESOLVED mozilla55

17 Total; 1 Open (5.88%); 13 Resolved (76.47%); 3 Verified (17.65%);


Bug fix verification
Full Query
ID Priority Component Assigned to Summary Status Target milestone
1294349 -- Audio/Video: Playback Gerald Squelart (he/him) (not at Mozilla since 2022-09-15) Telemetry to support background video decoder suspend: Recovery time from video-decode-suspended RESOLVED mozilla51
1294656 -- Audio/Video: Playback Tzuhao Kuo [:kaku] Seek to nearest keyframe when resuming videos with no audio - no audio track RESOLVED mozilla51
1305338 P1 Audio/Video: Playback Mark Liang(:mark_liang) [UX] UX Spec for Shutdown Decoder Phase 1 RESOLVED ---
1309494 P3 Audio/Video: Playback Tzuhao Kuo [:kaku] Use spinning loading UI if resuming video element's video decoder is longer than 250ms. RESOLVED mozilla55
1345403 -- Audio/Video: Playback Tzuhao Kuo [:kaku] Mark a video element as taint and never suspend it again if it is passed into drawImage() RESOLVED mozilla55
1346116 -- Audio/Video: Playback Tzuhao Kuo [:kaku] Consider a video element is in tree or not to suspend its video decoder RESOLVED mozilla55
1346120 -- Audio/Video: Playback Tzuhao Kuo [:kaku] If a video element's video is suspended, keep the last decoded video frame on the screen RESOLVED mozilla55
1346235 P1 Audio/Video John Lin [:jhlin][:jolin] Fennec has stopped working while playing videos VERIFIED Firefox 55
1348432 P1 Audio/Video: Playback Tzuhao Kuo [:kaku] Missing audio in YouTube videos that were requested within the same tab. Refreshing page fixes audio. VERIFIED mozilla55
1349456 -- Audio/Video: Playback Tzuhao Kuo [:kaku] Mark a video element as taint and never suspend it again if it is aptured via mozCaptureStream() RESOLVED mozilla55
1349459 -- Audio/Video: Playback Tzuhao Kuo [:kaku] Mark a video element as taint and never suspend it again if it is passed into createImageBitmap() VERIFIED mozilla55
1369970 -- Audio/Video: Playback Tzuhao Kuo [:kaku] [Shutdown Decoder] enable the preference. RESOLVED mozilla55

12 Total; 0 Open (0%); 9 Resolved (75%); 3 Verified (25%);

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
Metrics/Telemetry
[Desktop] SV Pre-Aurora 54 Signoff Email to be sent
[Desktop] SV Pre-Beta 55 Signoff GREEN by Apr 24, 2017 Email to be sent
[Desktop] SV Pre-Release 55 Signoff GREEN in July 21, 2017 Email sent
[Mobile] SV Pre-Aurora 54 Signoff GREEN by Mar 21, 2017 Email to be sent
[Mobile] SV Pre-Beta 55 Signoff YELLOW (DO NOT SHIP IT) by May 18, 2017 Email to be sent
[Mobile] SV Pre-Release 55 Signoff Email to be sent
Release Signoff Email to be sent