QA/Partner Search

From MozillaWiki
< QA
Jump to: navigation, 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

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 

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

Meta bug: 1276739 - replace list.txt with a region-aware JSON file format to allow different search configs within a single locale

Logged bugs ( blocking 1276739 )
Full Query
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
Full Query
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