Another Summer, Another Internship

Anthony Hughes

It’s that time of the year again. Another Summer in California is coming to a close as a new semester of school back in Canada begins. The summer was very interesting. A lot of road trips and a lot of accomplishments at Mozilla.

As some of you may be aware, this was my second internship at Mozilla. In 2007 I interned at Mozilla in QA — my primary role was writing and running tests for the Password Manager and helping out with release testing. In 2008, I gave Mozilla a pass to pursue an opportunity for a different learning opportunity at Songbird. This year I returned to Mozilla as a QA Intern with a focus on Security and Session Store testing.

As with previous internships, I worked on numerous projects. I will now run down the projects I worked on this summer.

BFT Cleanup

Let me first start by explaining “BFT”. A BFT, or Basic Functional Test, is a manual test case. It is essentially a list of steps to perform and expected results, designed to test particular functionality.

Previous to my internship, there were many areas which had no “owner”. An owner is someone who is dedicated to working on that feature. A feature without an owner still gets coverage, the coverage is just more adhoc than if it had an owner. Security and Session Store were two such areas — so I claimed them.

The first part of this project was to go through our current set of BFTs and make sure they are accurate for Firefox 3.5. In the end, some tests were revised, some were disabled, and some were rewritten altogether.

The second part of this project was to go through a series of bugzilla queries. These queries included bugs which were resolved fixed, unconfirmed, or had requests for QA assistance (either for reproduction or to have tests written).

The final part of the project is ongoing. It involves vetting results that come in via Litmus for new bugs or broken test cases, and triaging incoming bugs. It’s essentially maintenance at this point.

Mozmill

The Mozmill project was something completely new to me. Mozmill is an add-on for Firefox which enables UI and function oriented testing to be automated. This required me to refresh my Javascript skills. There were some growing pains as I learned to work within a framework that was being developed in tandem with tests which used it, as well as learning about the review process.

It was quite a slow start for me. In Q2, I was only able to get 3 of my tests checked in. In fact, my first test required no less than 12 revisions. But I was able to hone my skills and accelerate development of tests in Q3. A quarter in which I was able to check in 12 tests and contribute some code back to the API in the form of helper methods. This was definitely an excellent learning experience.

Security Test Day

This project was one of the most interesting projects through the summer. I say that because I originally became involved with Mozilla through a similar test day event. I found it to be quite a rush to organize, promote and run a community event. The end result was quite successful — 37 testers submitting 372 test results and filing 7 bugs.

Documentation

During my internship I had several opportunities to create documentation. Some of this documentation supported projects I worked on (like documenting a computer imaging procedure). Some of this documentation was posted on QMO to assist the community. For example:

  • Tips & Tricks – a quick and dirty guide to tricks QA uses for testing
  • IRC Howto – a guide to getting started with IRC
  • Update Testing Howto – a guide to testing Firefox updates
  • Session Store Prep – a guide to preparing a test profile for Session Store testing

Lab Move

Some of you may remember that Mozilla moved their offices over the summer (from 1981 Landings Dr to 650 Castro St). Naturally, this meant the QA Lab had to be moved as well. After taking an inventory of the lab at Landings, I noticed a lot of wasted space. In fact, I managed to reduce the lab size to 1/3rd after e-cycling some old machines and setting up the lab in the new office.

In addition to the physical move, I took the opportunity to get the computers back to a clean state. After backing up profile and crash data to an external hard drive, I wiped all the computers and reinstalled their OSs fresh. Using a tool called Clonezilla, I was able to create a set of images from these setups. Now it is as easy as booting from a Live CD and following some on screen instructions to get back to a clean state. This greatly reduces lab downtime (1hr for a typical install vs 20min for a typical restore).

Firefox 3.x

When new features are in development it is QA’s job to create test plans and ensure proper test coverage for these feature areas. This way QA and the testing community can hit the ground running when the feature lands. As part of my internship I worked on several features in this regard:

  • Undo Close Window – the ability to restore closed windows
  • Asynchronous Awesomebar – improved performance in the location bar
  • Aero Peek – Windows 7 feature
  • Network Error Pages – a more meaningful default error page

EVCert Server

My final project was setting up an EVCert Server for QA. This server allows us to generate customized Extended Validation SSL Certificates for the purposes of testing. This is a project that had been in flux for quite a while. This project required a lot of learning and many baby steps. However, with the help of IT, QA and the Security team, we now have the capability to test our own custom certificates.

It’s considered to be a big win for QA because this relieves us of the burden of relying on third-party sites for test cases and the burden of trying to find those third-party sites. Ultimately it will result in a more efficient testing and bug triage process.

The Future

Going forward, I plan on running a couple of community events (aiming for FSOSS), continuing my work with Mozmill test scripts, continuing to vet Security and Session Store, continuing my work with Network Error Pages, and picking up a potential Firefox 3.7 feature. Naturally, I’ll blog about these separately as details become available.

Thanks

I’d like to thank everyone at Mozilla, including the community, for such an excellent summer and truly enlightening experience. I’m excited to finish my school and push my Mozilla projects forward.

Cheers!