Mozilla: Under the Hood

66
Mozilla Under the Hood

description

Mozilla: Under the HoodThe browser has in many ways become a mini-operating system, attempting to harness all the internet’s power and complexity while making it simple enough so that anyone with minimal computer skills can visit websites and communicate with people all over the world. The technical challenges of developing and testing software in this kind of environment are immense, given the rapid changes going on in the internet space and the fact that the browser is called upon to parse as many as 1 trillion pages full of dynamic content. As time has gone on, many websites have gone from looking like static pages to resembling applications, which presents it own set of difficulties. Given these challenges, how does Mozilla ensure high quality and usability of every browser release? I will explore Mozilla under the hood and illuminate how Mozilla works to meet these challenges by introducing some of the tools that Mozilla uses to test its products. I will also demonstrate how Mozilla leverages help from the community as well as gives back to the community as part of the open development process.

Transcript of Mozilla: Under the Hood

Page 1: Mozilla: Under the Hood

MozillaUnder the Hood

Page 2: Mozilla: Under the Hood

Presented byMarcia Knous

Team Mozilla QA

Page 3: Mozilla: Under the Hood

Brief History of Mozilla

Page 4: Mozilla: Under the Hood

Mozilla is...

A global effort to promote choice and innovation on the Internet

An open source project

Page 5: Mozilla: Under the Hood

Software for the people, by the people

Page 6: Mozilla: Under the Hood

NY Times two page adDecember 16, 2004

Page 7: Mozilla: Under the Hood

What fuels us?

Page 8: Mozilla: Under the Hood

Community‣ 2008 Mozilla Summit

Page 9: Mozilla: Under the Hood

We build on top of each other

Page 10: Mozilla: Under the Hood

A Good Day at Mozilla :)

Page 11: Mozilla: Under the Hood

The tree is green...

Page 12: Mozilla: Under the Hood

...So what do we test?

Page 13: Mozilla: Under the Hood

Everything!

• Firefox Release builds

• Including Firefox Localizations

• Firefox Nightly Builds

• Firefox Mobile (Fennec)

• Firefox web properties

• Thunderbird

Page 14: Mozilla: Under the Hood

What do we focus on?

•Basic functionality

•Standards Compliance

•Performance

Page 15: Mozilla: Under the Hood

How do we do this?•Automated Tests

•Manual Tests

Page 16: Mozilla: Under the Hood

The Mozilla Platform

Page 17: Mozilla: Under the Hood

Automated Tests

Page 18: Mozilla: Under the Hood

Unit Tests

xpcshell

Compiled code

Page 19: Mozilla: Under the Hood

XPC Shell‣Anything available to the XPCOM layer (through scriptable interfaces) can be tested with xpcshell.‣Limitations: Can’t easily open windows, test chrome, work with HTML parser or the DOM‣

Page 20: Mozilla: Under the Hood

Graphical & Interactive Tests

Mochitest

Chrome Tests

Reftest

Crash Tests

Page 21: Mozilla: Under the Hood

Content Mochitest

Highlights

Runs tests in a full browser environment with chrome privileges

Can simulate user input (keyboard/mouse)

Good for testing things such as password manager and popup blocking

Page 22: Mozilla: Under the Hood

Mochichrome

Highlights

Elevated privileges allow access to XPCOM components and services

Uses simple JS function calls to aid in correctness

Useful for testing UI components such as:

Download Manager/Addons Manager

Page 23: Mozilla: Under the Hood

Browser Chrome Tests

Tests are written as JS files

Uses simple JS function calls to aid in correctness

Useful for testing Browser UI features

Page 24: Mozilla: Under the Hood

Crash Tests

Based on the reftest framework

The test works by loading the file and completing without crashing or asserting

Page 25: Mozilla: Under the Hood

Reftests➡Layout Engine Visual Tests➡Results are reported as Pass, Fail or Unexpected

Page 26: Mozilla: Under the Hood

Desired Result of the test

Page 27: Mozilla: Under the Hood

Taloshttp://graphs.mozilla.org

Page 28: Mozilla: Under the Hood

Leak Tests

Page 29: Mozilla: Under the Hood

Topsite Testing

Page 30: Mozilla: Under the Hood

Other Tests➡Fuzz Tests➡Accessibility➡JS Tests

Page 31: Mozilla: Under the Hood

Mozmill

Functional UI testing for Mozilla Applications.

Page 32: Mozilla: Under the Hood
Page 33: Mozilla: Under the Hood

Manual Tests

Page 34: Mozilla: Under the Hood

Litmus

‣Open 24/7 for your testing enjoyment

‣Test cases written by Mozilla QA & community

Page 35: Mozilla: Under the Hood

