Add-ons/QA/Testplan/Webextensions Permissions Android

From MozillaWiki
Jump to: navigation, search

Revision History

Date Version Author Description
09/13/2017 1.0 Cosmin Badescu Created first draft


Overview

Permissions is a feature which allows webextensions to have certain special powers. The permissions key specified in the manifest.json will grant special powers for your extension. This key is an array of strings, and each string is a request for a permission.

If you request permissions using this key, then the browser may inform the user at install time that the extension is requesting certain privileges, and ask them to confirm that they are happy to grant these privileges. The browser may also allow the user to inspect an extension's privileges after installation.

  • As part of this feature, the optional permissions are used when they are needed for optional features in your extension.

Purpose

This document purports to detail the test approach to Webextension Permissions and Optional permissions including Entry/Exit criteria, Scope for testing, links to testcases 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?

  • Installation flow from AMO
  • Installation flow from Third-party websites
  • Add-on updates
  • Webextensions have access to the permissions requested

what's out of scope?

  • Security testing
  • Performance testing

Ownership

Dev Lead: Andrew Swan; irc nick :aswan
QA Manager: Krupa Raj; irc nick :krupa
QA Lead: Victor Carciu; irc nick :victorc
Webextensions QA: Cosmin Badescu; irc nick :CosminB
Add-ons QA: Valentina Peleski; irc nick :ValentinaV

Requirements for testing

Environments

OSes covered: Android

Channel dependent settings (configs) and environment setups

Nightly

  • Enable extensions.webextPermissionPrompts from about:config
  • Enable extensions.webextOptionalPermissionPrompts from about:config
  • Disable check for signing if testing on AMO dev or stage

Beta

  • Enable extensions.webextPermissionPrompts from about:config
  • Enable extensions.webextOptionalPermissionPrompts from about:config
  • Disable check for signing if testing on AMO dev or stage

Release

  • Enable extensions.webextPermissionPrompts from about:config
  • Enable extensions.webextOptionalPermissionPrompts from about:config
  • Disable check for signing if testing on AMO dev or stage

Post Beta / 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 AMO public pages To verify that permissions are correctly displayed Manual Add-ons QA Team
TO-2 Installing from AMO To verify that the permissions flow is fully respected Manual Add-ons QA Team
TO-3 Installing from local files To verify that the permissions flow is fully respected Manual Add-ons QA Team
TO-4 Installing from thirdparty To verify that the permissions flow is fully respected Manual Add-ons QA Team
TO-5 Add-on updates To verify that the permissions flow is fully respected 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 09-13-2017 09-14-2017
QA - Test cases/Env preparation
QA - Nightly Testing
QA - Beta Testing 09-15-2017
Release Date 11-14-2017

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 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
  PRD - https://docs.google.com/document/d/1jZQUeIfelisRXBMaTuPTo2hXiIcPT3IpdYwQXDpzEMI/edit#heading=h.jyc2dow656pq
  Install flow - https://docs.google.com/presentation/d/1NSqxUiZDUdFrha0TvuNVEV1v2OqmBPc17XaPbzIwWmQ/edit?ts=595487bf#slide=id.g1b33de6276_1_68
  Permissions Copy - https://docs.google.com/document/d/1-aLncxcKpinCNpvksmknwWZhrM2bEChDmQ3C422C6Vc/edit#heading=h.cwg9zx7py4zk

* bug 1338370 - Implement permission support for Android
Full Query
ID Priority Component Assigned to Summary Status Resolution Target milestone
1370346 P1 Android Jack Lin[:jacklin] Create UX for Android permissions RESOLVED FIXED ---
1370348 P3 Android Implement optional permission support for Android RESOLVED DUPLICATE ---
1379833 P1 Android Andrew Swan [:aswan] Implement install-time permissions dialog for extensions on Android VERIFIED FIXED mozilla57
1391558 P3 Add-on Manager Andrew Swan [:aswan] Add "Downloading extension" snackbar RESOLVED WORKSFORME ---
1391579 P2 Add-on Manager Andrew Swan [:aswan] Implement in-app add-on update notifications VERIFIED FIXED Firefox 57
1391581 P3 Add-on Manager Implement notification flow for addon updates RESOLVED INCOMPLETE ---
1392176 P3 Android Andrew Swan [:aswan] Implement optional permission prompts VERIFIED FIXED mozilla58
1397051 P3 Add-on Manager Support non-png icons in android permission prompts RESOLVED INCOMPLETE ---
1398327 P1 Android Andrew Swan [:aswan] Inconsistencies in permissions l10n messages between mobile and desktop VERIFIED FIXED mozilla57
1398762 P3 General Andrew Swan [:aswan] "Unparseable host permission" error displayed in the browser console VERIFIED FIXED mozilla58
1399748 -- Add-on Manager JPG icons are not supported in android permission pop-up RESOLVED DUPLICATE ---
1399791 P2 Add-on Manager Andrew Swan [:aswan] Tapping outside the permissions pop-up, the extension hangs in ready to install state VERIFIED FIXED Firefox 57
1399827 -- Add-on Manager Background update is not working for an extension with a newer version RESOLVED INVALID ---
1401602 P1 Android Extension with unsupported permissions fail to install RESOLVED INVALID ---
1442155 P1 Android Andrew Swan [:aswan] Add-on name is not displayed in Install prompt on Android VERIFIED FIXED mozilla60

15 Total; 0 Open (0%); 8 Resolved (53.33%); 7 Verified (46.67%);


Testcases

Overview

Summary of testing scenarios

Test Areas

Test Areas Covered Details
Installation from AMO
Installation from Discopane
Installation from Add-ons Manager
Installation from Third-party
Add-on updates
Sideloading
Other

Test suite

Bug Work

Tracking bug - []

Bug fix verification

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

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

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

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

Bug 1329942 - 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 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
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