QA/Use a separate content process for file:// URLs: Difference between revisions

From MozillaWiki
< QA
Jump to navigation Jump to search
 
(47 intermediate revisions by 2 users not shown)
Line 7: Line 7:
! Date !! Version !! Author !! Description  
! Date !! Version !! Author !! Description  
|-
|-
| 11/23/2015 || 1.0 || Brindusa Tot || Created first draft
| 02/23/2017 || 1.0 || Simona Badau || Created first draft
|-
|-
| 10/05/2016|| 1.1 || Adrian Florinescu || Added point : 3.2 Channel dependent settings (configs) and environment setup
| || || ||
|}
|}


Line 25: Line 25:


== Scope ==
== Scope ==
This wiki details the testing that will be performed by the project team for the <project name> project. It defines the overall testing requirements and provides an integrated view of the project test activities. Its purpose is to document:
This wiki details the testing that will be performed by the project team for the Use a separate content process for file:// URLs 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
* What will be tested
* How testing will be performed
* How testing will be performed
Line 32: Line 32:
   
   
• Product Manager:  
• Product Manager:  
*  
* Jim Mathies (:jimm)


• Project Manager:  
• Project Manager:  
*  
* Jim Mathies (:jimm)


• Engineering:
• Engineering:
*  
* Jim Mathies (:jimm)
 
• Developer:
* Bob Owen (:bobowen)


• UX:
• UX:
*  
* N/A


• QA Engineering Team - Nightly Testing
• QA Engineering Team - Nightly Testing
Line 51: Line 54:
== Scope of Testing ==
== Scope of Testing ==
=== In Scope ===
=== In Scope ===
Detail what is in scope from a testing perspective for the project team.
'''Use a separate content process for file:// URLs''' feature aims to make some changes in the way the content is handled when loading file:// URIs.
That is content loaded from the local file system hat is now loaded in a separate child content process.
 
The feature is controlled by the boolean preference browser.tabs.remote.separateFileUriProcess.
 
Another relevant preference is dom.ipc.processCount.file that allows multiple file content processes.


=== Out of Scope ===
=== 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.
Testing the other types of content processes that are not related to the file:// URIs such as processes allocated for web sites, extensions etc.


= Requirements for testing =
= Requirements for testing =
== Environments ==
== Environments ==
Full testing will be performed on the following OSes:
Full testing will be performed on the following OSes:
*  
* Windows (Windows 7 and Windows 10)
*
* Ubuntu 16.04
*
* Mac OS X (Mac OS X 10.11 and Mac OS X 10.12)


