Auto-tools/Projects

From MozillaWiki
Jump to navigation Jump to search

Welcome to the Automation and Tools Projects Page.

We are the people who write the code that enables all our automated test systems (correctness, performance etc) to run. We are continually expanding, upgrading, and inventing new and better ways to do automated quality analysis at Mozilla. Most of our systems run on a per-checkin basis, and at the time of this writing we do roughly 300 checkins a day, and we run hundreds of thousands of tests per checkin, so you can imagine how many times our code gets run. If you like the idea of that kind of a challenge, we could use your help on some of the projects below. If you don't know how to get started, feel free to hop on irc (irc.mozilla.org), into the channel #ateam and ask some questions.

The Goals

Every calendar quarter, we figure out how best to support Mozilla's efforts and translate that into a set of goals. Most of our goals these days have tracking bugs. So if you want to directly help us the most, look through those tracking bugs and find a bug you can start hacking on. Ask in #ateam if you need help.

2014

Goal List Post-Mortem Notes
Current Quarter: 2014 Q3

2013

Goal List Post-Mortem Notes
2013 Q4 Awaiting scheduling Pulled together the highest priority items into the "top list" on goals page to help focus
2013 Q3 2013 Q3 Postmortem Quarter felt very unfocused, company wide goals done differently, had some impact on us.
2013 Q2 No postmortem performed
2013 Q1 No postmortem performed

Other Projects

Every quarter there are more things we'd like to do than we have time for. Below are some of these projects, broken down by areas and technologies so that you can find something that gets you excited.

Overview

Work in progress effort to create an index for all existing/WIP automation tools - Here.

Firefox OS

The Firefox OS (aka B2G) project is to create an OS for a mobile phone based on the web platform. Our job is to both automate the OS tests and make the OS itself easily testable so we can ensure a very high quality bar. Building and working with an OS is not for the feint of heart; it is a moving platform where many things change all the time. It's helpful to have very good debugging skills, deep knowledge of JavaScript, working knowledge of Python and some C++/build system internals.

Firefox for Android

The Firefox for Android project is a continual expansion of our test harnesses to better support the Android platform. Currently we only release Firefox on that platform (aka Fennec), but we might also begin testing web apps there in the near future. Familiarity with Android and a great knowledge of Python is very useful here.

  • Attempt to run our automated tests using the awesome work done with Android emulators in bug 910092
  • Help expand our reach to x86 Android systems by aiding us in debugging and fixing test failures on that platform: see the collection of bugs beneath bug 891959

Firefox Desktop and General Automation Support

The desktop web browser Firefox continues to be our flagship product, and there is always ongoing work needed to ensure that we continue to support the new features that regularly land in Firefox. Many of the bugs here are more tractable simply because the test harnesses and tests involved are older code. This is a good spot for first-time contributors. These will involve Python knowledge and some JavaScript, depending on the bug.

Performance

We also maintain all the systems and the code that perform per-checkin testing on performance. There are many performance automation systems at Mozilla, and one of our current efforts is to pull them under one high-level dashboard. Performance will demand a working knowledge of the web, Python, JavaScript, statistics, and great debugging skills.

Tools & Dashboards

We create web-based tools and dashboards to help illustrate how our automation is doing. Datazilla is a performance dashboarding system, and TBPL surfaces the status of our automation runs. We also maintain and continually improve Mozilla's Bugzilla installation, often contributing patches to the upstream general Bugzilla project. Python, JavaScript, and, in Bugzilla's case, Perl, are all used here, along with both relational and NoSQL databases.

Mentored Bugs

These bugs are things that we have identified as great starter bugs. Each bug contains a focused technology that is required and a mentor who has volunteered to help out people starting to work on the issue. If you've done a few mentored bugs, talk to your mentors about becoming a mentor yourself!

Full Query
ID Summary Priority Status
682901 catch the case where .finish() gets called before waitForExplicitFinish() -- NEW
847275 make assertions cause test failures in mochitest-browser-chrome -- NEW
939755 With httpd.js we sometimes don't get the most recent version of the file -- NEW
958147 Choose one of run-if or skip-if and get rid of the other -- NEW
969334 mozinstall should not magically try to find the mount point of the DMG -- NEW
1028895 Mouseover triggered in mochitest-browser & dt according to position of mouse cursor on test box -- NEW
1036328 Support bisection in case of timeout/crash -- NEW
1072912 Remove makefile targets for running tests from testsuite-targets.mk -- NEW
1137691 SpecialPowers.getFocusedElementForWindow is misnamed -- NEW
1164443 Mozinstall should only install in an empty dir P3 NEW
1177336 mozfile.remove uses excessive system calls -- NEW
1191446 Create a mach command for rerunning failed jobs on a previous push using new code -- NEW
1192866 Throw an exception when a non-top-level window is passed to synthesizeKey -- NEW
1199700 add feature to make collecting nspr logs easier in reftest -- NEW
1255815 [mozinfo] Move |update_mozinfo| from mochitest to mozinfo -- NEW
1311429 Reftest harness should use mozcrash.kill_and_get_minidump -- NEW
1337013 Make gtest mach command invoke rungtests.py -- NEW
1378174 [mozlog] Create a "sugar" formatter based on pytest-sugar P3 NEW
1403677 [meta] Implement support for cropping of screenshots -- NEW
1408754 Add configuration to send page to about:tabcrashed -- NEW
1420372 Marionette client has to check for a valid pid of Firefox as returned with the capabilities P3 NEW
1443922 Use toolkit.asyncshutdown.crash_timout as shutdown monitor base value P3 NEW
1446965 [mozlog] Buffer all test logs in 'mach' formatter and flush on failure P3 NEW
1495476 Remove legacy new session capabilities negotiation P3 NEW
1501669 Simplify command building logic P3 NEW
1528192 Add an option to use local page recordings instead of tooltool P3 NEW
1584940 Make measurement units in perf tests mandatory P3 NEW
1585677 [mozproxy] Use mozbuild's tooltool in mozproxy P2 NEW
1633890 [perfdocs] Make the raptor test descriptions less redundant P3 NEW
1645488 Make it possible to provide a custom Firefox binary to Talos in mach talos P3 NEW
1732181 Removed unused chromedriver versions from browsertime fetch task P3 NEW
1741715 Migrate "SpecialPowers" MDN doc to Firefox Source Docs P3 NEW
1774850 Missing XPCshell Test Manifest Expressions doc -- UNCONFIRMED
1823371 Use a document-builder approach instead of data URLs for `inline()` usage in unit tests P3 NEW
1826828 Add ability to run custom browsertime tests on browsers other than firefox P3 NEW
1891111 Remove usage of intent arguments when starting GeckoView applications on Android P3 ASSIGNED
1921933 [mozrunner] On Windows also check registry key for the default installation of Firefox under HKCU P3 NEW
1938638 Remove deprecated "--enable-crash-reporter" argument from geckodriver P3 NEW
1950278 ./mach talos-test fails on Python 3.13 due to removal of cgi module P2 NEW
1954595 Add WebDriver classic end-points for installing and uninstalling web extensions P2 NEW
1955044 Update geckodriver and deps to Rust 2024 P3 ASSIGNED

41 Total; 41 Open (100%); 0 Resolved (0%); 0 Verified (0%);


For reference, the old Projects Page (which is largely out of date, but interesting for historical reasons) is accessible here