Add-ons/QA/Testplan/Improve Storage Local API

From MozillaWiki
Jump to: navigation, search

Revision History

Date Version Author Description
05/22/2018 1.0 Cosmin Badescu Created first draft


Overview

The purpose of this feature is to check that the migration from storage.local JSONFile backend to storage.local IndexedDB backend works correctly.

Purpose

This document purports to detail the test approach for the improvements of Local Storage API and includes Entry/Exit criteria, Scope for testing, links to test cases etc

Entry Criteria

  • QA has access to all the PRDs, mocks and related documents
  • The feature has landed on Nightly
  • AMO parts has landed on dev

Exit Criteria

  • All the bugs against the feature have been triaged
  • All the P1/P2 bugs have been fixed
  • All the resolved bugs have been verified by QA
  • The find/fixed rate is going down over a predefined period of time

Acceptance Criteria

This section broadly outlines when the product is ready to ship

  • QA has signed off
  • All the required Telemetry is in place
  • All info is localized at least for a pre-defined set of locales
  • All the necessary PR/blogposts have been sent out

Scope

This section describes what parts of the feature will be tested and what parts won't be.

what's in scope?

  • The behavior of the storage.local JSONFile backend and storage.local IndexedDB backend when the extensions use them.

what's out of scope?

  • Security testing

Ownership

Dev Lead: Luca Greco; irc nick :rpl
QA Manager: Krupa Raj; irc nick :krupa
QA Lead: Victor Carciu; irc nick :victorc
Webextensions QA: Cosmin Badescu; irc nick :CosminB


Requirements for testing

Environments

OSes covered: Windows, Mac OS X, Linux

Channel dependent settings (configs) and environment setups

Nightly

  • Enable extensions.webextensions.ExtensionStorageIDB.enabled from about:config

Beta

  • Enable extensions.webextensions.ExtensionStorageIDB.enabled from about:config

Release

The feature is enabled by default

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 Owners
TO-1 Installing from AMO To verify that the extension uses the API correctly Manual Add-ons QA Team
TO-2 Installing from local files To verify that the extension uses the API correctly Manual Add-ons QA Team
TO-3 Add-on updates To verify that the extension uses the API correctly Manual Add-ons QA Team
TO-4 Sideloading To verify that the extension uses the API correctly Manual Add-ons QA Team

Builds

This section should contain links for builds with the feature -

  • Link for Nightly builds
  • Link for Beta builds
  • Link for Release builds

Test Execution Schedule

The following table identifies the anticipated testing period available for test execution.

Project phase Start Date End Date
Start project
Study documentation/specs received from developers
QA - Test plan creation 05-22-2018
QA - Test cases/Env preparation 05-21-2018 N/A
QA - Nightly 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 [ Docs] / [ TestRail]
Test case execution [ Docs] / [ TestRail]
Bugs management Bugzilla / Github

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 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
  PRD - TBD
  Install flow - Link
  


* bug 1406181 - Use indexedDB as the backend for storage.local (pref Off)
Full Query
ID Priority Component Assigned to Summary Status Resolution Target milestone
1465120 P1 Storage Luca Greco [:rpl] [:luca] [:lgreco] Use a different telemetry histogram key for the storage.local IndexedDB backend VERIFIED FIXED mozilla62
1465129 P1 Storage Luca Greco [:rpl] [:luca] [:lgreco] Collect some telemetry data related to the storage.local "JSONFile to IDBBackend" data migration failures VERIFIED FIXED mozilla62
1467720 P1 Storage Luca Greco [:rpl] [:luca] [:lgreco] Can't access dead object in ext-storage.js:168:40 VERIFIED FIXED mozilla62
1467727 -- Storage Some extensions stop working after the page is reloaded RESOLVED DUPLICATE ---
1474557 P1 Storage Luca Greco [:rpl] [:luca] [:lgreco] Prevent ExtensionStorageIDB and child/ext-storage.js from caching a stale or rejected selectBackend promise VERIFIED FIXED mozilla63

5 Total; 0 Open (0%); 1 Resolved (20%); 4 Verified (80%);


* bug 1474562 - Enable ExtensionStorageIDB backend on Nightly (pref ON)
Full Query
ID Priority Component Assigned to Summary Status Resolution Target milestone
1470213 P1 Storage Luca Greco [:rpl] [:luca] [:lgreco] Collect some per-addon telemetry related to the storage.local data migration and last error that prevented an extension from migrating to the IndexedDB backend VERIFIED FIXED mozilla63
1474557 P1 Storage Luca Greco [:rpl] [:luca] [:lgreco] Prevent ExtensionStorageIDB and child/ext-storage.js from caching a stale or rejected selectBackend promise VERIFIED FIXED mozilla63
1475306 P1 Storage Luca Greco [:rpl] [:luca] [:lgreco] Improve the detection of extensions already migrated to ExtensionStorageIDB and rename the successfully storage.local JSONFile instead of removing it VERIFIED FIXED mozilla63
1476268 P1 Storage Luca Greco [:rpl] [:luca] [:lgreco] Fix uncaught storage.local IDBTransaction error on explicit IDBTransaction abort RESOLVED FIXED mozilla63
1477015 P1 Storage Luca Greco [:rpl] [:luca] [:lgreco] Select the storage.local backend during the extension startup VERIFIED FIXED mozilla63
1480948 P5 General Luca Greco [:rpl] [:luca] [:lgreco] Intermittent toolkit/components/extensions/test/xpcshell/test_ext_schema.js | application crashed [@ libxul.so + 0x158c91d] RESOLVED FIXED mozilla63
1540997 P3 Developer Outreach Reddit Enhancement Suite 5.14.5 is ten times slower loading batched options with ExtensionStorageIDB.enabled RESOLVED FIXED ---

7 Total; 0 Open (0%); 3 Resolved (42.86%); 4 Verified (57.14%);


Testcases

Overview

Summary of testing scenarios

Test Areas

Test Areas Covered Details
Installing from AMO
Installing from local files
Installing from thirdparty
Add-on updates
Sideloading
Other

Test suite

Bug Work

Tracking bug - []

Bug fix verification

[Verified] [ Bug xxxxxxx] - Display permissions prompt for webextensions installed using mozAddonManager

2017-01-10: verified fixed on 53.0a1 across platforms

[Verified] [ Bug xxxxxxx] - Prompt users with permissions for third-party webextensions installs

2015-04-21: verified fixed on 53.0a1 across platforms
Logged bugs

[ Bug xxxxxxx] - Misaligned icon and webextension name in permissions doorhanger

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
    • Full Test suite, use template from []


Merge to Beta 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 05-22-2018
Test Cases Creation 05-21-2018 N/A
Full Functional Tests Execution
Automation Coverage
Performance Testing
All Defects Logged
Critical/Blockers Fixed and Verified
Metrics/Telemetry
QA Signoff - Nightly Release Email to be sent
QA Beta - Full Testing
QA Signoff - Beta Release Email to be sent