Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update template to include test for releaseable builds #92

Merged
merged 2 commits into from
Sep 12, 2018
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
215 changes: 95 additions & 120 deletions bc-wikitemplate.md
Original file line number Diff line number Diff line change
@@ -1,87 +1,103 @@

## Installer

### Crash verification
- [ ] Verify these [crash issues](https://github.com/brave/brave-browser/issues?utf8=%E2%9C%93&q=is%3Aissue+milestone%3A%22Releasable+builds+0.55.x%22+label%3Acrash+is%3Aclosed++label%3AQA%2FNeeded) have not regressed
- [ ] Verify these [webview crash issues](https://github.com/brave/brave-browser/issues?utf8=%E2%9C%93&q=is%3Aissue+milestone%3A%22Releasable+builds+0.55.x%22+label%3Acrash/webview+is%3Aclosed++label%3AQA%2FNeeded) have not regressed
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we're at risk in general of the crashes regressing, so I don't think we need to spend time on these on each release.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, not sure if it's the best idea keep going through all those crashes to make sure they haven't regressed. Getting stats.brave into a better state would be a better idea to keep an eye on crash rates coming in on the different channels.



### Installer

- [ ] Check that installer is close to the size of last release.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bbondy will we be mostly using stub installers? If that's the case, we'll need to change this as it's not really a valid check as the application we'll be pulled/installed from a remote server. If we're going to support both regular binaries and stub installers, we should add another case similar to the following:

  • Install brave using the stub installer and ensure the installed profile is similar in size to the previous version

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I retained that test for the offline installer for Windows. These setup related tests are blocked on brave/omaha#4

- [ ] Check signature: If OS Run `spctl --assess --verbose /Applications/Brave-Browser.app/` and make sure it returns `accepted`. If Windows right click on the installer exe and go to Properties, go to the Digital Signatures tab and double click on the signature. Make sure it says "The digital signature is OK" in the popup window.
Copy link
Member

@kjozwiak kjozwiak Sep 11, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know the current QA team will know that the spctl --assess --verbose /Applications/Brave-Browser.app/ might differ while on different channels but we should explicitly mention which locations need to be checked depending on the channel. Example: spctl --assess --verbose /Applications/Brave-Browser-Dev.app/. I think it will also help contributors once we start trying to get more folks involved in brave-core.

@bbondy @srirambv thoughts?

We should also find out a way if there's a way of checking the signatures on Linux (at least Ubunutu).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. changed it to beta since that is where most of the feature/regression fix testing will happen once we have proper channels for testing.

- [ ] Check Brave and Chromium version in chrome://about
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be chrome://version/ and not chrome://about

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed it as it was checked again in about page section


## Data
### Data

- [ ] Make sure that data from the last version appears in the new version OK
- [ ] With data from the last version, test that
- [ ] bookmarks on the bookmark toolbar and bookmark folders can be opened
- [ ] cookies are preserved
- [ ] pinned tabs can be opened
- [ ] pinned tabs can be unpinned
- [ ] unpinned tabs can be re-pinned
- [ ] installed extensions are retained and work correctly
- [ ] opened tabs can be reloaded
- [ ] bookmarks on the bookmark toolbar can be opened
- [ ] bookmarks in the bookmark folder toolbar can be opened
- [ ] stored passwords are preserved
- [ ] unpinned tabs can be pinned

## About pages
### About pages

- [ ] Test that brave:// forwards to chrome://
- [ ] chrome://adblock
- [ ] chrome://payments
- [ ] chrome://newtab
- [ ] chrome://welcome
- [ ] chrome://version

## Import

- [ ] Check that you can import from browser-laptop
- [ ] Check that you can import from Google Chrome (We implemented all ourselves)
- [ ] Check that you can import from Firefox (Cookies is all we implemented ourselves)
- [ ] Check that you can import from Edge (No custom code we implemented ourselves)
- [ ] Test chrome://adblock loads adblock page
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: easier to read while going through the manual passes if formatted chrome://adblock

- [ ] Test chrome://rewards loads Brave rewards page
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: easier to read while going through the manual passes if formatted chrome://rewards

- [ ] Test chrome://newtab loads a new tab
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: easier to read while going through the manual passes if formatted chrome://newtab

- [ ] Test chrome://welcome loads the welcome page
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: easier to read while going through the manual passes if formatted chrome://welcome

- [ ] Test chrome://version correctly shows Brave version and Chromium version
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: easier to read while going through the manual passes if formatted chrome://version


## Context menus
### Import

- [ ] Block this element option
- [ ] Check that you can import bookmarks, cookies, history, passwords and stats from Brave(browser-laptop)
- [ ] Check that you can import bookmarks, cookies, history, passwords from Google Chrome
- [ ] Check that you can import bookmarks, cookies, history, passwords, autofill and search engines from Firefox
- [ ] Check that you can import bookmarks from Edge

## Keyboard Shortcuts
### Context menus

- [ ] TODO: Custom ones we define for functionality not in Chrome but in brave-core
- [ ] Verify `Block element via selector` removes a CSS element from page without reloading
- [ ] Verify `Clear all CSS rules for this sites` removes the blocked element after page reload
- [ ] Verify `Clear all CSS rules for all sites` removes the rule and loads all elements for all pages

## Printing PDF

- [ ] Test that you can print a PDF

## Extensions/Plugins tests

- [ ] At least one thing on Brave Update server is installable (Example: Ad-block DAT file on fresh extension)
- [ ] At least one thing on Google Update server is installable
- [ ] PDFJS extension gets instaslled automatically on fresh profile
- [ ] Verify one item from Brave Update server is installable (Example: Ad-block DAT file on fresh extension)
- [ ] Verify one item from Google Update server is installable(Example: Extensions from CWS)
- [ ] Verify PDFJS, Torrent viewer extensions are installed automatically on fresh profile and cannot be disabled
- [ ] Test that an old extension gets updated to a new one from an old profile on Google server
- [ ] Test that an old extension gets updated to a new one from an old profile on Brave server
- [ ] Verify magnet links loads Torrent viewer page and able to download torrent
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can add .torrent files too, that will land probably today.


### Widevine
- [ ] Test that you can log into Netflix and start a show from a fresh profile
### CWS

- [ ] Verify installing uBO/ABP from CWS shows warning message `NOT A RECOMMENDED BRAVE EXTESION!`but still gets installed
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you can just pick a single extension. Doesn't have to be uBlock or ABP either.

- [ ] Verify installing LastPass from CWS doesn't show any warning message
- [ ] Verify installing an extesion that is not vetted by Brave gets blocked
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not vetted extensions can still be installed, just gives a warning. We don't have any blocked yet so probably just remove this?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should keep this but change the case to make sure that none vetted extensions correctly warn the user before installation. Risk missing a regression where warnings stop working. Could be really bad if users start complaining that Brave didn't warn them and they installed a bad actor extension.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would suggest to test all three allowed/vetted but allowed/ blocked just so we cover all possible scenarios


### Flash tests

- [ ] Test that Flash gets blocked by default when installed
- [ ] Test that once you allow Flash, it turns into a click to play area, and can play when clicked.
- [ ] Test that once you allow Flash, it turns into a click to play area, and loads flash when allowed

### PDF

- [ ] Test that you can print a PDF
- [ ] Test that PDF is loaded over https at https://basicattentiontoken.org/BasicAttentionTokenWhitePaper-4.pdf
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: HTTPS

- [ ] Test that PDF is loaded over http at http://www.pdf995.com/samples/pdf.pdf
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same nit as @bbondy above: HTTP (protocols should always be capitalized)


### Widevine

## Geolocation
- [ ] Verify `Widevine Notification` is shown when you visit Netflix for the first time
- [ ] Test that you can stream on Netflix on a fresh profile

- [ ] Check that https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation is blocked due to cross-origin iframes
### Geolocation

- [ ] Check that https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation shows correct location
- [ ] Check that https://browserleaks.com/geo works and shows correct location
- [ ] Check that https://html5demos.com/geo/ works but doesn't require an accurate location

## Crash Reporting
### Crash Reporting

- [ ] Check that loading `chrome://crash` causes the new tab to crash
- [ ] Check that `chrome://crashes` lists all the crashes and includes both Crash Report ID & Local Crash ID
- [ ] Verify the crash ID matches the report on brave stats

## Performance test
### Performance test

_Each start should take less than 7 seconds_
- [ ] Enable only sync (new sync group).
- [ ] Enable only sync with a large sync group (many entries).
- [ ] Enable only payments.
- [ ] Only import a large set of bookmarks.
- [ ] Combine sync, payments, and a large set of bookmarks.
- [ ] Enable only sync (new sync group)
- [ ] Enable only sync with a large sync group (many entries)
- [ ] Enable only rewards
- [ ] Only import a large set of bookmarks
- [ ] Combine sync, rewards, and a large set of bookmarks

## Bravery settings
### Bravery settings

- [ ] Check that HTTPS Everywhere works by loading http://https-everywhere.badssl.com/
- [ ] Turning HTTPS Everywhere off and shields off both disable the redirect to https://https-everywhere.badssl.com/
Expand All @@ -91,90 +107,49 @@ _Each start should take less than 7 seconds_
- [ ] Visit https://brianbondy.com/ and then turn on script blocking, nothing should load. Allow it from the script blocking UI in the URL bar and it should work
- [ ] Test that 3rd party storage results are blank at https://jsfiddle.net/7ke9r14a/9/ when 3rd party cookies are blocked and not blank when 3rd party cookies are unblocked

## Fingerprint Tests
### Fingerprint Tests

- [ ] Visit https://jsfiddle.net/bkf50r8v/13/, ensure 3 blocked items are listed in shields. Result window should show `got canvas fingerprint 0` and `got webgl fingerprint 00`
- [ ] Test that audio fingerprint is blocked at https://audiofingerprint.openwpm.com/ only when `Block all fingerprinting protection` is on
- [ ] Test that Brave browser isn't detected on https://extensions.inrialpes.fr/brave/
- [ ] Test that https://diafygi.github.io/webrtc-ips/ doesn't leak IP address when `Block all fingerprinting protection` is on

## PDF
- [ ] Test that PDF is loaded over https at https://basicattentiontoken.org/BasicAttentionTokenWhitePaper-4.pdf
- [ ] Test that PDF is loaded over http at http://www.pdf995.com/samples/pdf.pdf

## Content tests
### Content tests

- [ ] Spellcheck, open a page with an input control and type some misspellings on a textbox, make sure they are underlined.
- [ ] Open a page with an input control and type some misspellings on a textbox, make sure they are underlined
- [ ] Make sure that right clicking on a word with suggestions gives a suggestion and that clicking on the suggestion replaces the text
- [ ] Test that https://mixed-script.badssl.com/ shows up as grey not red (no mixed content scripts are run).

## TODO: Ledger

- [ ] Verify wallet is auto created after enabling payments
- [ ] Verify monthly budget and account balance shows correct BAT and USD value
- [ ] Click on `add funds` and click on each currency and verify it shows wallet address and QR Code
- [ ] Verify that Brave BAT wallet address can be copied
- [ ] Verify adding funds via any of the currencies flows into BAT Wallet after specified amount of time
- [ ] Verify adding funds to an existing wallet with amount, adjusts the BAT value appropriately
- [ ] Change min visit and min time in advance setting and verify if the publisher list gets updated based on new setting
- [ ] Visit nytimes.com for a few seconds and make sure it shows up in the Payments table
- [ ] Check that disabling payments and enabling them again does not lose state
- [ ] Generate 500 ledger table entries using `npm run add-simulated-synopsis-visits 500`
- [ ] ensure that disabling/enabling Brave Payments several times doesn't cause any issues
- [ ] visit `about:preferences` and switch through all the available preference pages including Payments and ensure they're loading without issues
- [ ] ensure that loading/viewing `about:preferences#payments` doesn't cause the CPU to reach 100% of usage and cause performance issues
- [ ] ensure that both `Minimum page time` & `Minimum visits` work correctly with the large list of ledger entries
- [ ] ensure that you can sort the ledger table using `Site`, `Include`, `Views`, `Time Spent` and `%`
- [ ] Upgrade from older version
- [ ] Verify the wallet isn't corrupted upon upgrade (balance is retained and wallet backup code isn't corrupted)
- [ ] Verify publishers list is not lost after upgrade

### TODO: Ledger Media (To be verified on YouTube and Twitch)

- [ ] Visit any YouTube/Twitch video in a normal/session tab and ensure the video publisher name is listed in ledger table
- [ ] Visit any YouTube/Twitch video in a private tab and ensure the video publisher name is not listed in ledger table
- [ ] Visit any live YouTube/Twitch video and ensure the time spent is shown under ledger table
- [ ] Visit any embeded YouTube/Twitch video and ensure the video publisher name is listed in ledger table
- [ ] Ensure total time spent is correctly calculated for each publisher video
- [ ] Ensure total time spent is correctly calculated when switching to YouTube/Twitch video from an embeded video
- [ ] Ensure YouTube/Twitch publishers are not listed when `Allow contributions to video` is disabled in adavanced settings
- [ ] Ensure existing YouTube/Twitch publishers are not lost when `Allow contributions to video` is disabled in adavanced settings
- [ ] Ensure YouTube/Twitch publishers is listed but not included when `auto-include` is disabled
- [ ] Update Advanced settings to different time/visit value and ensure YouTube/Twitch videos are added to ledger table once criteria is met
- [ ] Perform a contribution while YouTube/Twitch channels are included on the ledger. Ensure the channels are listed on the contribution statement
- [ ] Verify that you are able to delete YouTube/Twitch publishers from ledger table
- [ ] Verify that you are able to re-add YouTube/Twitch publishers to ledger table
- [ ] Verify if you minimize a Twitch video (Stream/VOD) and navigate around the site, the video is counted in ledger

## Sync

- [ ] Verify you are able to sync two devices using the secret code
- [ ] Visit a site on device 1 and change shield setting, ensure that the saved site preference is synced to device 2
- [ ] Enable Browsing history sync on device 1, ensure the history is shown on device 2
- [ ] Clear browsing history on device 1, ensure the history is sync back on device 1 from device 2
- [ ] Import/Add bookmarks on device 1, ensure it is synced on device 2
- [ ] Ensure imported bookmark folder structure is maintained on device 2
- [ ] Ensure bookmark favicons are shown after sync

## Cookie and Cache

- [ ] Go to http://samy.pl/evercookie/ and set an evercookie. Check that going to prefs, clearing site data and cache, and going back to the Evercookie site does not remember the old evercookie value. (No custom code in Brave for this yet)

## Update tests

- [ ] TODO: Test that updating using `BRAVE_UPDATE_VERSION=0.8.3` env variable works correctly.

## Things to check once:
- [ ] Test that https://mixed-script.badssl.com/ shows up as grey not red (no mixed content scripts are run)

- Native ledger library, is it still stored in json
- Migrate snaps to QA from devops
- Can QA get production server copy for ledger back-end?
- Can QA get more control to restart ledger services, when things go wrong.
- Check one time that these exceptions work: `brave/common/shield_exceptions.cc`
- Check one referrer blocking works properly with TLD+1
- Evercookie works correctly?
- Find a good channel (maybe youtube) to see upcoming Chrome issues that we should be concerned about.
- Release notes should mention big things we are getting for free.

### Cookie and Cache

- [ ] Go to http://samy.pl/evercookie/ and set an evercookie. Check that going to prefs, clearing site data and cache, and going back to the Evercookie site does not remember the old evercookie value.

### Session storage

- [ ] Temporarily move away your `~/Library/Application\ Support/BraveSoftware/Brave-Browser/` and test that a new profile is created when browser is launched (`%userprofile%\appdata\Local\BraveSoftware\Brave-Browser\` in Windows, `./config/BraveSoftware/Brave-Browser/` in Ubuntu)
- [ ] Test that windows and tabs restore when closed, including active tab.
- [ ] Ensure that the tabs in the above session are being lazy loaded when the session is restored

## Chromium upgrade tests

#### Adblock

- [ ] Verify the execeptions in `brave/common/shield_exceptions.cc` work
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have automated for this so you can probably just remove this.

- [ ] Verify referrer blocking works properly for TLD+1

#### Components
- Check once `brave/common/brave_switches.cc`
- What happens if you install uBlock or ABP?
- What happens with automatically installed extensions?

__________

## Yet to implement

- Keyboard Shortcuts
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's left for that?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Custom shortcuts that would be added for Brave. Tor tab, preferences, reopen last window etc...

- Ledger/Rewards
- Ledger Media (To be verified on YouTube and Twitch)
- Sync
- Tor private tabs
- Manual Update tests from older version
- Test that updating using `BRAVE_UPDATE_VERSION=0.8.3` env variable works correctly.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this valid in this codebase? I don't think so.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No just kept it for reference to verify for offline installer once that is available

- Native ledger library, is it still stored in json
- Ensure that hovering over lazy loaded tabs correctly loads the tab without any issues