# Outreachy Internship Update: Learning Mozilla's Development Process and Refactoring Marionette's Python Test Runner

DevFeed: [Outreachy Internship Update: Learning Mozilla's Development Process and Refactoring Marionette's Python Test Runner](<https://devfeed.tech/articles/outreachy-halftime-ish-update-20249.md>)

Original publisher: [Read original article](<http://anjana.dev/blog/outreachy-halftime-ish-update/>)

Author: Anjana Sofia Vakil (contact@anjana.dev)

Published: 2016-08-02T00:00:00Z

Content type: opinion

Language: en

Sources: [Mozilla Automation](<https://devfeed.tech/sources/mozilla-automation.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Mozilla](<https://devfeed.tech/topics/mozilla.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Python](<https://devfeed.tech/topics/python.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Test-driven development](<https://devfeed.tech/topics/tdd.md>), [Pytest](<https://devfeed.tech/topics/pytest.md>), [Firefox](<https://devfeed.tech/topics/firefox.md>)

Tags: [development-process](<https://devfeed.tech/tags/development-process.md>), [firefox](<https://devfeed.tech/tags/firefox.md>), [internship](<https://devfeed.tech/tags/internship.md>), [marionette](<https://devfeed.tech/tags/marionette.md>), [mozilla](<https://devfeed.tech/tags/mozilla.md>), [mozreview](<https://devfeed.tech/tags/mozreview.md>), [outreachy](<https://devfeed.tech/tags/outreachy.md>), [pytest](<https://devfeed.tech/tags/pytest.md>), [python](<https://devfeed.tech/tags/python.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [test](<https://devfeed.tech/tags/test.md>), [testing](<https://devfeed.tech/tags/testing.md>), [treeherder](<https://devfeed.tech/tags/treeherder.md>)

## AI overview

An Outreachy intern reflects on the first part of an internship with Mozilla, describing the process of learning Mozilla's development tools and workflows. The article also outlines work on test-driven refactoring of Marionette's Python test runner and previews a follow-up post about its test runner and harness.

## Source excerpt

It feels like yesterday that I started my Outreachy internship, but it was actually over 2 months ago! For the last couple of weeks I've been on Outreachy hiatus because of EuroPython, moving from Saarbrücken to Berlin, and my mentor being on vacation. Now I'm back, with 6 weeks left in my internship! So it seems like a good moment to check in and reflect on how things have been going so far, and what's in store for the rest of my time as an Outreachyee. What have I been up to? Learning how to do the work In the rather involved application process for Outreachy, I already had to spend quite a bit of time figuring out the process for making even the tiniest contribution to the Mozilla codebase. But obviously one can't learn everything there is to know about a project within a couple of weeks, so a good chunk of my Outreachy time so far was spent on getting better acquainted with: The tools I've already written about my learning experiences with Mercurial, but there were a lot of other components of the Mozilla development process that I had to learn about (and am still learning about), such as Bugzilla, MozReview, Treeherder, Try, Mach... Then, since the project I'm working focuses on testing, I had to grok things like Pytest and Mock. Since most everything I'm doing is in Python, I've also been picking up useful Python tidbits here and there. The project My internship project, "Test-driven refactoring of Marionette's Python test runner", relates to a component of the Marionette project, which encompasses a lot of moving parts. Even figuring out what Marionette is, what components it comprises, how these interrelate, and which of them I need to know about, was a non-trivial task. That's why I'm writing a couple of posts about the project itself - one down, one to go - to crystallize what I've learned and hopefully make it a little easier for other people to get through the what-even-is-it steps that I've been going through. This post is a sort of "intermission", so sta