Mozilla: Under the Hood
The 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.
19. 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
‣
21. 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
22. 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
23. Browser Chrome Tests
Tests are written as JS files
Uses simple JS function calls to aid in correctness
Useful for testing Browser UI features
24. Crash Tests
Based on the reftest
framework
The test works by
loading the file and
completing without
crashing or asserting
51. Hendrix
Feedback link is postioned prominently on Release Notes
and first run page
Blocker bug for Firefox 3 was found through this feedback
mechanism
52. 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
64. 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
65. 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
66. Photo credits
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/