New Structure of the mozmill-tests Repository

Henrik Skupin

Since I have been started to work on Mozmill tests for Firefox early 2009, our QA Automation Team has been grown and got a lot of work done. A fair amount of functional tests have been created, followed by a separate test-run of automated software update tests. Those two kinds of tests have been proven to reduce the time for release testing for QA drastically, and as result we have added even more test-runs like for add-ons, l10n, and lately for endurance tests.

As more and more different runs are getting added the structure of the whole repository, we have agreed on in 2009, doesn’t make sense anymore. Also looking ahead to our upcoming API refactoring which will land soon, we had to chose a new structure of the whole repository. A discussion was necessary to make sure the new hierarchy will fit our needs for the next couple of months or even years. And I can say for sure that we will add a lot more of test-runs and those need the right place to live.

To get this step accomplished, I worked on top of the specs and got the new structure implemented today. If you are interested in check bug 637306. So without reading through the bug you may ask, what has been changed? Lets compare in detail the structure before and after my work.


  • addons (Tests for add-ons)
  • firefox (Folder of mixed tests for Firefox)
    • crashTests (Crash tests)
    • enduranceTests (Endurance tests)
    • helperClasses (Tests for shared code)
    • l10nTests (l10n tests)
    • restartTests (Functional restart tests)
    • softwareUpdate (Update tests)
    • test-files (Test data served via httpd.js)
    • test* (Folders which contain functional tests)
  • shared-modules (Shared code divided into components)
  • templates (Simple templates for starters)


  • data (Test data served via httpd.js)
  • lib (Shared code divided into components)
    • tests (Tests for shared code)
  • tests (Folder for the supported test-runs)
    • addons (Tests for add-ons)
    • crash (Crash tests)
    • endurance (Endurance tests)
    • functional (Functional tests for Firefox)
      • restartTests (Functional restart tests)
    • l10n (l10n tests)
    • update (Update tests)
  • templates (Simple templates for starters)

As you can see sections are clearly defined and it’s easy to find the code you are looking for. It’s the perfect base for our future work, you will hear about in the next couple of weeks.