Fluffy

I’m just writing to mention a new project I’m working on, “Fluffy”.  It’s a research project looking at Flex, Flash, ActionScript, etc.  and looking at testing tools and strategies.

I set up a Fluffy QA site with all the regular tools: subversion, bugzilla, projectpier, trac with  blogs, forum, and wiki.

I’m using a wordpress-mu blog as kind of a project journal, but I’m not happy with it.  That’s one project I’d really like to work on.

There’s no paper left in Fort Knox

Once upon a time, money was backed by gold.  Then a conspiracy of international Jews (Warburgs, Rothschilds, etc.) and Oil, Steel, and Railroad barons (Harriman, Morgan, Rockefeller, etc.) took it all away and created the fractional reserve system which the major banks used government bonds to generate IOUs which they borrowed against to get more IOUs.

Or something like that.  I’m no John Birch conspiracist, but this chart posted on Marc Fluery’s blog paints a sad picture.  If it’s accurate, only 54 cents on the dollar are actually even backed by T-Bills anymore.

looking for webmail app recommendations

I’ve tried a lot of webmail apps out there. Among the list off the top of my head that I’m hosted are:

Squirrelmail
Neomail
Roundcube
Imp

I’m currently using Imp on klamathsystems.com and associated domains, specifically for it’s filtering. I’d used procmail filters with Neomail, but it didn’t always play nice with my other mailboxes. I like to use mutt when I ssh. For one-shore, that’s all I do.

I had a fiasco hiring someone to set up email for one-shore last year, where I had to rip everything out and start over, and never got past a simple sendmail POP3.

My number 1 requirement is that I want to be able to see the same mailboxes from the webmail client, mutt, and a rich client like outlook, thunderbird, or evolution. I want my POP3 client to pull from my IMAP inbox so I don’t have to re-read stuff I’ve already deleted or sorted. Same for webmail. Getting webmail to play nicely with a shared IMAP folder is sometimes buggy.

But, the real trick is to be able to store locally my email, even after it’s been IMAP sorted. This is the real clincher for email, and I don’t think there’s a solution. There have been several attempts to bridge the POP/IMAP divide, and even new protocols, but nothing has really taken.

The other trick (entirely doable, just takes time) is to be able to manage multiple addresses (over multiple domains, including gmail and fastmail) with one inbox in a coherent manner. Like I said, it can be done, but involves scripting on multiple hosts, and keeping track is a bear. I like evolution’s vFolders (tags before tags became cool), but would like something serverside like that. Gmail’s labels are similar

Anyway, it’s about time I got one-shore/qa-site/pm-site, etc. set up, and get a workable client solution for qa-sites. I’m open to suggestions, advice, or recommendations.

jconsole

A developer taught me about an interesting tool I never know about.

jconsole is a gui app that comes with the JVM that can monitor memory usage of your java applications, threads, classes, and mbeans.

By invoking your JVM with the following flags you can get all kinds of interesting information from %JAVA_HOME%/bin/jconsole.exe

-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

Test Management

A well organized article on IBM developerworks about test management:

http://www.ibm.com/developerworks/rational/library/06/1107_davis/

The takeway I like is:

Testing tasks:

  • Organization
  • Planning
  • Authoring
  • Executing
  • Reporting

Really not that specific to testing, but helpful to think about when “planning” or “managing” or whatever it is you call it.

I don’t know if I endorse the conclusions or descriptions of the article, but this is a good outline.  I’ll try to elaborate on my “interpretation” of it.

eval() and other golden hammers

Using STIQ test can be frustrating.  Especially when it uses a bastardized selenium stored in an undocumented wiki format (the only thing you’re supposed to need to know is that a table is three pipe ‘|’ characters with one space before or after any content characters, or only one space if their are no characters in the cell, and that there are no spaces before the first or after the last pipe — that must have been fun to write a parser for; in this case a logical leniency would’ve been actually easier) that has a two pass eval that is preparsed before evaluating as javascript.

Whew!

Now try to parse a common number format like $1,234,567.89 into that.  It’s a minimum 4 step
operation to get to where you can string compare it against 1234567.89.  And very error prone.  Does it escape regexes?  Does it treat it as numbers or strings for greater/less than?  Does it need quoted to “cast” to a string?  Double or single quoted?  What if you have fractions or longer decimals, scientific notation, or other currency?  Don’t forget to guess when and how it evaluates variables, defines, and special collections like storedVars.

