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 |
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
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 has had no effect on the current search engine list, both the engines that show up for a particular language/locale, as well as their order. We tested that the top 11 locales have the same engines before the test that they do after the test and that they are in the same order. 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 Foogle, 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 Foogle, 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 Foogle, 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 Foogle, 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 mozilla-central (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 the few cases 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 conduct this test with partner builds as well to make sure that the new search engines do not have a negative effect on partner builds.
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
On each OS testing should be performed testing on 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
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, including their order, 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 |
Builds
This section should contain links for builds with the feature -
- Links for Nightly builds
- 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.10.05 |
| QA - Nightly Testing | ||
| 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 Track the dates and build number where feature was merged to Aurora Track the dates and build number where feature was merged to Release/Beta
Risk analysis
Identify the high-risk assumptions Identify existing bugs on the feature with high risk Identify if other areas are affected by the fix
References
- List and links for specs
Doc explaining the feature: link Kick off meeting notes: link
- Meta bug 1276739
Testcases
Full testsuites can be found on TestRail at link
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 | ??? | |
| 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 | ??? | 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 Test suite - Link with the gdoc, follow the format from link Regression Test suite - Link with the gdoc - if available/needed.
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
- Full Test suite, use template from link
- Regression Test suite, if needed/available
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 | [IN PROGRESS] | |
| Full Functional Tests Execution | ||
| Automation Coverage | ||
| Performance Testing | ||
| All Defects Logged | ||
| Critical/Blockers Fixed and Verified | ||
| Metrics/Telemetry | ||
| QA Signoff - Nightly Release | Email to be sent | |
| QA Aurora - Full Testing | ||
| QA Signoff - Aurora Release | Email to be sent | |
| QA Beta - Full Testing | ||
| QA Signoff - Beta Release | Email to be sent |