Other configuration/environmental setup needed:
Other configuration/environmental setup needed:
* In Firefox configuration settings, '''''browser.tabs.remote.separateFileUriProcess''''' preference needs to be set to '''''true'''''.
* In Firefox configuration settings, '''''browser.tabs.remote.separateFileUriProcess''''' preference needs to be set to '''''true'''''.
* To allow multiple content processes, change the value of the preference '''''dom.ipc.processCount.file'''''.
= Test Strategy =
== Risks Assessment and Coverage ==
{| class="wikitable"
|-
! ID !! Description / Threat Description !! Covered by Test Objective !!  Magnitude !! Probability !! Priority !! Impact Score
|-
| RAC-1 || A local content process is not opened when a local file is opened  || TO-1, TO-2, TO-3, TO-4, TO-5, TO-6|| '''3-High''' || ''2-Possible'' || ''2-Medium'' || 12
|-
| RAC-2 || A local content process is not closed when it's correponding local file is closed || TO-1, TO-2, TO-3, TO-4, TO-5, TO-6 || '''3-High'''  || ''2-Possible'' || ''2-Medium''  || 12
|-
| RAC-3 || The content process is not changed when navigating from a local file to a web site and viceversa || TO-3, TO-4 || '''3-High''' || ''2-Possible'' || ''2-Medium'' || 12
|-
| Rac-4 || The interaction between the different types of content processes || TO-3, TO-4 || ''2-Moderate'' || ''2-Possible'' || 1 - Low || 4
|-
|}


== Channel dependent settings (configs) and environment setups ==
'''Values:'''
<div class="toccolours mw-collapsible mw-collapsed" style="width:auto">


=== Nightly ===
* '''Magnitude:''' 1- Low , ''2-Moderate'', '''3-High'''
<div class="mw-collapsible-content">
text
</div>


=== Aurora ===
* '''Probability:''' 1-Unlikely, ''2-Possible'', '''3-Almost Certain'''
<div class="mw-collapsible-content">
text
</div>


=== Beta ===
* '''Priority:''' 1 - Low, ''2-Medium'', '''3-High'''
<div class="mw-collapsible-content">
text
</div>


=== Post Beta / Release ===
'''Impact Score Breakdown:'''
<div class="mw-collapsible-content">
* 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.
text
* 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.
</div>
* 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.
</div>


= Test Strategy =
== Test Objectives ==
== 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 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.
Line 97: Line 111:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Ref !! Function !! Test Objective !! Evaluation Criteria !! Test Type !! Owners  
! Ref !! Function !! Test Objective !! Evaluation Criteria !! Test Type !! Risk Assessment and Coverage(RAC) !!  Owners  
|-
| TO-1 || A local file is opened || The content of a local file is loaded in a separate child content process (local content process) || The local file is opened and it's content is loaded in a local content process allocated for local files || Manual || RAC-1 || Eng Team
|-
| TO-2 || Multiple local files are opened || The content of multiple local files are opened in one or more local content processes (depending on the value of pref  dom.ipc.processCount.file) || Local files are opened in the content processes allocated for the local files || Manual || RAC-1 || Eng Team
|-
|-
| 1 || Name of the feature or sub-function being tested || The objective the test is trying to demonstrate || The criteria that will be evaluated to demonstrate the test is successful || Manual/ Automation/ Regression/ Performance/ Usability/ Security/ Telemetry || Eng Team
| TO-3 || Local files and websites can be opened in the same tab || Local files and websites are opened in the same tab and the type of the content process differs (local content processes and websites content processes) || Local files and websites are opened in the same tab and the type of the content process differs (local content processes and websites content processes) || Manual || RAC-1, RAC-2, RAC-3 || Eng Team
|-
|-
| 2 || Repeat for each feature/sub-function || || || ||
| TO-4 || Local files and websites can be opened in different tabs  || Local files and websites are opened in different tabs || Local files and websites are opened in different tab and the type of the content process differs (local content processes and websites content processes)|| Manual || RAC-1, RAC-2, RAC-3 || Eng Team
|-
| TO-5 || Accessibility || Local files and their correspondent local content processes are not affected from the accessibility point of view || Testing for accessibility includes: <br />
- Screen Reader validation<br />
- Keyboard-only
|| Manual || RAC-1, RAC-2 || Eng Team
|-
|TO-6 || Local file is closed || Local files are closed along with their corresponding local content processes || The local content processes are closed when the local files are closed || Manual || RAC-2 || Eng Team
|-
|-
| 3 || || || || ||
|}
|}


== Builds ==
== Builds ==
This section should contain links for builds with the feature -
This section should contain links for builds with the feature:
* Links for Nightly builds
* Links for Nightly builds - available since November 26th 2016 - [http://archive.mozilla.org/pub/firefox/nightly/2016/11/2016-11-26-03-02-07-mozilla-central/ link]
* Links for Aurora builds
* Links for Beta builds - Fx55
* Links for Beta builds


== Test Execution Schedule ==
== Test Execution Schedule ==
Line 120: Line 142:
|-
|-
| Start project  
| Start project  
|style="text-align:center;" | ||  
|style="text-align:center;" | 02.23.2017 ||  
|-
|-
| Study documentation/specs received from developers
| Study documentation/specs received from developers
|style="text-align:center;" | ||  
|style="text-align:center;" | 02.28.2017 || 02.29.2017
|-
|-
| QA - Test plan creation  
| QA - Test plan creation  
|style="text-align:center;" | ||  
|style="text-align:center;" | 02.23.2017 || 02.24.2017
|-
|-
| QA - Test cases/Env preparation  
| QA - Test cases/Env preparation  
|style="text-align:center;" |  ||  
|style="text-align:center;" | 02.28.2017 || 03.30.2017
|-
|-
| QA - Nightly Testing  
| QA - Nightly Testing  
|style="text-align:center;" | ||  
|style="text-align:center;" | 02.28.2017 || 05.31.2017
|-
| QA - Aurora Testing
|style="text-align:center;" |  || 
|-
|-
| QA - Beta Testing  
| QA - Beta Testing  
Line 161: Line 180:
= Status =  
= Status =  
== Overview ==
== Overview ==
  Track the dates and build number where feature was released to Nightly
  '''Use a separate content process for file:// URLs''' feature first landed in Nightly 53 - [http://archive.mozilla.org/pub/firefox/nightly/2016/11/2016-11-26-03-02-07-mozilla-central/ 53.0a1 (2016-11-26)]
  Track the dates and build number where feature was merged to Aurora
  The feature remained in Nightly for the 54 and 55 cycle.
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 =
= References =
* List and links for specs
* {{Bug|1147911}} - Use a separate content process for file:// URLs
  List and links for available specs - documents, user stories, specifications
 
* Meta bug
= Testcases =  
= Testcases =  
== Overview ==
Full testsuites can be found on TestRail at [https://testrail.stage.mozaws.net/index.php?/suites/view/576&group_by=cases:section_id&group_order=asc link] or in the [https://wiki.mozilla.org/images/4/42/Separate_content_process_for_file_URLs_-EngQA-_-_TestRail.pdf PDF doc].
Summary of testing scenarios
 
== Test Areas ==
== Test Areas ==
{| class="wikitable" style="width:80%"
{| class="wikitable" style="width:80%"
Line 185: Line 194:
|-
|-
| Private Window  
| Private Window  
|style="text-align:center;" | ||  
|style="text-align:center;" | Yes ||  
|-
|-
| Multi-Process Enabled  
| Multi-Process Enabled  
|style="text-align:center;" | ||  
|style="text-align:center;" | Yes ||  
|-
|-
| Multi-process Disabled  
| Multi-process Disabled  
|style="text-align:center;" | ||  
|style="text-align:center;" | Yes ||  
|-
|-
| Theme (high contrast)  
| Theme (high contrast)  
|style="text-align:center;" | ||  
|style="text-align:center;" | No ||  
|-
|-
| '''UI'''  
| '''UI'''  
Line 200: Line 209:
|-
|-
| Mouse-only operation   
| Mouse-only operation   
|style="text-align:center;" | ||  
|style="text-align:center;" | Yes||  
|-
|-
| Keyboard-only operation   
| Keyboard-only operation   
|style="text-align:center;" | ||
|style="text-align:center;" | Yes ||
|-
|-
| Display (HiDPI)  
| Display (HiDPI)  
|style="text-align:center;" | ||  
|style="text-align:center;" | Yes ||  
|-
|-
| Interraction (scroll, zoom)  
| Interraction (scroll, zoom)  
|style="text-align:center;" | ||  
|style="text-align:center;" | No ||  
|-
|-
| Usable with a screen reader   
| Usable with a screen reader   
|style="text-align:center;" | || e.g. with NVDA
|style="text-align:center;" | Yes || e.g. with NVDA
|-
|-
| Usability and/or discoverability testing   
| Usability and/or discoverability testing   
|style="text-align:center;" | || Is this feature user friendly
|style="text-align:center;" | No || Is this feature user friendly
|-
|-
| RTL build testing   
| RTL build testing   
|style="text-align:center;" | ||
|style="text-align:center;" | No ||
|-
|-
| '''Help/Support'''  
| '''Help/Support'''  
Line 224: Line 233:
|-
|-
| Help/support interface required   
| Help/support interface required   
|style="text-align:center;" | || Make sure link to support/help page exist and is easy reachable.
|style="text-align:center;" | No || Make sure link to support/help page exist and is easy reachable.
|-
|-
| Support documents planned(written)   
| Support documents planned(written)   
|style="text-align:center;" | || Make sure support documents are written and are correct.
|style="text-align:center;" | No || Make sure support documents are written and are correct.


|-
|-
Line 234: Line 243:
|-
|-
| Feature upgrades/downgrades data as expected   
| Feature upgrades/downgrades data as expected   
|style="text-align:center;" | ||
|style="text-align:center;" | Yes ||
|-
|-
| Does sync work across upgrades   
| Does sync work across upgrades   
|style="text-align:center;" | ||  
|style="text-align:center;" | No ||  
|-
|-
| Requires install testing     
| Requires install testing     
|style="text-align:center;" | || separate feature/application installation needed (not only Firefox)
|style="text-align:center;" | No || separate feature/application installation needed (not only Firefox)
|-
|-
| Affects first-run or onboarding     
| Affects first-run or onboarding     
|style="text-align:center;" | || 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.
|style="text-align:center;" | 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   
| Does this affect partner builds? Partner build testing   
|style="text-align:center;" | || yes/no options, add comment with details about who will lead testing
|style="text-align:center;" | No || yes/no options, add comment with details about who will lead testing


|-
|-
Line 253: Line 262:
|-
|-
| Enterprise administration   
| Enterprise administration   
|style="text-align:center;" | ||  
|style="text-align:center;" | No ||  
|-
|-
| Network proxies/autoconfig   
| Network proxies/autoconfig   
|style="text-align:center;" | ||  
|style="text-align:center;" | No ||  
|-
|-
| ESR behavior changes   
| ESR behavior changes   
|style="text-align:center;" | ||  
|style="text-align:center;" | No ||  
|-
|-
| Locked preferences   
| Locked preferences   
|style="text-align:center;" | ||
|style="text-align:center;" | No ||


|-
|-
Line 269: Line 278:
|-
|-
| Temporary or permanent telemetry monitoring   
| Temporary or permanent telemetry monitoring   
|style="text-align:center;" | || List of error conditions to monitor
|style="text-align:center;" | Yes || List of error conditions to monitor
|-
|-
| Telemetry correctness testing   
| Telemetry correctness testing   
|style="text-align:center;" | ||  
|style="text-align:center;" | No ||  
|-
|-
| Server integration testing   
| Server integration testing   
|style="text-align:center;" | ||  
|style="text-align:center;" | No ||  
|-
|-
| Offline and server failure testing   
| Offline and server failure testing   
|style="text-align:center;" | ||
|style="text-align:center;" | No ||
|-
|-
| Load testing   
| Load testing   
|style="text-align:center;" | ||
|style="text-align:center;" | No ||


|-
|-
Line 288: Line 297:
|-
|-
| Addon API required?   
| Addon API required?   
|style="text-align:center;" | ||  
|style="text-align:center;" | No ||  
|-
|-
| Comprehensive API testing   
| Comprehensive API testing   
|style="text-align:center;" | ||  
|style="text-align:center;" | No ||  
|-
|-
| Permissions   
| Permissions   
|style="text-align:center;" | ||  
|style="text-align:center;" | No ||  
|-
|-
| Testing with existing/popular addons
| Testing with existing/popular addons
|style="text-align:center;" | ||  
|style="text-align:center;" | Yes ||  


|-
|-
Line 314: Line 323:
|-
|-
| ''' Web Compatibility '''  
| ''' Web Compatibility '''  
|| || depends on the feature
|| || depends on the feature
|-
|-
| Testing against target sites   
| Testing against target sites   
|style="text-align:center;" | ||  
|style="text-align:center;" | No ||  
|-
|-
| Survey of many sites for compatibility   
| Survey of many sites for compatibility   
|style="text-align:center;" | ||  
|style="text-align:center;" | No ||  


|-
|-
Line 327: Line 336:
|-
|-
| 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;" | ||  
|style="text-align:center;" | No ||  
|-
|-
| Coordinated testing/interop across the Firefoxes: Desktop, Android, iOS   
| Coordinated testing/interop across the Firefoxes: Desktop, Android, iOS   
|style="text-align:center;" | ||  
|style="text-align:center;" | No ||  
|-
|-
| Interaction of this feature with other browser features   
| Interaction of this feature with other browser features   
|style="text-align:center;" | ||  
|style="text-align:center;" | No ||  
|}
|}


== Test suite ==
== Test suite ==
  Full Test suite - Link with the gdoc, follow the format from [https://docs.google.com/spreadsheets/d/1N8dGK_uenhfcM9cEPC3HPHmi0jFN98FWtL2DuszrfLY/edit#gid=0 link]
  Full Test suite - Link with the gdoc, follow the format from [https://testrail.stage.mozaws.net/index.php?/suites/view/576&group_by=cases:section_id&group_order=asc link]
Smoke Test suite - Link with the gdoc, follow the format from [https://docs.google.com/spreadsheets/d/1N8dGK_uenhfcM9cEPC3HPHmi0jFN98FWtL2DuszrfLY/edit#gid=0 link]
Regression Test suite - Link with the gdoc - if available/needed.


= Bug Work =
= Bug Work =
Tracking bug – meta bug
 
Meta bug: [https://bugzilla.mozilla.org/show_bug.cgi?id=1147911 1147911 - Use a separate content process for file:// URLs]


<div class="toccolours mw-collapsible mw-collapsed" style="width:auto">
<div class="toccolours mw-collapsible mw-collapsed" style="width:auto">
====== Logged bugs ( blocking [https://bugzilla.mozilla.org/show_bug.cgi?id=1147911 1147911 ] )======


====== Bug fix verification ======
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
{| class="wikitable" style="width:50%"
<bugzilla>
|-
    {
! Bug No !! Summary !! Status !! Firefox Verion
        "blocks":[1147911],
|-
        "include_fields": "id, priority, component, assigned_to, summary, status, target_milestone"
|  123 || bug summary || NEW || Nighly 45
    }
|-
</bugzilla>
| || || ||
 
|}
</div>
</div></div>
</div>


<div class="toccolours mw-collapsible mw-collapsed" style="width:auto">
<div class="toccolours mw-collapsible mw-collapsed" style="width:auto">
 
====== Bug fix verification ======
====== Logged bugs ======
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
Bug 111111<br/>
<bugzilla>
Bug 211111<br/>
    {
        "blocks":[1147911],
        "resolution":"FIXED",
        "include_fields": "id, priority, component, assigned_to, summary, status, resolution, target_milestone"
    }
</bugzilla>
</div>
</div>
</div>
</div>


= Sign off =
== Criteria for Mid Nightly ==
Check list
* All the smoke tests (designed to ensure the main functionality is working as expected) are executed.


= Sign off =
== Criteria for Pre-Beta Release and Pre-Release ==
== Criteria ==
Check list
Check list
* All test cases should be executed
* 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)
* All blockers, criticals must be fixed and verified or have an agreed-upon timeline for being fixed (as determined by engineering/RelMan/QA)


== Results ==
== Results ==
'''Nightly testing'''<br />
'''Mid Nightly testing'''<br />
 
Testing performed on folowing OSes<br />
* Windows 7 <br />
* Ubuntu 16.04<br />
* Mac OS X 10.12 <br />
 
Link for the tests run - [https://testrail.stage.mozaws.net/index.php?/plans/view/2907 Separate content process for file:// URLs [EngQA<nowiki>]</nowiki> - Mid Nightly 55.0a1]
 
'''Pre-Beta testing'''<br />


List of OSes that will be covered by testing<br />
Testing performed on folowing OSes<br />
*Link for the tests run
* Windows 10 x64 <br />
** Daily Smoke, use template from [https://docs.google.com/spreadsheets/d/1ch0OubyOWn1W-_JLF-38nvSvVB76Wmo1hkLccEtU5hk/edit?usp=sharing link]
* Ubuntu 16.04<br />
** Full Test suite, use template from [https://docs.google.com/spreadsheets/d/1ch0OubyOWn1W-_JLF-38nvSvVB76Wmo1hkLccEtU5hk/edit?usp=sharing link]
* Mac OS X 10.12 <br />
** Regression Test suite, if needed/available


'''Merge to Aurora Sign-off'''
Link for the tests run - [https://testrail.stage.mozaws.net/index.php?/plans/view/2907 Separate content process for file:// URLs - Pre-Beta Sign off (Fx55)] <br />
List of OSes that will be covered by testing<br />
Links for the test report - [https://testrail.stage.mozaws.net/index.php?/reports/view/352 link]
*Link for the tests run
** Full Test suite


== Checklist ==
== Checklist ==
{| class="wikitable" style="width:60%"
{| class="wikitable"  
|-
|-
! Exit Criteria !! Status !! Notes/Details
! Exit Criteria !! Status !! Notes/Details
|-
|-
|  Testing Prerequisites (specs, use cases)  
|  Testing Prerequisites (specs, use cases)  
| style="text-align:center;" |   
| style="text-align:center;" |  {{mdone|}}
| style="text-align:center;" |  
| style="text-align:center;" |  
|-
|-
|  Testing Infrastructure setup  
|  Testing Infrastructure setup  
|style="text-align:center;" |   ||  
|style="text-align:center;" | {{mdone|}} ||  
|-
|-
|  Test Plan Creation  
|  Test Plan Creation  
| style="text-align:center;" |   ||  
| style="text-align:center;" | {{mdone|}}  ||  
|-
|-
|  Test Cases Creation  
|  Test Cases Creation  
|style="text-align:center;" |   ||  
|style="text-align:center;" | {{mdone|}}  ||  
|-
|-
|  Full Functional Tests Execution  
|  Full Functional Tests Execution  
|style="text-align:center;" |   
|style="text-align:center;" |  {{mdone|}}
|style="text-align:center;" |   
|style="text-align:center;" |   
|-
|-
|  Automation Coverage ||
|  Automation Coverage
|style="text-align:center;" |  
|style="text-align:center;" | {{mdone|}} ||
toolkit/mozapps/extensions/test/browser/browser_file_xpi_no_process_switch.js <br />
dom/html/test/browser_form_post_from_file_to_http.js <br />
browser/base/content/test/tabs/browser_new_web_tab_in_file_process_pref.js <br />
browser/base/content/test/tabs/browser_viewsource_of_data_URI_in_file_process.js <br />
browser/base/content/test/general/browser_new_http_window_opened_from_file_tab.js <br />
browser/modules/test/xpcshell/test_E10SUtils_nested_URIs.js <br />
browser/base/content/test/tabs/browser_allow_process_switches_despite_related_browser.js <br />
browser/base/content/test/tabs/browser_reload_deleted_file.js <br />
browser/base/content/test/tabs/browser_opened_file_tab_navigated_to_web.js <br />
|-
|-
|  Performance Testing  
|  Performance Testing  
|style="text-align:center;" | ||  
|style="text-align:center;" | N/A ||  
|-
|-
|  All Defects Logged || ||  
|  All Defects Logged  
|style="text-align:center;" | {{mdone|}} ||  
|-
|-
|  Critical/Blockers Fixed and Verified || ||  
|  Critical/Blockers Fixed and Verified  
|style="text-align:center;" | {{mdone|}} ||  
|-
|-
|  Metrics/Telemetry||
|  Metrics/Telemetry
|style="text-align:center;" |  
|style="text-align:center;" | {{mdone|}} ||
|-
|-
|  QA Signoff  - Nightly Release||
|  QA mid-Nightly Signoff
|style="text-align:center;" | Email to be sent
|style="text-align:center;" | {{mdone|}}
|-
|style="text-align:center;" | [[https://wiki.mozilla.org/images/7/7a/-desktop--feature-_Use_a_separate_content_process_for_local_files_-_mid_Nightly_sign_off_%28YELLOW%29.pdf Email sent in 5/16/2017]]
|  QA Aurora - Full Testing
|style="text-align:center;" |  ||
|-
|-
|  QA Signoff - Aurora Release ||  
|  QA pre-Beta Signoff||  
|style="text-align:center;"| Email to be sent  
|style="text-align:center;"| Email to be sent  
|-
|-
Line 436: Line 465:
|style="text-align:center;" |  ||  
|style="text-align:center;" |  ||  
|-
|-
|  QA Signoff  - Beta Release ||  
|  QA pre-Release Signoff ||  
|style="text-align:center;" | Email to be sent  
|style="text-align:center;" | Email to be sent  
|}
|}

Latest revision as of 15:21, 2 June 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
02/23/2017 1.0 Simona Badau 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 Use a separate content process for file:// URLs 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 Manager:

  • Jim Mathies (:jimm)

• Project Manager:

  • Jim Mathies (:jimm)

• Engineering:

  • Jim Mathies (:jimm)

• Developer:

  • Bob Owen (:bobowen)

• UX:

  • N/A

• QA Engineering Team - Nightly Testing

Testing summary

Scope of Testing

In Scope

Use a separate content process for file:// URLs feature aims to make some changes in the way the content is handled when loading file:// URIs. That is content loaded from the local file system hat is now loaded in a separate child content process.

The feature is controlled by the boolean preference browser.tabs.remote.separateFileUriProcess.

Another relevant preference is dom.ipc.processCount.file that allows multiple file content processes.

Out of Scope

Testing the other types of content processes that are not related to the file:// URIs such as processes allocated for web sites, extensions etc.

Requirements for testing

Environments

Full testing will be performed on the following OSes:

  • Windows (Windows 7 and Windows 10)
  • Ubuntu 16.04
  • Mac OS X (Mac OS X 10.11 and Mac OS X 10.12)

Other configuration/environmental setup needed:

  • In Firefox configuration settings, browser.tabs.remote.separateFileUriProcess preference needs to be set to true.
  • To allow multiple content processes, change the value of the preference dom.ipc.processCount.file.

Test Strategy

Risks Assessment and Coverage

ID Description / Threat Description Covered by Test Objective Magnitude Probability Priority Impact Score
RAC-1 A local content process is not opened when a local file is opened TO-1, TO-2, TO-3, TO-4, TO-5, TO-6 3-High 2-Possible 2-Medium 12
RAC-2 A local content process is not closed when it's correponding local file is closed TO-1, TO-2, TO-3, TO-4, TO-5, TO-6 3-High 2-Possible 2-Medium 12
RAC-3 The content process is not changed when navigating from a local file to a web site and viceversa TO-3, TO-4 3-High 2-Possible 2-Medium 12
Rac-4 The interaction between the different types of content processes TO-3, TO-4 2-Moderate 2-Possible 1 - Low 4

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.

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 Risk Assessment and Coverage(RAC) Owners
TO-1 A local file is opened The content of a local file is loaded in a separate child content process (local content process) The local file is opened and it's content is loaded in a local content process allocated for local files Manual RAC-1 Eng Team
TO-2 Multiple local files are opened The content of multiple local files are opened in one or more local content processes (depending on the value of pref dom.ipc.processCount.file) Local files are opened in the content processes allocated for the local files Manual RAC-1 Eng Team
TO-3 Local files and websites can be opened in the same tab Local files and websites are opened in the same tab and the type of the content process differs (local content processes and websites content processes) Local files and websites are opened in the same tab and the type of the content process differs (local content processes and websites content processes) Manual RAC-1, RAC-2, RAC-3 Eng Team
TO-4 Local files and websites can be opened in different tabs Local files and websites are opened in different tabs Local files and websites are opened in different tab and the type of the content process differs (local content processes and websites content processes) Manual RAC-1, RAC-2, RAC-3 Eng Team
TO-5 Accessibility Local files and their correspondent local content processes are not affected from the accessibility point of view Testing for accessibility includes:

- Screen Reader validation
- Keyboard-only

Manual RAC-1, RAC-2 Eng Team
TO-6 Local file is closed Local files are closed along with their corresponding local content processes The local content processes are closed when the local files are closed Manual RAC-2 Eng Team

Builds

This section should contain links for builds with the feature:

  • Links for Nightly builds - available since November 26th 2016 - link
  • Links for Beta builds - Fx55

Test Execution Schedule

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

Project phase Start Date End Date
Start project 02.23.2017
Study documentation/specs received from developers 02.28.2017 02.29.2017
QA - Test plan creation 02.23.2017 02.24.2017
QA - Test cases/Env preparation 02.28.2017 03.30.2017
QA - Nightly Testing 02.28.2017 05.31.2017
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 TestRail/ Google docs
Test case execution TestRail
Bugs management Bugzilla

Status

Overview

Use a separate content process for file:// URLs feature first landed in Nightly 53 - 53.0a1 (2016-11-26)
The feature remained in Nightly for the 54 and 55 cycle.

References

  • bug 1147911 - Use a separate content process for file:// URLs

Testcases

Full testsuites can be found on TestRail at link or in the PDF doc.

Test Areas

Test Areas Covered Details
Private Window Yes
Multi-Process Enabled Yes
Multi-process Disabled Yes
Theme (high contrast) No
UI
Mouse-only operation Yes
Keyboard-only operation Yes
Display (HiDPI) Yes
Interraction (scroll, zoom) No
Usable with a screen reader Yes e.g. with NVDA
Usability and/or discoverability testing No Is this feature user friendly
RTL build testing No
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 Yes
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 Yes 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 Yes
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
Privilege escalation testing
Fuzzing
Web Compatibility depends on the feature
Testing against target sites No
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 No

Test suite

Full Test suite - Link with the gdoc, follow the format from link

Bug Work

Meta bug: 1147911 - Use a separate content process for file:// URLs

Logged bugs ( blocking 1147911 )
Full Query
ID Priority Component Assigned to Summary Status Target milestone
1309900 -- DOM: Navigation Bob Owen (:bobowen) Subframe history navigation logic gives false positives. VERIFIED mozilla52
1312788 -- Security: Process Sandboxing David Parks [:handyman] Add console warning and telemetry if service workers are used in the file content process. RESOLVED mozilla53
1317293 -- Security: Process Sandboxing Bob Owen (:bobowen) Add remote type match check to nsFrameLoader::SwapWithOtherRemoteLoader RESOLVED mozilla54
1317921 -- Security: Process Sandboxing Bob Owen (:bobowen) Handle nested file URIs with the file content process RESOLVED mozilla54
1319051 P3 Security: Process Sandboxing Only allow top-level load for data: URIs in non-default remote type when opened from an existing page. NEW ---
1321020 -- Security: Process Sandboxing Bob Owen (:bobowen) When you open a new file content tab from the file content process the wrong remote type gets set. RESOLVED mozilla53
1324912 -- View Source e10s - View source can fail for file:/// urls opened in new tabs from other file:/// urls because we pick the wrong remote tab type RESOLVED ---
1327942 -- Security: Process Sandboxing Bob Owen (:bobowen) Browser can't load the page (urlbar and title twitch between 2 values) if it tries to access renamed local file VERIFIED mozilla54
1328829 P2 Security: Process Sandboxing Bob Owen (:bobowen) Can not open a local HTML file in a view-source tab VERIFIED mozilla54
1329822 -- Security: Process Sandboxing Haik Aftandilian [:haik] file:// documents can't use <a download=foo.txt> to set a download name/force a download VERIFIED mozilla54
1332522 -- Security: Process Sandboxing Haik Aftandilian [:haik] [Mac] remove ~/Library read restriction from file content process sandbox VERIFIED mozilla54
1338375 -- DOM: Content Processes Bob Owen (:bobowen) Opening in a new http(s) window broken from file URL pages VERIFIED mozilla54
1342205 -- Add-ons Manager Drag and drop of add-on/addon .xpi file from local file system on page unloads page/shows white page/empty page RESOLVED ---
1345871 -- Security: Process Sandboxing Local PDF files are not loaded after a Firefox restart RESOLVED ---
1347153 -- Security: Process Sandboxing Multiple file content processes are not allowed on Ubuntu RESOLVED ---
1347198 -- DOM: Navigation History tab is lost when a local PDF is opened RESOLVED ---
1351358 -- DOM: Content Processes Bob Owen (:bobowen) Can't submit form to http(s) URL using POST method from a file:// page VERIFIED mozilla55
1359021 -- DOM: Navigation Bob Owen (:bobowen) [e10s] Named popup window is opened in duplicate when open it from file: protocol VERIFIED ---
1364879 -- Security: Process Sandboxing Bob Owen (:bobowen) Local file opened from private window does not open in private window VERIFIED ---
1366091 -- General Voltage SecureMail (HPE SecureMail) is broken in nightly when email message loaded as file: URL VERIFIED ---
1368692 -- DOM: Content Processes (Linux) Web/local content processes get stuck and are not cleared after crash:restart RESOLVED ---
1460939 P3 DOM: Navigation Boris Zbarsky [:bzbarsky] Reload of wyciwyg toplevel page coming from file:// is broken in e10s RESOLVED mozilla67
1508551 P3 DOM: Content Processes back and forward buttons not working when dragging files into the window NEW ---
1634252 P1 DOM: Navigation Paul Bone [:pbone] Named popup window is opened in duplicate when open it from file: protocol RESOLVED mozilla79

24 Total; 2 Open (8.33%); 12 Resolved (50%); 10 Verified (41.67%);


Bug fix verification
Full Query
ID Priority Component Assigned to Summary Status Resolution Target milestone
1309900 -- DOM: Navigation Bob Owen (:bobowen) Subframe history navigation logic gives false positives. VERIFIED FIXED mozilla52
1312788 -- Security: Process Sandboxing David Parks [:handyman] Add console warning and telemetry if service workers are used in the file content process. RESOLVED FIXED mozilla53
1317293 -- Security: Process Sandboxing Bob Owen (:bobowen) Add remote type match check to nsFrameLoader::SwapWithOtherRemoteLoader RESOLVED FIXED mozilla54
1317921 -- Security: Process Sandboxing Bob Owen (:bobowen) Handle nested file URIs with the file content process RESOLVED FIXED mozilla54
1321020 -- Security: Process Sandboxing Bob Owen (:bobowen) When you open a new file content tab from the file content process the wrong remote type gets set. RESOLVED FIXED mozilla53
1327942 -- Security: Process Sandboxing Bob Owen (:bobowen) Browser can't load the page (urlbar and title twitch between 2 values) if it tries to access renamed local file VERIFIED FIXED mozilla54
1328829 P2 Security: Process Sandboxing Bob Owen (:bobowen) Can not open a local HTML file in a view-source tab VERIFIED FIXED mozilla54
1329822 -- Security: Process Sandboxing Haik Aftandilian [:haik] file:// documents can't use <a download=foo.txt> to set a download name/force a download VERIFIED FIXED mozilla54
1332522 -- Security: Process Sandboxing Haik Aftandilian [:haik] [Mac] remove ~/Library read restriction from file content process sandbox VERIFIED FIXED mozilla54
1338375 -- DOM: Content Processes Bob Owen (:bobowen) Opening in a new http(s) window broken from file URL pages VERIFIED FIXED mozilla54
1351358 -- DOM: Content Processes Bob Owen (:bobowen) Can't submit form to http(s) URL using POST method from a file:// page VERIFIED FIXED mozilla55
1359021 -- DOM: Navigation Bob Owen (:bobowen) [e10s] Named popup window is opened in duplicate when open it from file: protocol VERIFIED FIXED ---
1364879 -- Security: Process Sandboxing Bob Owen (:bobowen) Local file opened from private window does not open in private window VERIFIED FIXED ---
1460939 P3 DOM: Navigation Boris Zbarsky [:bzbarsky] Reload of wyciwyg toplevel page coming from file:// is broken in e10s RESOLVED FIXED mozilla67
1634252 P1 DOM: Navigation Paul Bone [:pbone] Named popup window is opened in duplicate when open it from file: protocol RESOLVED FIXED mozilla79

15 Total; 0 Open (0%); 6 Resolved (40%); 9 Verified (60%);

Sign off

Criteria for Mid Nightly

Check list

  • All the smoke tests (designed to ensure the main functionality is working as expected) are executed.

Criteria for Pre-Beta Release and Pre-Release

Check list

  • All test cases should be executed
  • All blockers, criticals must be fixed and verified or have an agreed-upon timeline for being fixed (as determined by engineering/RelMan/QA)

Results

Mid Nightly testing

Testing performed on folowing OSes

  • Windows 7
  • Ubuntu 16.04
  • Mac OS X 10.12

Link for the tests run - Separate content process for file:// URLs [EngQA] - Mid Nightly 55.0a1

Pre-Beta testing

Testing performed on folowing OSes

  • Windows 10 x64
  • Ubuntu 16.04
  • Mac OS X 10.12

Link for the tests run - Separate content process for file:// URLs - Pre-Beta Sign off (Fx55)
Links for the test report - link

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 [DONE]

toolkit/mozapps/extensions/test/browser/browser_file_xpi_no_process_switch.js
dom/html/test/browser_form_post_from_file_to_http.js
browser/base/content/test/tabs/browser_new_web_tab_in_file_process_pref.js
browser/base/content/test/tabs/browser_viewsource_of_data_URI_in_file_process.js
browser/base/content/test/general/browser_new_http_window_opened_from_file_tab.js
browser/modules/test/xpcshell/test_E10SUtils_nested_URIs.js
browser/base/content/test/tabs/browser_allow_process_switches_despite_related_browser.js
browser/base/content/test/tabs/browser_reload_deleted_file.js
browser/base/content/test/tabs/browser_opened_file_tab_navigated_to_web.js

Performance Testing N/A
All Defects Logged [DONE]
Critical/Blockers Fixed and Verified [DONE]
Metrics/Telemetry [DONE]
QA mid-Nightly Signoff [DONE] [Email sent in 5/16/2017]
QA pre-Beta Signoff Email to be sent
QA Beta - Full Testing
QA pre-Release Signoff Email to be sent