|
|
| Line 1: |
Line 1: |
| '''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.
| |
|
| |
| {| class="wikitable" style="width:60%"
| |
| |-
| |
| ! Date !! Version !! Author !! Description
| |
| |-
| |
| | 01/26/2017 || 1.0 || Tobias Schneider || Created first draft
| |
| |-
| |
| | 01/31/2017 || 2.0 || Tobias Schneider || Updated Platforms and Test Area
| |
| |}
| |
|
| |
| = Overview = | | = Overview = |
| == Purpose == | | == 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 QA for the Intersection Observer API. 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 QA for the Intersection Observer API. It defines the overall testing requirements and provides an integrated view of the project test activities. Its purpose is to document: |
| | * Areas of risk |
| * What will be tested | | * What will be tested |
| * How testing will be performed | | * How testing will be performed |
| | ** criteria |
| | ** deliverables |
| | ** ownership |
| | ** schedule |
| | To help ensure the best possible release and long term maintenance of this feature. |
|
| |
|
| == Ownership == | | == Risk Analysis == |
| Developer contacts: [mailto:tschneider@mozilla.com Tobias Schneider] <br />
| | {| class="wikitable" style="width:95%" |
| QA: [mailto:twalker@mozilla.com Tracy Walker] <br />
| |
| QA Peer: <span style=color:red> TBD </span>
| |
| | |
| = Testing summary =
| |
| == Scope of Testing ==
| |
| === In Scope ===
| |
| Detail what is in scope from a testing perspective for the project team.
| |
| | |
| === 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 using Nightly for Desktop builds on:
| |
| | |
| Windows <br />
| |
| Mac OS X <br />
| |
| Linux <br />
| |
| | |
| Full Testing will be performed using Nightly for Mobile builds on:
| |
| | |
| Android <br />
| |
| | |
| == Channel dependent settings (configs) and environment setups ==
| |
| | |
| === Nightly ===
| |
| dom.IntersectionObserver.enabled needs to be set to "true" in about:config <br />
| |
| If any kind of Ad-blocker is installed/in use it needs to be uninstalled/disabled
| |
| | |
| = 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.
| |
| | |
| {| class="wikitable"
| |
| |-
| |
| ! Ref !! Function !! Test Objective !! Evaluation Criteria !! Test Type !! Owners
| |
| |-
| |
| | 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
| |
| |-
| |
| | 2 || Repeat for each feature/sub-function || || || ||
| |
| |-
| |
| | 3 || || || || ||
| |
| |}
| |
| | |
| | |
| == Builds ==
| |
| This section should contain links for builds with the feature
| |
| * [https://nightly.mozilla.org/ Links for Nightly builds]
| |
| | |
| == Test Execution Schedule ==
| |
| The following table identifies the anticipated testing period available for test execution.
| |
| {| class="wikitable" style="width:60%" | |
| |- | | |- |
| ! Project phase !! Start Date !! End Date | | ! Risk area !! Requirement !! Status |
| |- | | |- |
| | Start project | | | Ad intensive web pages || No regression in interaction performance || style="background-color:#CEF2F2;" | TBD |
| |style="text-align:center;" | || | |
| |- | | |- |
| | Study documentation/specs received from developers | | | Security || Fuzz testing || style="background-color:#CEF2F2;" | TBD |
| |style="text-align:center;" | ||
| |
| |- | |
| | QA - Test plan creation
| |
| |style="text-align:center;" | || | |
| |- | | |- |
| | QA - Test cases/Env preparation | | | Stability || Crash rate || style="background-color:#CEF2F2;" | TBD |
| |style="text-align:center;" | || | |
| |- | | |- |
| | QA - Nightly Testing | | | Add-ons || Breaks ad-block type add-ons??|| style="background-color:#CEF2F2;" | TBD |
| |style="text-align:center;" | || | |
| |-
| |
| | QA - Aurora Testing | |
| |style="text-align:center;" | ||
| |
| |-
| |
| | QA - Beta Testing | |
| |style="text-align:center;" | || | |
| |-
| |
| | Release Date
| |
| |style="text-align:center;" | ||
| |
| |} | | |} |
|
| |
|
| == Testing Tools == | | = Testing Strategy = |
| Detail the tools to be used for testing, for example see the following table:
| | == Scope == |
| {| class="wikitable" style="width:50%"
| |
| |-
| |
| ! Process !! Tool
| |
| |-
| |
| | Test plan creation || Mozilla wiki
| |
| |-
| |
| | Test case creation || [https://testrail.stage.mozaws.net/index.php TestRail]/ Google docs
| |
| |-
| |
| | Test case execution || [https://testrail.stage.mozaws.net/index.php TestRail]
| |
| |-
| |
| | Bugs management || Bugzilla
| |
| |}
| |
| | |
| = Status =
| |
| == Overview ==
| |
| First releases to Nightly: <span style=color:red> TBD </span>
| |
| | |
| == 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
| |
| ** [https://wicg.github.io/IntersectionObserver/] Intersection Observer Spec
| |
| ** [https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API] Intersection Observer API
| |
|
| |
| * Meta bug
| |
| ** [https://bugzilla.mozilla.org/show_bug.cgi?id=1321865 Bug 1321865] - Enable IntersectionObserver
| |
|
| |
| | |
| = Testcases =
| |
| == Overview ==
| |
| Testing should happen on Ad-intensive websites. In general news sites tent to be rich of Ads. Therefore the top news sites on Alexa are a great source for suitable websites. | |
| | |
| [http://www.alexa.com/topsites/category/Top/News] The top 500 news sites on the web
| |
| | |
| List of known sites using the Intersection Observer API:
| |
| | |
| * https://soundcloud.com/charts/top
| |
| * http://news.yahoo.co.jp
| |
| * http://www.iza.ne.jp/kiji/entertainments/newslist/entertainments-n1.html
| |
| * http://www.bbc.com/sport/all-sports
| |
| * http://money.cnn.com/video/media/2016/10/13/rogue-one-trailer-good-morning-america.cnnmoney?iid=EL
| |
| * http://money.cnn.com/2016/11/25/media/rogue-one-tickets/
| |
| * http://abc7news.com/pets/hillsborough-mountain-lion-goes-viral/1658809/
| |
| | |
| Possible test scenarios:
| |
| | |
| * Open a single news site. Wait till it is fully loaded to make sure all Ads are properly initialized. If there is content to scroll, scroll up and down a couple of times. Click on some articles to trigger a refresh.
| |
| | |
| * Open a multiple news sites in different tabs. Wait till every page is fully loaded to make sure all Ads are properly initialized. Switch between tabs from time too time. Close and open new tabs randomly. If there is content to scroll, scroll up and down a couple of times. Click on some articles to trigger a refresh.
| |
| | |
| * Repeat scenarios above but let the browser untouched for a longer period of time. Then proceed.
| |
| | |
| == Test Areas == | |
| {| class="wikitable" style="width:80%" | | {| class="wikitable" style="width:80%" |
| |- | | |- |
| ! Test Areas !! Covered !! Details | | ! Test Areas !! Covered |
| |- | | |- |
| | Private Window | | | Private Window |
| |style="text-align:center;" | |Yes| | | |style="text-align:center;" | Yes |
| |- | | |- |
| | Multi-Process Enabled | | | Multi-Process Enabled |
| |style="text-align:center;" | |Yes| | | |style="text-align:center;" | Yes |
| |- | | |- |
| | Multi-process Disabled | | | Multi-process Disabled |
| |style="text-align:center;" | |Yes| | | |style="text-align:center;" | Yes |
| |- | | |- |
| | Theme (high contrast) | | | Stability |
| |style="text-align:center;" | |No| | | |style="text-align:center;" | Yes |
| |- | | |- |
| | '''UI''' | | | '''UI''' |
| || || | | || |
| |-
| |
| | Mouse-only operation
| |
| |style="text-align:center;" | |No|
| |
| |-
| |
| | Keyboard-only operation
| |
| |style="text-align:center;" | |No|
| |
| |- | | |- |
| | Display (HiDPI) | | | Display (HiDPI) |
| |style="text-align:center;" | |Yes| | | |style="text-align:center;" | Yes |
| |- | | |- |
| | Interraction (scroll, zoom) | | | Interraction (scroll, zoom) |
| |style="text-align:center;" | |Yes| | | |style="text-align:center;" | Yes |
| |-
| |
| | Usable with a screen reader
| |
| |style="text-align:center;" | |No| e.g. with NVDA
| |
| |-
| |
| | Usability and/or discoverability testing
| |
| |style="text-align:center;" | |No| Is this feature user friendly
| |
| |-
| |
| | RTL build testing
| |
| |style="text-align:center;" | |No|
| |
| |-
| |
| | '''Help/Support'''
| |
| || ||
| |
| |-
| |
| | Help/support interface required
| |
| |style="text-align:center;" | |No| Make sure link to support/help page exist and is easy reachable.
| |
| |-
| |
| | Support documents planned(written)
| |
| |style="text-align:center;" | |No| Make sure support documents are written and are correct.
| |
| | |
| |-
| |
| | '''Install/Upgrade'''
| |
| || ||
| |
| |-
| |
| | Feature upgrades/downgrades data as expected
| |
| |style="text-align:center;" | |No|
| |
| |-
| |
| | Does sync work across upgrades
| |
| |style="text-align:center;" | |No|
| |
| |-
| |
| | Requires install testing
| |
| |style="text-align:center;" | |No| separate feature/application installation needed (not only Firefox)
| |
| |-
| |
| | Affects first-run or onboarding
| |
| |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
| |
| |style="text-align:center;" | |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
| |
| |style="text-align:center;" | |No|
| |
| |-
| |
| | Network proxies/autoconfig
| |
| |style="text-align:center;" | |No|
| |
| |-
| |
| | ESR behavior changes
| |
| |style="text-align:center;" | |No|
| |
| |-
| |
| | Locked preferences
| |
| |style="text-align:center;" | |No|
| |
| | |
| |-
| |
| | ''' Data Monitoring '''
| |
| || ||
| |
| |-
| |
| | Temporary or permanent telemetry monitoring
| |
| |style="text-align:center;" | |No| List of error conditions to monitor
| |
| |-
| |
| | Telemetry correctness testing
| |
| |style="text-align:center;" | |No|
| |
| |-
| |
| | Server integration testing
| |
| |style="text-align:center;" | |No|
| |
| |-
| |
| | Offline and server failure testing
| |
| |style="text-align:center;" | |No|
| |
| |-
| |
| | Load testing
| |
| |style="text-align:center;" | |No|
| |
|
| |
|
| |- | | |- |
| | ''' Add-ons ''' | | | ''' 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. | | || |
| |- | | |- |
| | Interferes with ad-blocking Add-ons? | | | Interferes with ad-blocking Add-ons? |
| |style="text-align:center;" | |Yes| | | |style="text-align:center;" | Yes |
| |-
| |
| | Addon API required?
| |
| |style="text-align:center;" | |No|
| |
| |-
| |
| | Comprehensive API testing
| |
| |style="text-align:center;" | |No|
| |
| |-
| |
| | Permissions
| |
| |style="text-align:center;" | |No|
| |
| |-
| |
| | Testing with existing/popular addons
| |
| |style="text-align:center;" | |No|
| |
|
| |
|
| |- | | |- |
| | ''' Security ''' | | | ''' 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
| |
| |style="text-align:center;" | |No|
| |
| |-
| |
| | Privilege escalation testing
| |
| |style="text-align:center;" | |No|
| |
| |- | | |- |
| | Fuzzing | | | Fuzzing |
| |style="text-align:center;" | |Yes| | | |style="text-align:center;" | Yes |
| | |
| |- | | |- |
| | ''' Web Compatibility ''' | | | ''' Web Compatibility ''' |
| || || depends on the feature | | || |
| |- | | |- |
| | Testing against target sites | | | Testing against target sites |
| |style="text-align:center;" | |Yes| | | |style="text-align:center;" | Yes |
| | |} |
| | |
| | If it's not listed above, it is currently out of scope. |
| | |
| | = Test Strategy = |
| | == Objectives == |
| | {| class="wikitable" style="width:95%" |
| |- | | |- |
| | Survey of many sites for compatibility
| | ! Criteria Description |
| |style="text-align:center;" | |No|
| | ! Metric |
| | | ! without IO API |
| | ! IO API value |
| | ! Criteria Met? |
| | ! QA Owner |
| |- | | |- |
| | ''' Interoperability ''' | | | Manual testing |
| || || depends on the feature | | | Interaction performance |
| | | (test results) |
| | | (test results) |
| | | style="background-color:#CEF2F2;" | TBD (Date status updated) |
| | | style="background-color:#CEF2F2;" | Tracy |
| |- | | |- |
| | Common protocol/data format with other software: specification available. Interop testing with other common clients or servers. | | | Unit testing |
| |style="text-align:center;" | |No| | | | Automated tests |
| | | (test results) |
| | | (test results) |
| | | style="background-color:#CEF2F2;" | TBD (Date status updated) |
| | | style="background-color:#CEF2F2;" | Tobias |
| |- | | |- |
| | Coordinated testing/interop across the Firefoxes: Desktop, Android, iOS | | | Fuzz testing |
| |style="text-align:center;" | |No| | | | Automated tests |
| | | (test results) |
| | | (test results) |
| | | style="background-color:#CEF2F2;" | TBD (Date status updated) |
| | | style="background-color:#CEF2F2;" | Fuzzing team (tbd) |
| |- | | |- |
| | Interaction of this feature with other browser features | | | Stability |
| |style="text-align:center;" | |No| | | | Crash reports |
| | | telemetry/crash stats |
| | | no notable stability regression |
| | | style="background-color:#CEF2F2;" | TBD (Date status updated) |
| | | style="background-color:#CEF2F2;" | Tobias |
| |} | | |} |
|
| |
|
| == Test suite == | | == Testcases == |
| Full Test suite - Link with the gdoc, follow the format from [https://docs.google.com/spreadsheets/d/1N8dGK_uenhfcM9cEPC3HPHmi0jFN98FWtL2DuszrfLY/edit#gid=0 link]
| | Testing should happen on Ad-intensive websites. In general news sites tent to be rich of Ads. Therefore the top news sites on Alexa are a great source for suitable websites. |
| 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 =
| | [http://www.alexa.com/topsites/category/Top/News] The top 500 news sites on the web |
| Tracking bug – meta bug
| |
|
| |
|
| <div class="toccolours mw-collapsible mw-collapsed" style="width:auto">
| | List of known sites using the Intersection Observer API: |
|
| |
|
| ====== Bug fix verification ======
| | * https://soundcloud.com/charts/top |
| <div class="mw-collapsible-content">
| | * http://news.yahoo.co.jp |
| {| class="wikitable" style="width:50%"
| | * http://www.iza.ne.jp/kiji/entertainments/newslist/entertainments-n1.html |
| |-
| | * http://www.bbc.com/sport/all-sports |
| ! Bug No !! Summary !! Status !! Firefox Verion
| | * http://money.cnn.com/video/media/2016/10/13/rogue-one-trailer-good-morning-america.cnnmoney?iid=EL |
| |-
| | * http://money.cnn.com/2016/11/25/media/rogue-one-tickets/ |
| | 123 || bug summary || NEW || Nighly 45
| | * http://abc7news.com/pets/hillsborough-mountain-lion-goes-viral/1658809/ |
| |-
| | |
| | || || ||
| | Possible test scenarios: |
| |}
| | |
| </div></div>
| | * Open a single news site. Wait till it is fully loaded to make sure all Ads are properly initialized. If there is content to scroll, scroll up and down a couple of times. Click on some articles to trigger a refresh. |
| | |
| | * Open a multiple news sites in different tabs. Wait till every page is fully loaded to make sure all Ads are properly initialized. Switch between tabs from time too time. Close and open new tabs randomly. If there is content to scroll, scroll up and down a couple of times. Click on some articles to trigger a refresh. |
| | |
| | * Repeat scenarios above but let the browser untouched for a longer period of time. Then proceed. |
|
| |
|
| <div class="toccolours mw-collapsible mw-collapsed" style="width:auto">
| | == Environments == |
| | Full Testing will be performed using Nightly for Desktop builds on: |
| | * Windows |
| | * Mac OS X |
| | * Linux |
|
| |
|
| ====== Logged bugs ======
| | Full Testing will be performed using Nightly for Mobile builds on: |
| <div class="mw-collapsible-content">
| | * Android |
| Bug 111111<br/>
| |
| Bug 211111<br/>
| |
| </div>
| |
| </div>
| |
|
| |
|
| | == Channel dependent settings (configs) and environment setups == |
| | * In Nightly (and DevEd when available)- dom.IntersectionObserver.enabled needs to be set to "true" in about:config |
| | *If any kind of Ad-blocker is installed/in use it needs to be uninstalled/disabled |
|
| |
|
| = Sign off = | | = Project Information = |
| == Criteria == | | == Ownership == |
| Check list
| | Developer contacts: [mailto:tschneider@mozilla.com Tobias Schneider] <br /> |
| * All test cases should be executed
| | QA: [mailto:twalker@mozilla.com Tracy Walker] <br /> |
| * Has sufficient automated test coverage (as measured by code coverage tools) - coordinate with RelMan
| | QA Peer: <span style=color:red> TBD </span> |
| * All blockers, criticals must be fixed and verified or have an agreed-upon timeline for being fixed (as determined by engineering/RelMan/QA)
| |
|
| |
|
| == Results == | | == Builds == |
| <span style=color:red> TBC </span>
| | This section should contain links for builds with the feature |
| | * [https://nightly.mozilla.org/ Links for Nightly builds] |
|
| |
|
| == Checklist == | | == Schedule == |
| | The following table identifies the anticipated testing period available for test execution. |
| {| class="wikitable" style="width:60%" | | {| class="wikitable" style="width:60%" |
| |- | | |- |
| ! Exit Criteria !! Status !! Notes/Details | | ! Project phase !! Start Date !! End Date |
| |- | | |- |
| | Testing Prerequisites (specs, use cases) | | | Start project |
| | style="text-align:center;" | | | |style="text-align:center;" | || |
| | style="text-align:center;" | | |
| |- | | |- |
| | Testing Infrastructure setup | | | Study documentation/specs received from developers |
| |style="text-align:center;" | || | | |style="text-align:center;" | || |
| |- | | |- |
| | Test Plan Creation | | | QA - Test plan creation |
| | style="text-align:center;" | || | | |style="text-align:center;" | || |
| |- | | |- |
| | Test Cases Creation | | | QA - Test cases/Env preparation |
| |style="text-align:center;" | ||
| |
| |-
| |
| | Full Functional Tests Execution
| |
| |style="text-align:center;" |
| |
| |style="text-align:center;" |
| |
| |-
| |
| | Automation Coverage ||
| |
| |style="text-align:center;" |
| |
| |-
| |
| | Performance Testing
| |
| |style="text-align:center;" | || | | |style="text-align:center;" | || |
| |- | | |- |
| | All Defects Logged || || | | | QA - Nightly Testing |
| |-
| |
| | Critical/Blockers Fixed and Verified || ||
| |
| |-
| |
| | Metrics/Telemetry||
| |
| |style="text-align:center;" |
| |
| |-
| |
| | QA Signoff - Nightly Release||
| |
| |style="text-align:center;" | Email to be sent
| |
| |-
| |
| | QA Aurora - Full Testing
| |
| |style="text-align:center;" | || | | |style="text-align:center;" | || |
| |- | | |- |
| | QA Signoff - Aurora Release || | | | QA - Aurora Testing |
| |style="text-align:center;"| Email to be sent | | |style="text-align:center;" | || |
| |- | | |- |
| | QA Beta - Full Testing | | | QA - Beta Testing |
| |style="text-align:center;" | || | | |style="text-align:center;" | || |
| |- | | |- |
| | QA Signoff - Beta Release || | | | Release Date |
| |style="text-align:center;" | Email to be sent | | |style="text-align:center;" | || |
| |} | | |} |
| | |
| | == References == |
| | * List and links for specs |
| | ** [https://wicg.github.io/IntersectionObserver/] Intersection Observer Spec |
| | ** [https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API] Intersection Observer API |
| | |
| | * Meta bug |
| | ** [https://bugzilla.mozilla.org/show_bug.cgi?id=1321865 Bug 1321865] - Enable IntersectionObserver |