It can be done, but it isn’t fun.

A co-worker mentioned that when all you have is a hammer, you tend to use it for everything.  Even things it shouldn’t be used for.

After a couple hours puzzling over this problem, through trial and error, I finally got it working (for a reasonable expected input.)  Then I went to a stand up meeting, came back, and had an epiphany.  I was already using database functions like COUNT(), SUM(), and ROUND() — surely there are some number formatting functions as well.  A quick search found TO_NUMBER() which turned out to be the reverse of what I needed, which is TO_CHAR().

Oracle is a bit funny about data storage and display.  It probably has something to do with efficiency, and a lot to do with legacy compatibility.  Anyway, I’ve got workable query that looks something like this:

SELECT TO_CHAR(ROUND(SUM(time)/60), ‘9,999,999’) as time_in_minutes …

SELECT TO_CHAR(SUM(amount), ‘$9,999,999’) as amount …

Of course, I don’t know if I need to use ROUND, TRUNC, FLOOR, REMAINDER, or MOD.  I wonder how I can do date/time arithmatic in Oracle?  I think I’ve found my new golden hammer — until database portability becomes an issue.

Browser tools for automation

Since I’m using Selenium (via STIQ) at my job these days, I’ve found a few tools that are priceless for web automation. The latest of these I’ve discovered is xpather. It is a firefox plugin that allows you to highlight any text on a page and see a (not ‘the’) xpath query to that element. Saves tons of counting.

It’s just what you need to find that silly, unmarked item in a HTML stew and get it’s contents. Along with firebug (plugin here), it’s a must have for HTML inspection.

Anyone have other tools they like?

Of course, another firefox plugin one can’t do with out is the Selenium IDE.

Been a while

Since coming back to the USA from Ecuador, I haven’t had much opportunity to work on One Shore, QA Site, or any other projects. I hope that will change soon. I’ve been busy, well, moving back to the USA from Ecuador. Getting a job, finding a place to live, shopping for a boat, traveling back and forth to Montana to visit family and get stuff, and now needing to fix or sell and replace my truck which apparently has a blown head gasket. If I get the boat, replace or repair the car, and have a baby, then I should be set. Provided work doesn’t take all my time.

I got a job at Speakeasy in Seattle as a “Quality Assurance Engineer III” — a tester. I’m a bit disappointed to not be using my tools & process expertise, but I was excited to use STIQ, a tool that combines selenium and fitnesse (to disappointing affect — it doesn’t really take advantage of either) and work in VOIP, though predictably, I’m just testing webapps. It’s a full on “Agile” environment, which is interesting, but takes some getting used to. The first thing I wanted to do was write a “sticky note” application so that the information written on sticky notes (just about all that is written) doesn’t disappear when it’s stickyness fades (if not before.) 3M’s miracle glue is not a viable persistence solution for planning and documentation.

But I’m itching for tools, and prompted by cruisecontrol performance problems on linux to look at other build tools, I came across several positive reviews of Luntbuild and an interesting new (to me) build product called “Hudson.”

https://hudson.dev.java.net/

It passes the sniff test, installs easy (simply), looks pretty enough, and looks similar in design to Luntbuild with web configuration. I already like it’s AJAX svn repository verification step. More later.

Here’s a list of CI tools I’ve compiled:

CruiseControl
Continuum
Luntbuild
Anthill
Intellij – TeamCity
Atlassian – Bamboo
Cerberus – Ruby
Microsoft – VS Team System/Server/Suite/Foundation/whatever

In all fairness, someone’s comment about Sharepoint being the 80% tool is dead on. It does 80% of what all tools need out of the box, and about 80% of tools could be built easier based on it.

It’s sad that there is no OSS alternative among all the myriad of wikis, forums, file sharing, content management, collaboration, tools. It seems they all just want to parse their own dialect of wiki text or handle webmail. One thing they need is a sane user/group management. The other thing they need forms/workflow. The two solved problems out there are file sharing and rich text edit, but rarely together.