Thanks for the comments, and sorry for the delayed reply.

I should have been clearer: when talking about "testers" I meant 
independent product testers (black box or functional testers), not 
programmers testing their own code.

I find I don't have many ideas for general-purpose testing tools. So here's 
the scenario I envision:

A. Tester thinks, "It would be really nice if we could put up test results 
on an internal web page. The first page would have the high-level summary. 
You could click to drill down to details on particular suites, or examine 
the failures one by one, or whatever. Something like Mozilla's Tinderbox 
<http://tinderbox.mozilla.org/showbuilds.cgi?tree=SeaMonkey>, but more 
aimed at testing." Then she finds someone's Ruby code that does that. 
She'll have to recode the way it connects to test results, and maybe tweak 
what it displays, but that kind of thing is easy because several people 
have done it before, so those pieces are nicely isolated and some friendly 
person has written documentation about how to tinker with the package.

The hard part is getting the first person to write one in Ruby (and then 
getting that person's company to let it be released).

That said, here are some ideas, general or no:

- a tool to distribute tests to set up remote machines, distribute tests 
there,
   run the tests, collect the results. (This is what Phil's article talks 
about.)

- tools to summarize status and produce reports. The test-results viewer
   above is one example. Another would work with bug reports. Another
   would track "churn" - find files that have been changed often, or
   changed by many people. Those files likely have more bugs.

- A Ruby version of TCL's expect (http://expect.nist.gov/), which is a
   package for talking to apps with a command-line interface, like
   modem dialers or FTP commands.

- a tool to reserve machines, hardware boards, or other scarce things
   needed for tests. This wheel keeps being reinvented.

- maybe a stress test driver (something that forks off a bunch of tests all
   at once).

- a tool to populate databases with test data, maybe randomly, maybe
   with variation.

- a tool to combine lists of test data such that every pairwise combination
   of values is present. (That is, if A=[on, off] and B=[red, yellow, green],
   the result is [on, red], [on, yellow], etc. It gets more complicated if you
   have more variables and you want a minimal list.)

--
Brian Marick, marick / testing.com
www.testing.com - Software testing services and resources
www.testingcraft.com - Where software testers exchange techniques
www.visibleworkings.com - Adequate understanding of system internals