QA/e10s + A11y Test Plan
Overview
Purpose
Quality assurance plan to ensure accessibility features with e10s enabled using Windows and Linux operating system are ready for public release.
Note: Despite this wiki page title, this test plan is for accessibility + e10s in general, not just touchscreen support.
Quality Criteria
Risk area | Requirement | Status |
---|---|---|
Screen readers | There should be no significant difference in using screen readers than on non-e10s | In-Progress |
Touch screens | Touch enabled devices, including soft keyboards, should function as well as in non-e10s (confirm a11y isn't activated for touch screen users) | In-Progress |
IME clients | Common IME clients should function as well as in non-e10s | TBD |
Remote Desktop clients | Browser stability issues while access the browser through RDP | In-Progress |
Popular sites (ie, gmail, twitter, facebook, and the other Google apps | No significant regression in site correctness, stability or performance with e10s and a11y compared to a11y on non-e10s | In-Progress |
ARIA markup | There should be no significant difference in a11y exposed interfaces for e10s vs non-e10s | In-Progress |
General performance | Overall performance of Firefox with a11y on e10s should not be notably worse than with a11y on non-e10s | In-Progress |
Testing summary
Scope of Testing
In Scope
The scope of our testing is the A11y+e10s accessibility and functionality and performance of the most popular sites and most commonly used 3rd party tools.
- Integration: Verify the integration with the current browser functionalities and UI;
- Functionality: Basic and advanced functionality to be verified according to the existing requirements;
- Usability: Intuitive and how users interact with the feature;
- Performance: Reference, where applicable, observed and collected performance data.
Out of Scope
We will not be testing with less popular 3rd party tools or on obscure web sites.
Requirements for testing
Environments
Testing will be performed on following OSes:
- Windows 10 (x64)
- Linux - Ubuntu 16.04 (x64)
Quality Assurance Strategy
Test Items
Screen Readers
Client | Free/Licensed | Demo Available? | Demo Expiration | Purchased Copy? | Owner/Location |
---|---|---|---|---|---|
NVDA (Win) (top priority) | free | n/a | n/a | Yes | |
Window-Eyes (Win) | licensed | link[1] | 60 days | No | |
JAWS (Win) version 18.0.4321 or higher | licensed | - | Yes (Windows) | SV Las Vegas (Grover) | |
Dolphin (Win) | licensed | No |
[1] requires filling in a contact information form
Criteria Description | Metric | non-e10s value | e10s value | Criteria Met? | QA Owner |
---|---|---|---|---|---|
Manual testing | Test cases passed | # (passed -TBD) out of # (total test cases run -TBD) | # (passed -TBD) out of # (total test cases run -TBD) | TBD (Date status updated) | SoftVision |
56 to 57 Update Changes
In cases where JAWS is configured to run at startup, the presence of a running instance of JAWS (version numbers lower than 18.0.4321) will disable 56 -> 57 updates. We should test to confirm this behavior is working.
Incompatibility Prompting
In a situation where JAWS (version numbers lower than 18.0.4321) is run with Firefox 57, the browser should prompt the user informing them they need to update their screen reading software, or switch to Firefox Extended Release. We should confirm this behavior is working.
Touch Screens
Because a11y should no longer be triggered by touch screen devices, only the first metric below should block release of a11y+e10s.
Criteria Description | Metric | non-e10s value | e10s value | Criteria Met? | QA Owner |
---|---|---|---|---|---|
Manual testing | A11y enabled? (should be false) | true or false | true or false | TBD (Date status updated) | SoftVision |
Manual testing | TestRail Test cases passed or Google Docs | # (passed -TBD) out of 26 test cases run | # (passed -TBD) out of 26 test cases run | TBD (Date status updated) | SoftVision |
IME Clients
These are very difficult to test if one is not familiar with the language under test. Until we have a better longer term test ownership solution, we'll have to rely on community feedback and bug reports.
Language | Primary IME | 3rd party |
---|---|---|
Japanese | Win: MS-IME, macOS: Apple Japanese IME | Google Japanese Input, ATOK (not free) |
Simplified Chinese | Pinyin | ABC |
Traditional Chinese | Changjie | |
Korean | Win: MS-IME, macOS: Apple Korean IME |
Criteria Description | Metric | non-e10s value | e10s value | Criteria Met? | QA Owner |
---|---|---|---|---|---|
Manual testing | Community input and bug reports | # of bug reports | # of bug reports | TBD (Date status updated) | Community |
Popular Sites
Criteria Description | Metric | non-e10s value | e10s value | Criteria Met? | QA Owner |
---|---|---|---|---|---|
Manual testing | Test cases passed | # (passed -TBD) out of # (total test cases run -TBD) | # (passed -TBD) out of # (total test cases run -TBD) | TBD (Date status updated) | SoftVision |
ARIA Markup
- MDN doc on ARIA
- Dated, but a good base of examples to use as test cases
Criteria Description | Metric | non-e10s value | e10s value | Criteria Met? | QA Owner |
---|---|---|---|---|---|
Manual testing using existing tools/suites | Test cases passed | # (passed -TBD) out of # 44 test cases run | # (passed -TBD) out of # 44 test cases run | TBD (Date status updated) | SoftVision |
General Performance
Acceptable regression ranges, if any, need to be determined.
Criteria Description | Metric | non-e10s value | e10s value | Criteria Met? | QA Owner |
---|---|---|---|---|---|
CPU usage (observed) | Peak/average % CPU | %peak/%average | %peak/%average | TBD (Date status updated) | SoftVision |
Memory usage (observed) | Peak/Average % memory | %peak/%average | %peak/%average | TBD (Date status updated) | SoftVision |
Telemetry - overall crash rate with a11y enabled | crashes per 1000 use hours | # crashes | # crashes | a/b experiment on beta TBD | tracy |
Talos - a11yr summary | Page load times | 490.6ms (Win 7) | 531.6ms (Win 7) | FAIL - 8.36% regression on Win 7 (20170115) | tracy |
Builds
TBD
Test Execution Schedule
The following table identifies the anticipated testing period available for test execution.
Project phase | Start Date | End Date |
---|---|---|
Start project | December 2016 | - |
Study documentation/specs received from developers | TBD | - |
QA - Test plan creation | 12/13/2016 | - |
QA - Test cases/Env preparation | 12/12/2016 | - |
QA - Nightly Testing | February/March 2017 | - |
QA - Aurora Testing | N/A | |
QA - Beta Testing | Oct 16th 2017 | Oct 27th 2017 |
Release Date | Nov 14th | - |
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/GitHub (mainly) |
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
Testcases
Available on TestRail and Google Doc format TestRail Google Docs
To Be filed:
- live regions test case (bug 1322532)
- Browser hang up when Open View Source (IME related, bug 1318900)
Overview
- Summary of testing scenarios
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) | No | |
Interraction (scroll, zoom) | Yes | |
Usable with a screen reader | Yes | e.g. with NVDA |
Usability and/or discoverability testing | Yes | Is this feature user friendly |
Help/Support | ||
Help/support interface required | No | Make sure link to support/help page exist and is easy reachable. |
Support documents planned(written) | Yes | 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 | Yes | Requires NVDA Installation |
Affects first-run or onboarding | No | |
Does this affect partner builds? Partner build testing | No | |
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 | No | Testing was not conducted by SV QA Eng team. |
Telemetry correctness testing | No | Testing was not conducted by SV QA Eng team. |
Server integration testing | No | Testing was not conducted by SV QA Eng team. |
Offline and server failure testing | No | |
Load testing | No | Testing was not conducted by SV QA Eng team. |
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 | Ensure no performance/stability regressions |
Security | ||
3rd-party security review | No | |
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. | Yes | NVDA should cover most of this. Other common clients are closed-source, expensive, and do not offer trial versions. |
Coordinated testing/interop across the Firefoxes: Desktop, Android, iOS | No | |
Interaction of this feature with other browser features | Yes |
Test suite
- Full Test suite - Test Rail - https://testrail.stage.mozaws.net/index.php?/suites/view/376&group_by=cases:section_id&group_order=asc
- Smoke Test suite -* Regression Test suite - TBD
Bug Work
- Bugzilla Meta Bugs
- aes+ tracking list
183 Total; 3 Open (1.64%); 169 Resolved (92.35%); 11 Verified (6.01%);
- bug 1258839 - [Meta] e10s/a11y Issues
ID | Priority | Component | Assigned to | Summary | Status | Target milestone |
---|---|---|---|---|---|---|
1189277 | P2 | Disability Access APIs | Trevor Saunders (:tbsaunde) | Crash in IPCError-browser | (msgtype=0x580009,name=PDocAccessible::Msg_BindChildDoc) Processing error: message was deserialized | RESOLVED | --- |
1206711 | -- | Disability Access APIs | Yura Zenevich [:yzen] (please use "needinfo") | Make Window Emulation work in e10s | RESOLVED | --- |
1261107 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | Add ability to marshal a COM object and transfer its serialized proxy across IPDL | RESOLVED | mozilla50 |
1263224 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | Hand off a11y requests from RPC thread to main thread | RESOLVED | mozilla50 |
1268151 | -- | IPC | (No longer employed by Mozilla) Aaron Klotz | Circular includes in IPDL headers leading to odd behavior | RESOLVED | mozilla50 |
1268544 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | Refactor a11y IPC to allow for remoting COM objects | RESOLVED | mozilla51 |
1269369 | -- | Disability Access APIs | Yura Zenevich [:yzen] (please use "needinfo") | [e10s] DOMNodeId accessible proxy is not implemented on Windows. | RESOLVED | mozilla53 |
1270916 | P2 | Disability Access APIs | Trevor Saunders (:tbsaunde) | Crash in IPCError-browser | (msgtype=0x2C0004,name=PBrowser::Msg_PDocAccessibleConstructor) Processing error: message was deseri | RESOLVED | --- |
1272146 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | Thunk for IAccessible property accesses that pass non-self child IDs | RESOLVED | mozilla51 |
1273635 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | Mitigate potential a11y deadlocks due to COM calls originating from chrome process | RESOLVED | mozilla51 |
1275731 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | Add ia2marshal.dll to installer | RESOLVED | mozilla50 |
1277075 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | Disable COM's catch-all exception handler | RESOLVED | mozilla50 |
1296571 | -- | Disability Access APIs | 223.05% a11yr (windows8-64) regression on push d84b4dd26a403675c8059e5d073ebc65d5fc07eb (Thu Aug 18 2016) | RESOLVED | --- | |
1297549 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | Arrow keys will not read the page with a11y and e10s | RESOLVED | mozilla52 |
1303060 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | Implement COM handler to reduce RPC round-trips | RESOLVED | mozilla55 |
1309236 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | Crash in mozilla::a11y::DocAccessibleParent::RecvMsaaID | RESOLVED | mozilla52 |
1309271 | -- | Disability Access APIs | Jim Mathies [:jimm] | Accessibility issues when moving focus from chrome elements to content elements | RESOLVED | mozilla55 |
1310056 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | Implement compatibility hack for RPC_E_CANTCALLOUT_ININPUTSYNCCALL | RESOLVED | mozilla55 |
1311834 | -- | IPC | (No longer employed by Mozilla) Aaron Klotz | MSCOM MainThreadInvoker: Spin the background thread while waiting for main thread | RESOLVED | mozilla52 |
1312046 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | Crash in GetProxiedAccessibleInSubtree | VERIFIED | mozilla52 |
1312064 | -- | Disability Access APIs | Crash in mozalloc_abort | NS_DebugBreak | mozilla::ipc::FatalError | mozilla::a11y::PDocAccessibleChild::SendCOMProxy | RESOLVED | --- | |
1314707 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | Eliminate SendCOMProxy from PDocAccessible protocol | RESOLVED | mozilla53 |
1316109 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | ia2_api_all.idl is missing a typelib entry for IAccessible2_3 | RESOLVED | mozilla52 |
1321622 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | DocAccessibleParent::Unbind does not call ProxyAccessible::SetChildDoc(nullptr) | RESOLVED | mozilla53 |
1322532 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | [e10s a11y] Live regions broken on Windows | RESOLVED | mozilla55 |
1336971 | P2 | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | Crash in InvalidArrayIndex_CRASH | nsTArray_Impl<T>::operator[] | mozilla::a11y::AccessibleWrap::GetRemoteIAccessibleFor | RESOLVED | mozilla58 |
1337935 | -- | Disability Access APIs | 64-bit a11y clients cannot see content accessibles from 32-bit firefox | RESOLVED | --- | |
1339947 | -- | IPC | (No longer employed by Mozilla) Aaron Klotz | ArrayData lookups in mscom registration code need to take inheritance into account | RESOLVED | mozilla54 |
1342243 | P1 | Disability Access APIs | Firefox hangs when navigating through aria-autocomplete list with a screenreader | RESOLVED | --- | |
1354077 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | a11y crashes due to null COM proxy on top-level PDocAccessible | RESOLVED | mozilla56 |
1374643 | -- | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | Crash in mozilla::a11y::HandlerProvider::MarshalAs | RESOLVED | mozilla56 |
1387038 | P1 | Disability Access APIs | NVDA produces errors in the rich text editor of Gmail | RESOLVED | --- | |
1395059 | P1 | Disability Access APIs | [e10s] Fetching table cell other than first with table interfaces returns broken object | RESOLVED | --- | |
1400434 | P3 | Disability Access APIs | JAWS Screenreader does not read selected text from a hide/show region | NEW | --- | |
1406822 | P1 | Disability Access APIs | (No longer employed by Mozilla) Aaron Klotz | Fetching table cell accessibles by coords causes table breakage with handler enabled | RESOLVED | mozilla58 |
35 Total; 1 Open (2.86%); 33 Resolved (94.29%); 1 Verified (2.86%);
- bug 1350984 - [Meta] Jaws e10s Issues
30 Total; 0 Open (0%); 30 Resolved (100%); 0 Verified (0%);
Sign off
Criteria
Check list
- All Criteria under each section of Quality Assurance Strategy should be green.
- 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
Aurora testing
- TBD on TestRail
Merge to Aurora Sign-off
List of OSes that will be covered by testing
- Link for the tests run - TBD
- Full Test suite - TBD
Checklist
Exit Criteria | Status | Notes/Details |
---|---|---|
Testing Prerequisites (specs, use cases) | ||
Testing Infrastructure setup | No | |
Test Plan Creation | [IN PROGRESS] | |
Test Cases Creation | [IN PROGRESS] | |
Full Functional Tests Execution | ||
Smoke Tests Execution | ||
Automation Coverage | ||
Performance Testing | [IN PROGRESS] | |
All Defects Logged | ||
Critical/Blockers Fixed and Verified | ||
Daily Status Report (email/etherpad statuses/ gdoc with results) | ||
Metrics/Telemetry | N/A | |
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 |
Ownership
Product contact:
Erin Lancaster (IRC: elan)
User Experience contact:
Not applicable
Engineering contact:
Aaron Klotz (IRC: aklotz) (Windows)
Trevor Saunders (IRC: tbsaunde) (Linux)
QA contact:
Marco Zehe (IRC: MarcoZ)
Tracy Walker (IRC: tracy)
QA:
PM for QA team - Rares Bologa (IRC: RaresB)
QA Lead - Grover Wimberly IV (IRC: Grover-QA)
QA - Kanchan Kumari (IRC: Kanchan_QA)
QA - Justin Williams (IRC: JW_SoftvisionQA)
QA - Stefan Georgiev (IRC: StefanG_QA)
QA - Abe Masresha (IRC: Abe_LV)
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 |
---|---|---|---|
12/13/2016 | 1.0 | Grover Wimberly IV | Created first draft |
12/13/2016 | 1.1 | Kanchan Kumari | Added some more info |
01/10/2017 | 1.2 | Tracy Walker | Make Risk/Requirements/Status prominent |
01/11/2017 | 1.3 | Grover Wimberly IV | Added details of test suite, test cases, and updated status of project |
02/21/2017 | 1.4 | Grover Wimberly IV | Updated bugs, testing features, and updated status of project |