QA/Partner Search
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 |
---|---|---|---|
10/03/2016 | 1.0 | Brindusa Tot | Created first draft |
Contents
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
Feature short description
This wiki details the testing that will be performed by the project team for the Partner Search Improvments feature. As a short description, Mozilla products use a file called “list.txt” to indicate which search engines should be bundled into a specific locale. This file indicates which search engines are to be included with a given build and which engines are to be hidden by default . Starting with current improvements, the "list.txt" file is switch to a JSON based format (list.json) that allows us to specify default search engine locale information as a part of the core product. This means we can make decisions about which engines to use for which locales without using the geo search server. Here’s an example from en-US:
{ "default": { "visibleDefaultEngines": ["google", "yahoo", "amazondotcom", "bing", "ddg", "eBay", "twitter", "wikipedia"] }, "CA": { "visibleDefaultEngines": ["google", "yahoo-en-CA", "bing", "amazondotcom", "ddg", "eBay", "twitter", "wikipedia"] }, "US": { "visibleDefaultEngines": ["yahoo", "google-nocodes", "bing", "amazondotcom", "ddg", "eBay", "twitter", "wikipedia"] } }
Ownership
Development
Development contact: Mike Kaply (irc: mkaply)
Engineering Team - Nightly Testing:
Rares Bologa (irc: RaresB) - PM for QA team
Brindusa Tot (irc: brindusat) - leading QA efforts
Simona Badau (irc: simonab) - QA
Testing summary
Scope of Testing
In Scope
Numerous changes are desired in the search area meant to provide better support on locale builds. Testing efforts were done considering the changes included in the following bugs:
- Bug 1276739 replace list.txt with a region-aware JSON file format to allow different search configs within a single locale
- Bug 1309588 Update new search JSON to match absearch
- Bug 1276740 centralize all search plugins shipped in Firefox to mozilla-central
Testing was divided in 2 phases as follows:
- The first phase included the changes made in Bug 1276739 and Bug 1309588 and was concentrated on the list.txt replacement with the list.json, on the list.json content and on the way search is preserved (same search engines and search codes as before the changes).
After the patch from Bug 1276739 landed, testing effort for the Partner Search improvements were invested on verifying that search engine list were not affected by this improvement. So we verified that this patch had no effect on the current search engine list and on the engines that show up for a particular language/locale. We tested that the top 11 locales have the same engines before the test that they do after the test. We also tested that when a user upgrades from a version with list.txt to a version with the list.json that they do not see any changes in their search engines. We also tested that for the default engine, the URL that is used for a search (including codes) is exactly the same as it was before. The list of top 11 locales are:
- en-US (en-US will be tested in Canada, the United States and multiple European countries (via a proxy)
- de
- en-GB
- ja-JP / ja-JP-mac
- pl
- es-ES
- it
- Nl
- pt-BR
After the patch from Bug 1309588 landed, testing effort were concentrated on the locales with complex json list. We verified that the changes made in the patch are not bundling the "google-nocodes" engine for certain Locales (that is causing Google searches to have firefox-a on the end when they are used for default searches). To be more precised, we verified that Google has no codes when it is used inside the locales territories. We tested on the following locales with the following proxies set:
BY = Belarus, RU = Russia, UA = Ukraine, KZ = Kazakhstan, TR = Turkey When Russian Firefox is used within BY, RU, UA, KZ or TR, if you use Google, it should NOT have Google codes. (default is Yandex) When Russian Firefox is used outside of BY, RU, UA, KZ or TR, it should have codes When Kazakh Firefox is used within BY, RU, UA, KZ or TR, if you use Google, it should NOT have Google codes. (default is Yandex) When Kazakh Firefox is used outside of BY, RU, UA, KZ or TR, it should have codes When Turkish Firefox is used within BY, RU, UA, KZ or TR, if you use Google, it should NOT have Google codes. (default is Yandex) When Turkish Firefox is used outside of BY, RU, UA, KZ or TR, it should have codes When Ukrainian Firefox is used within BY, RU, UA, KZ or TR, if you use Google, it should NOT have Google codes even though the default is Google. When Ukrainian Firefox is used outside of BY, RU, UA, KZ or TR, it should have codes
When Taiwanese Firefox is used in Taiwan, the default is Yahoo and when you use Google, it should not have codes. When Taiwanese Firefox is used in Hong Kong, the default is Yahoo Hong Kong and when you use Google, it should not have codes. When Taiwanese Firefox is outside of Taiwan or Hong Kong, the default is Google and it should have codes.
- The second phase included the changes made in Bug 1276740 and the testing efforts were concentrated in verifying that after moving all the search engines into the mozilla-central repository (because they are mostly named differently) they will stay exactly as they were before. In this phase we manually verified that the search engines xmls remained the same for all the locales tested in the previous phase, and for a few more where the engines were named the same but had different function like on the following locales: de, hsb, dsb, rm, es-AR, DA.
We will also run some basic search tests to make sure that the above changes did not affect the search functionality.
Out of Scope
We are not testing every engine for every locale or the search results given by each engine. The assumption is that if the list is the same and the order is the same, the engines will be the same.
Requirements for testing
Environments
Full testing will be performed on the following OSes:
* Windows, probably Windows 7 and Windows 10 * Mac OS X * Ubuntu
Proxy:
- all the tests that needed an European proxy were run from Romania
- all the other proxies were provided using the hidemyass application.
Phase 1, on each OS testing should be performed on the following locales:
- en-US - en-US will be tested in Canada (via Proxy) - NOTE: for the moment we don't have proxy for Canada
- en-US - tested in United States (via Proxy)
- en-US - tested on European countries (Romania)
- de
- en-GB
- ja-JP / ja-JP-mac
- pl
- es-ES
- it
- Nl
- pt-BR
- ru
- kk
- tr
- uk
- zh-TW
Phase 2, on each OS, testing should be performed on all the above locales plus a few more like:
- hsb
- dsb
- rm
- es-AR
- es-CL
- DA
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 | Evaluation Criteria | Test Type | Owners |
---|---|---|---|---|---|
1 | list.json | The search engines for a particular locale are displayed in list.json | The search engines are exactly the same as it were previous implementation of list.json | Manual | Eng Team |
2 | Search codes | Search codes are the same | The search codes in the search URLs are exactly the same as it were previous implementation of list.json | Manual | Eng Team |
3 | URL | URL are the same | The URL resulted after a search is exactly the same as is was previous implementation of list.json | Manual | Eng Team |
4 | Search functionality | Same search functionality | Search functionality should be the same as it was previous implementation of list.json | Manual | Eng Team |
5 | The xml files | Search engine's xmls file | The xml file for each search engine should be the same as it was previous moving them into the mozilla-central repository, except for the ones that were renamed (they had the same name but were having different functions) | Manual | Eng Team |
Builds
This section should contain links for builds with the feature -
- Links for Nightly builds - available since October 11th 2016 - link
- Links for Aurora builds
- Links for Beta builds
Test Execution Schedule
The following table identifies the anticipated testing period available for test execution.
Project phase | Start Date | End Date |
---|---|---|
Start project | 2016.09.26 | |
Study documentation/specs received from developers | 2016.09.26 | 2016.09.30 |
QA - Test plan creation | 2016.10.03 | 2016.10.05 |
QA - Test cases/Env preparation | 2016.10.03 | 2016.11.09 |
QA - Nightly Testing | 2016.10.03 | 2016.11.11 |
QA - Aurora Testing | ||
QA - Beta Testing | ||
Release Date |
Testing Tools
Detail the tools to be used for testing, for example see the following table:
Process | Tool |
---|---|
Test plan creation | Mozilla wiki |
Test case creation | TestRail/ Google docs |
Test case execution | TestRail |
Bugs management | Bugzilla |
Status
Overview
Track the dates and build number where feature was released to Nightly - 52.0a1 (2016-10-11) 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
Not all the locales were tested, therefor not all the json lists and the xml files were verified.
References
- List and links for specs
Doc explaining the feature: link Kick off meeting notes: link Gdoc that details which engines are used where and which locales have engines named the same but with different content: link Gdoc that provides more detail on the cases where engines are named the same but have different content: link
- Meta bug 1276739
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 | No | |
Theme (high contrast) | No | |
UI | ||
Mouse-only operation | No | |
Keyboard-only operation | No | |
Display (HiDPI) | No | |
Interraction (scroll, zoom) | No | |
Usable with a screen reader | No | 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 | Yes | 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 | No | 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 | No | |
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 | No | |
Privilege escalation testing | No | |
Fuzzing | No | |
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 testsuites can be found on TestRail at link or in the PDF doc
Bug Work
Logged bugs ( blocking 1276739 )
ID | Priority | Component | Assigned to | Summary | Status | Target milestone |
---|---|---|---|---|---|---|
1281630 | -- | Search | Create JSON files for all locales to replace list.txt | RESOLVED | --- | |
1309273 | -- | General | Mike Kaply [:mkaply] | TEST-UNEXPECTED-FAIL | toolkit/components/search/tests/xpcshell/test_json_cache.js - Port bug 1276739 to C-C | RESOLVED | --- |
1310712 | -- | Search | Search URL differs after the list.txt was replaced with the list.json on Canada | VERIFIED | Firefox 52 |
3 Total; 0 Open (0%); 2 Resolved (66.67%); 1 Verified (33.33%);
Bug fix verification
ID | Priority | Component | Assigned to | Summary | Status | Target milestone |
---|---|---|---|---|---|---|
1281630 | -- | Search | Create JSON files for all locales to replace list.txt | RESOLVED | --- | |
1310712 | -- | Search | Search URL differs after the list.txt was replaced with the list.json on Canada | VERIFIED | Firefox 52 |
2 Total; 0 Open (0%); 1 Resolved (50%); 1 Verified (50%);
Sign off
Criteria
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
Nightly testing
List of OSes that will be covered by testing
- Link for the tests run -link
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) | [DONE] | |
Testing Infrastructure setup | NO | |
Test Plan Creation | [DONE] | |
Test Cases Creation | [DONE] | |
Full Functional Tests Execution | [DONE] | |
Automation Coverage | ||
Performance Testing | NO | |
All Defects Logged | [DONE] | |
Critical/Blockers Fixed and Verified | [DONE] | |
Metrics/Telemetry | NO | |
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 |