Litmus Full Functional Tests

Page 36: Mozilla: Under the Hood

Litmus Basic Functional Tests

Page 37: Mozilla: Under the Hood

Litmus Smoketests

Page 38: Mozilla: Under the Hood

Manual Debugging ToolsThe Error Console is your friend!

Page 39: Mozilla: Under the Hood

Even with all these tests...

Page 40: Mozilla: Under the Hood

There is no magic bullet

Page 41: Mozilla: Under the Hood

The bug that forced FF 3 RC2

Page 42: Mozilla: Under the Hood

There is humor in testing software...

Page 43: Mozilla: Under the Hood

Keynote software errorCommon sight while preparing this presentation, but

at least I can send feedback...

Page 44: Mozilla: Under the Hood

Who tests?Fosdem, 2009

Page 45: Mozilla: Under the Hood

The Community

Nightly Testers - ~ 10K

Betatesters - ~ 3 Million

Web Developers

Mozilla QA Team - 18

Page 46: Mozilla: Under the Hood

The QA CompanionUseful add on that allows the community to test

Page 47: Mozilla: Under the Hood
Page 48: Mozilla: Under the Hood

An Example of Code Coverage

Page 49: Mozilla: Under the Hood

How do we get feedback?

Page 50: Mozilla: Under the Hood

Community Members file bugs and help triage

The Mozilla “kitchen”

Bugzilla

Page 51: Mozilla: Under the Hood

Hendrix

Feedback link is postioned prominently on Release Notes and first run page

Blocker bug for Firefox 3 was found through this feedback mechanism

Page 52: Mozilla: Under the Hood

First run page before we changed the version to Firefox 3.5...But nonetheless a good example of a the direct feedback links (Bugzilla, Hendrix) on first run page

Page 53: Mozilla: Under the Hood

Twitter

Tweets regarding issues with Firefox are reported and monitored

Page 54: Mozilla: Under the Hood

BreakpadCrash reporting tool

Page 55: Mozilla: Under the Hood

MozillaZine

Firefox Forum Discussions

At one time was the premier Mozilla news site

Page 56: Mozilla: Under the Hood

Newsgroups - moz.dev.quality

Page 57: Mozilla: Under the Hood

QMO - The QA PortalCentral repository for project info and documents

Page 58: Mozilla: Under the Hood

reporter.mozilla.org

Linked directly from the Help menu

Allows you to report a broken website right from the UI

Page 59: Mozilla: Under the Hood

So who reviews all this feedback?

Sometimes tough to separate the “noise” from the real issues

Page 60: Mozilla: Under the Hood

We give back...

Page 61: Mozilla: Under the Hood

Songbird

Blackbird

Instantbird

Seamonkey

KompoZer

Nokia’s Internet Tablet

Wyzo

Miro

Flock

Celtx

Komodo

Page 62: Mozilla: Under the Hood

Projects/Technologies

Projects

Firefox

Camino

Bugzilla

Fennec

Lightning and Sunbird

Seamonkey

Thunderbird

Technologies

Gecko

XULRunner

Mozilla Labs

http://labs.mozilla.com/projects/

Page 63: Mozilla: Under the Hood

The end...questions?

Page 64: Mozilla: Under the Hood

Resources/Background material

The History of Mozilla: https://library.mozilla.org/The_History_of_Mozilla

QMO: http://quality.mozilla.org/

Litmus: https://litmus.mozilla.org/

Mozmill: http://code.google.com/p/mozmill/

Developer info: https://developer.mozilla.org/

Mozilla Labs: http://labs.mozilla.com/

Tinderbox for Firefox 3.5: http://tinderbox.mozilla.org/showbuilds.cgi?tree=Firefox3.5

Page 65: Mozilla: Under the Hood

Resources/Background material

Get the Firefox Beta: http://www.mozilla.com/en-US/firefox/all-beta.html

QA Companion: https://addons.mozilla.org/en-US/firefox/addon/5428

Hendrix: http://hendrix.mozilla.org/

Mozilla support: http://support.mozilla.com/en-US/kb/

Mozilla Digital Memory Bank: http://chnm.gmu.edu/mozilla-digital-memory-bank/

Marcia’s Firefox Robot Wars Video: http://www.youtube.com/watch?v=OnZClPMoYEY

Page 66: Mozilla: Under the Hood

Jaguar Inline 6 Car Engine Photo courtesy of dave_7. Licensed under a Creative Commons license - http://www.flickr.com/photos/daveseven/250993044/

Bullet photo courtesy of JinglyJon. Licensed under a Creative Commons license : http://www.flickr.com/photos/jinglyjon/180600454/

Photo credits