<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>~robcee/ &#187; Testing</title>
	<atom:link href="http://antennasoft.net/robcee/tag/testing/feed/" rel="self" type="application/rss+xml" />
	<link>http://antennasoft.net/robcee</link>
	<description>more than just sandwiches</description>
	<lastBuildDate>Mon, 19 Jul 2010 17:44:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Firebug Test Automation Phase 1 complete</title>
		<link>http://antennasoft.net/robcee/2009/09/04/firebug-test-automation-phase-1-complete/</link>
		<comments>http://antennasoft.net/robcee/2009/09/04/firebug-test-automation-phase-1-complete/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 13:27:53 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[unit]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/2009/09/04/firebug-test-automation-phase-1-complete/</guid>
		<description><![CDATA[Yesterday afternoon I posted a somewhat cryptic tweet:
Orange ftw. Blog post to follow.  http://twitpic.com/gcizx
Well, here&#8217;s the blog post.
That little orange box is the first successful run of Firebug&#8217;s FBTest test automation tool through buildbot. It&#8217;s currently posting to the MozillaTest Tinderbox.
This is phase 1. We&#8217;re currently running Firebug&#8217;s 1.5 branch out of SVN against [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday afternoon I posted a somewhat cryptic <a target="_blank" href="http://twitter.com/robcee/status/3741451621">tweet</a>:<br />
<blockquote><span class="status-body"><span class="entry-content">Orange ftw. Blog post to follow.  <a href="http://twitpic.com/gcizx" class="tweet-url web" rel="nofollow" target="_blank">http://twitpic.com/gcizx</a></span></span></p></blockquote>
<p>Well, here&#8217;s the blog post.</p>
<p>That little orange box is the first successful run of Firebug&#8217;s <a target="_blank" href="http://groups.google.com/group/firebug-working-group/web/fbtest-the-firebug-testing-system">FBTest</a> test automation tool through buildbot. It&#8217;s currently posting to the <a target="_blank" href="http://tinderbox.mozilla.org/showbuilds.cgi?tree=MozillaTest">MozillaTest</a> Tinderbox.</p>
<p>This is phase 1. We&#8217;re currently running Firebug&#8217;s 1.5 branch out of SVN against the latest linux build available in the Firefox 3.6 tinderbox builds directory. These are kicked off by SVN checkins to Firebug and FBTest. To give better coverage, and be somewhat more useful to Firefox devs, we&#8217;re going to run the latest built version of Firebug 1.5 against Firefox 3.6 branch and 3.7 trunk after a successful Tinderbox build. This will give us a known quantity (a Firebug that works in 3.5) testing against the different Firefox versions for incompatibilities. This should allow us to spot regressions as they happen in Firefox and report them much more quickly.</p>
<p>Once these are setup, we&#8217;ll create a separate Firebug tree, or if the sheriffs and drivers are amenable to it, drop a column on the appropriate Firefox tree on Tinderbox. I also want to experiment with different notification systems.</p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2009/09/04/firebug-test-automation-phase-1-complete/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Firebug Testday On Right Now, 1.4a26 warning</title>
		<link>http://antennasoft.net/robcee/2009/05/08/firebug-testday-on-right-now-14a26-warning/</link>
		<comments>http://antennasoft.net/robcee/2009/05/08/firebug-testday-on-right-now-14a26-warning/#comments</comments>
		<pubDate>Fri, 08 May 2009 13:52:45 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[dud]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/2009/05/08/firebug-testday-on-right-now-14a26-warning/</guid>
		<description><![CDATA[Just a little reminder that we&#8217;re testing Firebug over in #testday on irc.mozilla.org. Grab the latest clean release (Firebug 1.4a25) from getfirebug.com/releases/firebug/1.4 and come on in.
Please be advised that Firebug 1.4a26 has been declared &#8220;Dead on Arrival&#8221;. Please don&#8217;t update to this version.
]]></description>
			<content:encoded><![CDATA[<p>Just a little reminder that we&#8217;re testing Firebug over in <a target="_blank" href="irc://irc.mozilla.org/#testday">#testday</a> on irc.mozilla.org. Grab the latest clean release (<a href="http://bit.ly/fbug14a25">Firebug 1.4a25</a>) from <a target="_blank" href="http://getfirebug.com/releases/firebug/1.4/">getfirebug.com/releases/firebug/1.4</a> and come on in.</p>
<p>Please be advised that Firebug 1.4a26 has been declared &#8220;Dead on Arrival&#8221;. Please don&#8217;t update to this version.</p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2009/05/08/firebug-testday-on-right-now-14a26-warning/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Firebug Testday, Friday, May 8th, 2009</title>
		<link>http://antennasoft.net/robcee/2009/05/06/firebug-testday-friday-may-8th-2009/</link>
		<comments>http://antennasoft.net/robcee/2009/05/06/firebug-testday-friday-may-8th-2009/#comments</comments>
		<pubDate>Wed, 06 May 2009 23:02:42 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Quality]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[qa]]></category>
		<category><![CDATA[testday]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/2009/05/06/firebug-testday-friday-may-8th-2009/</guid>
		<description><![CDATA[Join us in #testday on irc.mozilla.org and help test out the latest version of Firebug 1.4. If you&#8217;re a web developer, a browser power user or just bored and looking for a place to hang out on a Friday (between 8am and 4pm PST), grab the latest version at http://getfirebug.com/releases/firebug/1.4. (currently 1.4a25)
Our goal is to [...]]]></description>
			<content:encoded><![CDATA[<p>Join us in <a target="_blank" href="irc://irc.mozilla.org/#testday">#testday</a> on irc.mozilla.org and help test out the latest version of Firebug 1.4. If you&#8217;re a web developer, a browser power user or just bored and looking for a place to hang out on a Friday (between 8am and 4pm PST), grab the latest version at <a target="_blank" href="http://code.google.com/p/fbug/issues/list">http://getfirebug.com/releases/firebug/1.4</a>. (currently 1.4a25)</p>
<p>Our goal is to test through some basic features through litmus.mozilla.org (TBD), run Jan Odvarko&#8217;s test <a target="_blank" href="http://www.janodvarko.cz/firebug/tests/">suite</a> and/or a couple of online tutorials. The purpose of these tests is going to be to determine Firebug compatibility with Firefox 3.0 and <a target="_blank" href="http://www.mozilla.com/en-US/firefox/all-beta.html">Firefox 3.5b4</a>.</p>
<p>Issues discovered will be logged on the Firebug <a target="_blank" href="http://code.google.com/p/fbug/issues/list">issues tracker</a>.</p>
<p>See the write-up on <a target="_blank" href="http://quality.mozilla.org/">QMO</a> on their <a target="_blank" href="http://quality.mozilla.org/events/2009/may/08/give-firebug-little-shine-and-polish">events page</a>. We&#8217;re hoping for a good turn out, so I hope to see you there.</p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2009/05/06/firebug-testday-friday-may-8th-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FireUnit &#8211; the early years</title>
		<link>http://antennasoft.net/robcee/2008/10/07/fireunit-the-early-years/</link>
		<comments>http://antennasoft.net/robcee/2008/10/07/fireunit-the-early-years/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 20:05:25 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[fireunit]]></category>
		<category><![CDATA[unittest]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/2008/10/07/fireunit-the-early-years/</guid>
		<description><![CDATA[One of our goals for moving forward with Firebug is to build a system to run automated unit tests for it. Currently, Firebug is modified, packaged and then tested by a small (but enthusiastic!) group of developers. When changes are made to the codebase, the area under development might be tested by the developer, but [...]]]></description>
			<content:encoded><![CDATA[<p>One of our goals for moving forward with Firebug is to build a system to run automated unit tests for it. Currently, Firebug is modified, packaged and then tested by a small (but enthusiastic!) group of developers. When changes are made to the codebase, the area under development might be tested by the developer, but there&#8217;s no way of knowing if what you&#8217;ve done has broken some other part of the application. As a friend of mine is fond of saying, software is hard.</p>
<p>Enter FireUnit! An extension for Firebug that aims to be able to test Firebug itself, and later on, perhaps be a useful framework for developing unittests for the web. It&#8217;s still very early on, but there&#8217;s a core emerging.</p>
<p>Installing FireUnit is currently a bit of a manual affair. Download the source code from the github <a target="_blank" href="http://github.com/jeresig/fireunit/tree/master">repository</a> and extract the downloaded zip or tar file to your local filesystem.</p>
<p>Open your profile/extensions directory for the Firefox profile that you use with Firebug. Create a new empty text file there with the name &#8220;fireunit@mozilla.com&#8221; (no quotes, of course). In this text file, add the full path to the FireUnit directory you unpacked in the previous step. E.g., &#8220;/Volumes/Data/Projects/FIREBUG/fireunit&#8221; in my case.
<div align="center"><img src="http://antennasoft.net/robcee/wp-content/uploads/2008/10/picture-1.png" alt="" /><br /><small><small><i>Test panel of FireUnit after running commandline.html</i></small></small></div>
<p>When you open/restart Firefox with this profile and open Firebug, you should now see a new &#8220;Test&#8221; panel in the list of tabs. Go to the location bar and type in / paste chrome://fireunit/content/test/commandline.html. You should see some flickering as FireUnit runs through the tests in that commandline.html. When done, you should see a bunch of passes listed in the Test panel (hopefully no failures!).</p>
<p>While I&#8217;m rambling about testing, I should mention that there will soon be a new alpha version of Firebug 1.3 (a4) available for download at <a target="_blank" href="http://getfirebug.com/releases/firebug/1.3/">getfirebug.com/releases/firebug1.3</a>. This would be an ideal version for you to try out FireUnit on! For the more adventurous in the crowd, Chromebug 0.3a8 is R261 on <a target="_blank" href="https://fireclipse.svn.sourceforge.net/svnroot/fireclipse/trunk/FireclipseExtensions/chromebug">https://fireclipse.svn.sourceforge.net/svnroot/fireclipse/trunk/FireclipseExtensions/chromebug</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2008/10/07/fireunit-the-early-years/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Firebug Performance By The Numbers</title>
		<link>http://antennasoft.net/robcee/2008/09/19/firebug-performance-by-the-numbers/</link>
		<comments>http://antennasoft.net/robcee/2008/09/19/firebug-performance-by-the-numbers/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 19:16:55 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/2008/09/19/firebug-performance-by-the-numbers/</guid>
		<description><![CDATA[One of the goals we had recently was to get some idea of the performance characteristics of Firebug in its various operating states within Firefox. I spent some time a couple of weeks ago running some performance tests in Dromaeo and Talos and came up with some interesting numbers and graphs. Rather than rehash the [...]]]></description>
			<content:encoded><![CDATA[<p>One of the goals we had recently was to get some idea of the performance characteristics of Firebug in its various operating states within Firefox. I spent some time a couple of weeks ago running some performance tests in <a target="_blank" href="http://dromaeo.com/">Dromaeo</a> and <a target="_blank" href="https://wiki.mozilla.org/StandaloneTalos">Talos</a> and came up with some interesting numbers and graphs. Rather than rehash the entire thing here, I&#8217;ll link to the relevant analysis docs here for perusal: Dromaeo <a target="_blank" href="https://wiki.mozilla.org/User:Rcampbell/Firebug_performance">results</a>, Talos <a target="_blank" href="https://wiki.mozilla.org/User:Rcampbell/Firebug_Talos">results</a>.</p>
<p>What became pretty clear was that there was only a very negligible performance hit for having Firebug installed. Better yet, it&#8217;s quite performant even with the Firebug console enabled, meaning you can keep Firebug on your default profile without worrying about impacting your regular browsing.</p>
<p><a href="http://www.flickr.com/photos/robceemoz/2871045156/" title="Firebug_1.2_Tp by robceemoz, on Flickr"><img src="http://farm4.static.flickr.com/3076/2871045156_5669d27014.jpg" alt="Firebug_1.2_Tp" height="373" width="500" /></a><br />
<br/><br />
Memory performance was similar and even with the script debugger enabled, memory usage peaked and levelled off indicating that there were no real leaks visible, even though pages took noticeably longer to load.</p>
<p><a href="http://www.flickr.com/photos/robceemoz/2871045218/" title="Firebug_1.2_Tp_RSS by robceemoz, on Flickr"><img src="http://farm4.static.flickr.com/3073/2871045218_26117b039c.jpg" alt="Firebug_1.2_Tp_RSS" height="375" width="500" /></a><br />
<br/></p>
<p>This isn&#8217;t to say that we&#8217;re sitting idly on our hands congratulating everyone on a job well-done. John Barton noticed a particular JavaScript test that was noticeably slower than it&#8217;s neighbors and it jogged his memory about some testing he&#8217;d done earlier in the 1.2 development cycle. This should translate into improved eval script performance in 1.3 and future versions of Firebug.</p>
<p>I&#8217;m looking forward to revisiting these benchmarks down the line to track our improvements.</p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2008/09/19/firebug-performance-by-the-numbers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Firefox 3 Unittest Architecture</title>
		<link>http://antennasoft.net/robcee/2008/06/06/firefox-3-unittest-architecture/</link>
		<comments>http://antennasoft.net/robcee/2008/06/06/firefox-3-unittest-architecture/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 12:45:14 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[unittest]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/?p=77</guid>
		<description><![CDATA[Now that we're on the verge of shipping Firefox 3 to hundreds of millions of users around the planet, and getting ready to move our development efforts into new territory on a new repository, it's a good time to talk about the tireless robots that have diligently checked every source change for nearly a year and a half. They've worked hard, been yelled at, called names and had tense discussions with developers and IT personnel during that entire period. Some have passed on, retired to the quieter pastures of staging or have been melted down for scrap. A couple of die-hards survived relatively unscathed and are looking forward for more action, their scars worn like badges of honor…]]></description>
			<content:encoded><![CDATA[<p>Now that we&#8217;re on the verge of shipping Firefox 3 to hundreds of millions of users around the planet, and getting ready to move our development efforts into new territory on a new repository, it&#8217;s a good time to talk about the tireless robots that have diligently checked every source change for nearly a year and a half. They&#8217;ve worked hard, been yelled at, called names and had tense discussions with developers and IT personnel during that entire period. Some have passed on, retired to the quieter pastures of staging or have been melted down for scrap. A couple of die-hards survived relatively unscathed and are looking forward for more action, their scars worn like badges of honor…</p>
<p><a href="http://www.flickr.com/photos/robceemoz/2554121522/" target="_blank"><img class="alignleft" style="float: left;" src="http://farm4.static.flickr.com/3019/2554121522_4c702a0a79_m.jpg" alt="unittest diagram" width="240" height="184" /></a>Ok, that&#8217;s laying it on pretty thick, but I have a fond affection for a few of these machines. For instance, <a href="http://antennasoft.net/robcee/2007/02/19/im-sure-they-were-here-a-minute-ago/">qm-xserve01</a> was the original Mac unittest Xserve and nothing else has been able to touch it for compile and test time. We recently dropped qm-xserve06 onto the farm and at best, it&#8217;s about 10 minutes slower end-to-end than xserve01. I don&#8217;t know why this is and it shouldn&#8217;t be &#8211; xserve06 is newer and sporting more recent processors and I believe a faster bus. See also <a href="http://antennasoft.net/robcee/2007/04/26/attack-of-the-robots/">qm-win2k3-01</a>, our first physical box running Windows unittests. It&#8217;s been there since April 26th of last year, as Shaver once quipped, &#8220;qm-win2k3-01 taught me to love&#8221;. We&#8217;re still waiting for the t-shirts.</p>
<p>Why are there three of everything? We borrowed a trick from Talos. One of the difficulties of running a testing box is that you sometimes get funny results. There are a lot of moving pieces on these machines and we try to keep them as tight as possible, running as few extra components as we can on identical operating systems (across a single platform), but sometimes things just go a little funny. The thinking was having sets of three (triadic) machines would introduce some error-checking into the runs. One orange run out of three can be discarded. Two out of three and you might have something a little harder to reproduce. Three out of three and you close the tree and backout. I think that system works pretty well in most cases.</p>
<p>The one sad point we&#8217;ve really struggled with during this period is the linux platform. We&#8217;ve been running linux unittests on our Centos5 ReferencePlatform which is solid and well-maintained by Ben Hearsum and Nick Thomas. Running it on VMs introduces some variability that has been really hard to shake down. Tests involving timers are almost guaranteed to fail at some point. Sometimes, if disk access gets a little busy, we see errors in reftests loading some resources, usually pngs of even the smallest size. Then there are the random mochi* failures. These problems are hard to reproduce and even harder to diagnose, usually resulting in a shrug and someone shakily pushing the &#8220;force build&#8221; button on the waterfall page in the hopes that the problem will go away on the next build. It often does.</p>
<p>If you can shed any light on these on-going issues, we could use some help. Please see bugs:</p>
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=431745" target="_blank">https://bugzilla.mozilla.org/show_bug.cgi?id=431745</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=435064">https://bugzilla.mozilla.org/show_bug.cgi?id=435064</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=428865">https://bugzilla.mozilla.org/show_bug.cgi?id=428865</a></li>
</ul>
<p>Moving forward to <a href="http://developer.mozilla.org/devnews/index.php/2008/06/02/mozilla-central-open-for-business/">mozilla-central</a>, we&#8217;ve got a few machines chugging along there and I hear qm-win2k3-03 picked up its first real regression yesterday so things seem to be progressing nicely. Over the next few weeks, we&#8217;re going to give the Firefox3/Gecko1.9 machines a spit-polish, upgrading all of them to buildbot 0.7.7 and matching their installations to what we&#8217;re using on the new machinery. As for what the new machinery will look like, I have a sneaky suspicion it&#8217;s going to look a little bit like Talos.</p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2008/06/06/firefox-3-unittest-architecture/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>HOWTO: Unit testing Linux</title>
		<link>http://antennasoft.net/robcee/2008/05/22/howto-unit-testing-linux/</link>
		<comments>http://antennasoft.net/robcee/2008/05/22/howto-unit-testing-linux/#comments</comments>
		<pubDate>Thu, 22 May 2008 15:14:13 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[buildbot]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[unittest]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/?p=73</guid>
		<description><![CDATA[Mozilla&#8217;s evangelist and resident all-around-good-guy Chris Blizzard wrote an excellent piece yesterday on the dangers of hand-picking patches in a linux distribution, at least as they pertain to Mozilla and Firefox. I don&#8217;t need to say more on that as he covers it pretty well. I will just say that it&#8217;s a hard problem and [...]]]></description>
			<content:encoded><![CDATA[<p>Mozilla&#8217;s evangelist and resident all-around-good-guy <a href="http://www.0xdeadbeef.com/weblog" target="_blank">Chris Blizzard</a> wrote an excellent <a href="http://www.0xdeadbeef.com/weblog/?p=368">piece</a> yesterday on the dangers of hand-picking patches in a linux distribution, at least as they pertain to Mozilla and Firefox. I don&#8217;t need to say more on that as he covers it pretty well. I will just say that it&#8217;s a hard problem and difficult to get it right without having the entire big picture spread out in front of you.</p>
<p>I&#8217;m writing this in the hopes that we can make the process a little easier for those of you responsible for packaging Firefox (and hopefully other Mozilla apps down the road) on Linux.</p>
<p>First, the background: We do automated unit testing. We do it on every checkin and you can see the results posted to <a href="http://tinderbox.mozilla.org/showbuilds.cgi?tree=Firefox" target="_blank">http://tinderbox.mozilla.org/showbuilds.cgi?tree=Firefox</a>. The machines responsible for producing those results are running <a href="http://buildbot.net/trac" target="_blank">buildbot</a>. We&#8217;re currently using, a slightly customized version 0.7.5 (available from Mozilla&#8217;s cvs repo at cvs-mirror.mozilla.org in mozilla/tools/buildbot, branch BUILDBOT_BRANCH_0_7_5) on top of Twisted 2.4.0. Soon, we&#8217;ll be moving forward to version 0.7.7 and Twisted 8.x on all our machines as part of a Grand Unified Vision. More on that later.</p>
<p>We have some scattered documentation around the mozilla wikisphere that we&#8217;ll be consolidating and cleaning up over the summer. The important bits are: the main Mozilla Buildbot Wiki page at <a href="http://wiki.mozilla.org/Buildbot" target="_blank">http://wiki.mozilla.org/Buildbot</a>. Of some but decreasing importance is the <a href="http://wiki.mozilla.org/BuildbotTestfarm" target="_blank">BuildbotTestFarm</a> setup page. It has links to the important buildbot master configuration and setup files, namely <a href="http://lxr.mozilla.org/mozilla/source/tools/buildbot-configs/testing/unittest/master.cfg" target="_blank">master.cfg</a> and <a href="http://lxr.mozilla.org/mozilla/source/tools/buildbot-configs/testing/unittest/mozbuild.py">mozbuild.py</a> in the <a href="http://lxr.mozilla.org/mozilla/source/tools/buildbot-configs/testing/unittest/">unittest</a> directory. Also, <a href="http://wiki.mozilla.org/BuildbotTestFarmUse" target="_blank">http://wiki.mozilla.org/BuildbotTestFarmUse</a> has a really awesome <a href="http://wiki.mozilla.org/Image:Buildbot_network_diagram_2.png" target="_blank">diagram</a> that I created (and recently updated!) that you&#8217;ll want to show to all your friends and possibly print out and hang on your cubicle wall.</p>
<p>Ok, let&#8217;s use all this to setup an example buildbot master and slave on your linux environment of choice. First, we&#8217;ll assume you&#8217;re capable of actually building the browser on your slave machine according to <a href="http://developer.mozilla.org/en/docs/Linux_Build_Prerequisites" target="_blank">Linux_Build_Prerequisites</a>. On your buildbot master (it can be the same machine as the slave if you&#8217;re just doing a single builder), create the master directory by typing &#8220;buildbot create-master unittest_master&#8221; (where unittest_master is your directory name, it can be anything). Copy master.cfg, mozbuild.py and the default <a href="http://lxr.mozilla.org/mozilla/source/tools/buildbot-configs/testing/unittest/mozconfig-places" target="_blank">mozconfig</a> file into this newly-created directory and modify the .cfg file to taste. If you&#8217;re doing a straight copy and paste from our version, you can delete all those extra machine names and will have something that will look more like this: <a href="http://antennasoft.net/robcee/example-mastercfg/">master.cfg</a><a href="http://pastebin.mozilla.org/439706" target="_blank"></a>. Rename URLs and links as appropriate. If you don&#8217;t use Tinderbox server for hosting your builds, you can remove the &#8220;c<span class="br0">[</span><span class="st0">'status'</span><span class="br0">]</span>.<span class="me1">append</span><span class="br0">(</span>tinderbox.<span class="me1">TinderboxMailNotifier</span><span class="br0">(&#8230;&#8221; section entirely and just use the buildbot waterfall.</span></p>
<p>Once you&#8217;ve got that setup, start it up by running &#8220;buildbot start unittest_master&#8221; in the parent directory and you should see some log chatter as it starts up. You can verify by visiting localhost:2005 on the master machine and seeing a waterfall with an empty table in it. It&#8217;s waiting for a slave to connect. If you don&#8217;t see this, you&#8217;ve done something horribly wrong and will need to start from scratch, probably after thinking about it for a few minutes and maybe getting a cup of your favorite caffeinated warm beverage. This thoughtful reflection is important. I can&#8217;t stress this enough!</p>
<p>Now that you&#8217;re properly caffeinated, let&#8217;s create the slave. I&#8217;m going to assume you&#8217;re running it on the same machine as the one you&#8217;ve just created the master on. In a nearby directory, type &#8220;buildbot create-slave slave-dir localhost:9989 linux 1h34rtL1nuX&#8221;. It should create a directory named &#8220;slave-dir&#8221; and add a few files to it. Now the fun part: type &#8220;buildbot start slave-dir&#8221; and you should be up and running. Verify this on the buildbot waterfall page where you should see the slave connected and a build starting up.</p>
<p>At this point, I&#8217;m going to finish up with a few caveats. These instructions assume you&#8217;re using the same buildbot version we&#8217;ve used for these setups (version 0.7.5 running on twisted 2.4.0 with python 2.4 or 2.5). You&#8217;ll need to modify your master.cfg file slightly if you&#8217;re using a newer version. For excruciating details on how we setup these machines, see <a href="http://wiki.mozilla.org/ReferencePlatforms/Linux-CentOS-5.0">http://wiki.mozilla.org/ReferencePlatforms/Linux-CentOS-5.0</a>. All machines running Reftests are required to have 24 or 32bit displays for image comparison. Lastly, the test machine will have to have run any version of Firefox before for the default profile to have been initialized.</p>
<p>The file &#8220;mozbuild.py&#8221; mentioned above contains the interesting bits. If you&#8217;re curious about how to run any of the individual unittests from a run, be sure to take a look in there at the &#8220;command=&#8221; parameters to the various testing classes. Good luck, and have fun!<br />
<a href="http://wiki.mozilla.org/Buildbot" target="_blank"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2008/05/22/howto-unit-testing-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mochitest By The Numbers</title>
		<link>http://antennasoft.net/robcee/2008/03/27/mochitest-by-the-numbers/</link>
		<comments>http://antennasoft.net/robcee/2008/03/27/mochitest-by-the-numbers/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 16:49:20 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/2008/03/27/mochitest-by-the-numbers/</guid>
		<description><![CDATA[In an email discussion yesterday, Schrep posed the perfectly cromulent question, how many unittests are we running and where did they come from? A good chunk of our testing comes from a few popular JavaScript programming libraries that some of our more intrepid test coders translated to run inside Mochitest. I knew we&#8217;d translated jQuery, [...]]]></description>
			<content:encoded><![CDATA[<p>In an email discussion yesterday, Schrep posed the perfectly cromulent question, <span style="font-style: italic;">how many unittests are we running and where did they come from?</span> A good chunk of our testing comes from a few popular JavaScript programming libraries that some of our more intrepid test coders translated to run inside <a href="http://developer.mozilla.org/en/docs/Mochitest_FAQ">Mochitest</a>. I knew we&#8217;d translated <a href="http://jquery.com/">jQuery</a>, <a href="http://script.aculo.us/">Scriptaculous</a> and <a href="http://www.mochikit.com/">Mochikit</a>&#8217;s own test frameworks, to name a few, but what else was in there? And what portion of the 50,000 odd mochitests were from large external frameworks?</p>
<p>I spent the afternoon grabbing a new tree and running through a Mochitest run and looking at the output in Numbers. What follows is my simple <a href="http://people.mozilla.org/~rcampbell/pub/2008-03-26-mochitest_rollup.csv">analysis</a> of the contents of Mochitest on Mac – the numbers are slightly different for other platforms but comparable.</p>
<ul>
<li>External sources 4555</p>
<li>Mozilla contributors 43943</ul>
<p>I want to be clear that these numbers may be slightly misleading. I can&#8217;t point at a single one of these and say with utter certainty that &#8220;that is a single unittest&#8221;. When we asked David Baron about the 20-odd-thousand tests included in Layout/Style, he told us:</p>
<blockquote><p>There are a bunch of tests that test things combinatorically. In other words, for a long list of potential values for CSS properties, testing a large number of things related to that value&#8217;s parsing, serialization, and computation through different APIs.</p></blockquote>
<p><a href="http://blog.mozilla.com/rob-sayre/">Rob Sayre</a> also had a note of caution regarding these figures:</p>
<blockquote><p>The definition of what constitutes a single test is pretty fluid. I would just say &#8220;tens of thousands&#8221;</p></blockquote>
<p>What we can say then, with some certainty is that Mozilla contributors have written, constructed or otherwise created <span style="font-weight: bold; font-style: italic;">tens of thousands of unit tests in just over 1 year.</span> We&#8217;ve also outnumbered the external tests included in our test code by nearly 10 to 1. Areas we&#8217;re testing include, but are by no means limited to: content, canvas, layout, chrome, docshell, HTML parsing, XUL, &#8230; really too many areas to list like this. See the <a href="http://people.mozilla.org/~rcampbell/pub/2008-03-26-mochitest_rollup.csv">analysis</a> doc for details.</p>
<p>I think this is a phenomenal achievement and would like to thank everyone who&#8217;s contributed. Clearly Mozilla has become a very test-focused project and this has enabled us to create better builds with demonstrably fewer regressions on nightlies and betas.</p>
<p>There&#8217;s always more to do. The external test-suites we&#8217;ve included could stand to be updated and augmented. Below are a set of bugs <a href="http://ejohn.org/blog/">John Resig</a> recently filed. If you&#8217;re a developer looking to hone your mochitest skills or want to contribute to our growing population of tests, pick one of these up and take a crack at it.</p>
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=424813">https://bugzilla.mozilla.org/show_bug.cgi?id=424813</a></p>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=424814">https://bugzilla.mozilla.org/show_bug.cgi?id=424814</a>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=424816">https://bugzilla.mozilla.org/show_bug.cgi?id=424816</a>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=424818">https://bugzilla.mozilla.org/show_bug.cgi?id=424818</a>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=424819">https://bugzilla.mozilla.org/show_bug.cgi?id=424819</a>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=424820">https://bugzilla.mozilla.org/show_bug.cgi?id=424820</a>
</ul></p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2008/03/27/mochitest-by-the-numbers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Work Week Recap</title>
		<link>http://antennasoft.net/robcee/2008/02/04/work-week-recap/</link>
		<comments>http://antennasoft.net/robcee/2008/02/04/work-week-recap/#comments</comments>
		<pubDate>Mon, 04 Feb 2008 16:36:26 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/2008/02/04/work-week-recap/</guid>
		<description><![CDATA[

It was a fun work week in Mountain View. Despite the large number of toys available in the main area of Building K, there was a tremendous amount of work getting done on Firefox 3. Beta 3 freeze occurred (and continues) through stalwart sheriffing and sheer force of will, pushing a steady stream of patches [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><span style="color: #0000ee"><a href="http://www.flickr.com/photos/robceemoz/sets/72157603809250274/"><img src="http://farm3.static.flickr.com/2233/2225838901_1b7dca39f4_m.jpg" alt="obligatory out the window cloudshot" height="160" width="240" /></a><br />
</span></p>
<p><span style="color: #0000ee"><span style="color: #000000">It was a fun work week in Mountain View. Despite the large number of <a href="http://www.flickr.com/photos/robceemoz/2229361236/">toys</a> available in the main area of Building K, there was a tremendous amount of work getting done on Firefox 3. Beta 3 freeze occurred (and continues) through stalwart sheriffing and sheer force of will, pushing a steady stream of patches being into the tree in preparation for its release. Mostly, I tried to stay out of everyone&#8217;s way.</span><br />
</span></p>
<p>On the test development and automation end of things, we had some productive meetings to set our direction for the next few months. We&#8217;re going to put some fast-cycling talos machines up to take over from the aging, test-only tinderboxes that have been keeping Rob Helmer up at night. These should come into being in the next couple of weeks and we&#8217;ll run them in parallel during the bake-in period to compare the numbers.</p>
<p>I also had the opportunity to sit down with Bob Clary and bring up a couple more machines for the JavaScript Testing project, aka &#8220;<a href="http://lxr.mozilla.org/mozilla/source/tools/buildbot-configs/testing/sisyphus/">Sisyphus</a>&#8220;. You can visit them on the <a href="http://tinderbox.mozilla.org/showbuilds.cgi?tree=MozillaTest">MozillaTest</a> tree on the tinderbox server — they&#8217;re the ones with &#8220;js test&#8221; in the title and are currently all orange due to tinderbox error parsing funniness. Over the next little while we&#8217;ll bring up the remaining platform (Mac OS X Intel) and fix up the displays so they&#8217;re only orange when they&#8217;re supposed to be orange.</p>
<p>But wait! There&#8217;s more! We&#8217;re also going to be beefing up the unittest farm with some redundant machinery. Each platform will become part of a triadic set similar to the triples of machines we have running talos tests. This is the first phase in building in some parallelization and error checking into these machines in an attempt to cut down on cycle time and improve reliability.</p>
<p>Finally, Chris Cooper improved the <a href="http://coop.deadsquid.com/?p=1071">clobber support</a> across all three platforms and applied a little special sauce on the Windows box that should dramatically reduce the number of stuck processes under Mozilla-build.</p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2008/02/04/work-week-recap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
