Mozilla
Under the Hood
Presented by
  Marcia Knous
 Team Mozilla QA
Brief History of Mozilla
Mozilla is...


A global effort to
promote choice and
innovation on the
Internet
An open source project
Software for
the people,
by the people
NY Times two page ad
     December 16, 2004
What fuels us?
Community
‣   2008 Mozilla Summit
We build on top of each other
A Good Day at Mozilla :)
The tree is green...
...So what do we test?
Everything!

• Firefox Release builds
  • Including Firefox Localizations
• Firefox Nightly Builds
• Firefox Mobile (Fenne...
What do we focus on?




   •Basic functionality
   •Standards Compliance
   •Performance
How do we
do this?
•Automated Tests
•Manual Tests
The Mozilla Platform
Automated
  Tests
Unit Tests



 xpcshell
 Compiled code
XPC Shell
‣Anything available to the XPCOM layer (through scriptable interfaces) can be tested with xpcshell.
‣Limitations...
Graphical & Interactive Tests

Mochitest
Chrome Tests
Reftest
Crash Tests
Content Mochitest
Highlights
  Runs tests in a full browser environment with chrome
  privileges
  Can simulate user input...
Mochichrome

Highlights
  Elevated privileges allow access to XPCOM
  components and services
  Uses simple JS function ca...
Browser Chrome Tests


Tests are written as JS files
Uses simple JS function calls to aid in correctness
Useful for testing...
Crash Tests

Based on the reftest
framework
The test works by
loading the file and
completing without
crashing or asserting
Reftests
➡Layout Engine Visual Tests
➡Results are reported as Pass, Fail or Unexpected
Desired Result of the test
Talos
http://graphs.mozilla.org
Leak Tests
Topsite Testing
Other Tests
 ➡Fuzz Tests
 ➡Accessibility
 ➡JS Tests
Mozmill


Functional UI
testing for Mozilla
Applications.
Manual Tests
Litmus

‣Open 24/7 for your
testing enjoyment
‣Test cases written by
Mozilla QA & community
Litmus Full Functional Tests
Litmus Basic Functional Tests
Litmus Smoketests
Manual Debugging Tools
   The Error Console is your friend!
Even with all these tests...
There is no magic bullet
The bug that forced FF 3 RC2
There is humor in testing
       software...
Keynote software error
Common sight while preparing this presentation, but
        at least I can send feedback...
Who tests?
 Fosdem, 2009
The Community

  Nightly Testers - ~ 10K
  Betatesters - ~ 3 Million
  Web Developers
  Mozilla QA Team - 18
The QA
Companion
Useful add on that
allows the community
to test
An Example of Code Coverage
How do we get feedback?
Bugzilla


Community Members file
bugs and help triage
The Mozilla “kitchen”
Hendrix


Feedback link is postioned prominently on Release Notes
and first run page
Blocker bug for Firefox 3 was found th...
First run page before we changed the version to Firefox 3.5...
But nonetheless a good example of a the direct
feedback lin...
Twitter


Tweets regarding issues
with Firefox are reported
and monitored
Breakpad
Crash reporting tool
MozillaZine


Firefox Forum
Discussions
At one time was the
premier Mozilla news
site
Newsgroups - moz.dev.quality
QMO - The QA Portal
Central repository for project info and documents
reporter.mozilla.org


 Linked directly from the
 Help menu
  Allows you to report a
 broken website right
 from the UI
So who reviews all this
             feedback?


Sometimes tough to
separate the “noise”
from the real issues
We give back...
Songbird                  Miro
Blackbird                 Flock
Instantbird               Celtx
Seamonkey                 K...
Projects/Technologies
Projects                   Technologies

   Firefox                    Gecko

   Camino             ...
The end...questions?
Resources/Background
             material
The History of Mozilla: https://library.mozilla.org/The_History_of_Mozilla

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

QA Com...
Photo credits
Jaguar Inline 6 Car Engine Photo courtesy of dave_7.
Licensed under a Creative Commons license - http://
www...
Mozilla: Under the Hood
Mozilla: Under the Hood
Upcoming SlideShare
Loading in …5
×

Mozilla: Under the Hood

10,633
-1

Published on

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.

Published in: Technology, News & Politics
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,633
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
137
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Mozilla: Under the Hood

  1. 1. Mozilla Under the Hood
  2. 2. Presented by Marcia Knous Team Mozilla QA
  3. 3. Brief History of Mozilla
  4. 4. Mozilla is... A global effort to promote choice and innovation on the Internet An open source project
  5. 5. Software for the people, by the people
  6. 6. NY Times two page ad December 16, 2004
  7. 7. What fuels us?
  8. 8. Community ‣ 2008 Mozilla Summit
  9. 9. We build on top of each other
  10. 10. A Good Day at Mozilla :)
  11. 11. The tree is green...
  12. 12. ...So what do we test?
  13. 13. Everything! • Firefox Release builds • Including Firefox Localizations • Firefox Nightly Builds • Firefox Mobile (Fennec) • Firefox web properties • Thunderbird
  14. 14. What do we focus on? •Basic functionality •Standards Compliance •Performance
  15. 15. How do we do this? •Automated Tests •Manual Tests
  16. 16. The Mozilla Platform
  17. 17. Automated Tests
  18. 18. Unit Tests xpcshell Compiled code
  19. 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 ‣
  20. 20. Graphical & Interactive Tests Mochitest Chrome Tests Reftest Crash Tests
  21. 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. 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. 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. 24. Crash Tests Based on the reftest framework The test works by loading the file and completing without crashing or asserting
  25. 25. Reftests ➡Layout Engine Visual Tests ➡Results are reported as Pass, Fail or Unexpected
  26. 26. Desired Result of the test
  27. 27. Talos http://graphs.mozilla.org
  28. 28. Leak Tests
  29. 29. Topsite Testing
  30. 30. Other Tests ➡Fuzz Tests ➡Accessibility ➡JS Tests
  31. 31. Mozmill Functional UI testing for Mozilla Applications.
  32. 32. Manual Tests
  33. 33. Litmus ‣Open 24/7 for your testing enjoyment ‣Test cases written by Mozilla QA & community
  34. 34. Litmus Full Functional Tests
  35. 35. Litmus Basic Functional Tests
  36. 36. Litmus Smoketests
  37. 37. Manual Debugging Tools The Error Console is your friend!
  38. 38. Even with all these tests...
  39. 39. There is no magic bullet
  40. 40. The bug that forced FF 3 RC2
  41. 41. There is humor in testing software...
  42. 42. Keynote software error Common sight while preparing this presentation, but at least I can send feedback...
  43. 43. Who tests? Fosdem, 2009
  44. 44. The Community Nightly Testers - ~ 10K Betatesters - ~ 3 Million Web Developers Mozilla QA Team - 18
  45. 45. The QA Companion Useful add on that allows the community to test
  46. 46. An Example of Code Coverage
  47. 47. How do we get feedback?
  48. 48. Bugzilla Community Members file bugs and help triage The Mozilla “kitchen”
  49. 49. Hendrix Feedback link is postioned prominently on Release Notes and first run page Blocker bug for Firefox 3 was found through this feedback mechanism
  50. 50. 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
  51. 51. Twitter Tweets regarding issues with Firefox are reported and monitored
  52. 52. Breakpad Crash reporting tool
  53. 53. MozillaZine Firefox Forum Discussions At one time was the premier Mozilla news site
  54. 54. Newsgroups - moz.dev.quality
  55. 55. QMO - The QA Portal Central repository for project info and documents
  56. 56. reporter.mozilla.org Linked directly from the Help menu Allows you to report a broken website right from the UI
  57. 57. So who reviews all this feedback? Sometimes tough to separate the “noise” from the real issues
  58. 58. We give back...
  59. 59. Songbird Miro Blackbird Flock Instantbird Celtx Seamonkey Komodo KompoZer Nokia’s Internet Tablet Wyzo
  60. 60. Projects/Technologies Projects Technologies Firefox Gecko Camino XULRunner Bugzilla Mozilla Labs Fennec http://labs.mozilla.com/projects/ Lightning and Sunbird Seamonkey Thunderbird
  61. 61. The end...questions?
  62. 62. 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
  63. 63. 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
  64. 64. 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/

×