Testing blogs

I’m working on a list of good testing blogs.

Here’s a list in progress.

alister scott – watirmelon

bret pettichord http://www.pettichord.com/ http://www.io.com/~wazmo/blog/ http://www.watircraft.com/

danny faught – http://www.tejasconsulting.com/

james bach – http://www.satisfice.com/

cem kaner – http://www.kaner.com/

randy rice – http://www.riceconsulting.com/ http://randallrice.blogspot.com /

anne-marie charrett – http://www.blog.testingtimes.com.au/

grig gheorghiu – http://agiletesting.blogspot.com

Michael Bolton – http://www.developsense.com/
Elisabeth Hendrickson – http://www.qualitytree.com/ http://testobsessed.com/
Brian Marick – http://www.exampler.com/

http://www.logigear.com/ – Hung Nguyen, etc.
http://brucedaley.typepad.com/testcommon/ – bruce daley

zach fisher – http://testingzach.blogspot.com/
Jonathan Kohl – http://www.kohl.ca/blog/
Rosie Sherry http://blog.drivenqa.com/

Scott Barber – http://www.perftestplus.com/scott_blog.php

Mike Kelly – http://www.testingreflections.com/ http://www.michaeldkelly.com/blog/

James Whittaker –http://blogs.msdn.com/james_whittaker/default.aspx
http://www.bluescreenjoy.com/

http://googletesting.blogspot.com/

http://testingsoftware.blogspot.com/
http://quality-assurance-software-testing.blogspot.com/
http://www.blogcatalog.com/blogs/software-performance-testing.html
http://blog.utest.com/
http://panamo.wordpress.com/
http://shrinik.blogspot.com/

Jared Quinert

please help me add to this list.

I’m also interested in open source projects, agile processes, and software development blogs in general.

http://www.stickyminds.com/

http://www.associationforsoftwaretesting.org/

http://joelonsoftware.com

http://paulgraham.com

http://beust.com/weblog

http://loudthinking.com

mike cohn – http://blog.mountaingoatsoftware.com (agile)

Celerity

I think I linked to this once before, but I’ll do it again.  Celerity is a tool based on HTMLUnit that uses JRuby and a WATIR-like API.  Very interesting, can’t wait to try it out.

Blog mulitplication

I set up a new blog over at http://www.sqablogs.com/fijiaaron/.  I really need to reign my web presence in and get organized.  And that probably means getting my website fixed up.  I’m going to go for a simplification and consulting centric, with a blog.  I’m interested in joining the community over at sqablogs.com and sqaforums.com with an eye towards finding contacts and gaining advice on taking the step towards becoming independent.

My initial post over there is an introduction and description of my dream of testing and sailing around the world.

Stackoverflow rocks

I’ve been following the discussions between Joel Spolsky and Jeff Atwood about a new Q&A site they’re putting together, Stack Overflow. I signed up for the beta and poked around.

I posted my first question yesterday, a real question that I didn’t know the answer to, that was relevant to my work. I’m trying to shoehorn Java into a new shoe, for a project where dynamic languages would be a more natural fit.

http://stackoverflow.com/questions/86607/how-do-i-correctly-access-static-member-classes

Grails has shown Java could be competitive though, at least as an easy to use “convention-over-configuration” web framework. In fact, I first wanted to use Groovy, but team resistance made me abandon that track.

Anyway, I thought I’d give it a try. I started with a big properties file, moved into a hashmap (a friendly co-worker who didn’t know what I was doing suggested hashmaps were almost never the answer) and then though about static fields. And then static inner classes. This would give the huge benefit of IDE discoverable configuration, but it would be a maintenance nightmare. A hierarchy of potentially hundreds of properties over dozens of classes, all in one file — being edited by 20 people.

I found a way to do it, but the compiler was throwing up warnings left and right.

“The static field Foo.bar shoudl be accessed in a static way”

But it compiled and it worked. I knew my team mates would never stand for it. And half of them wouldn’t even understand why it was being done that way. The other half would say that it was the wrong way to do it, but not know a right way that I could be happy with. So that wasn’t maintainable either.

I knew it was possible, but I knew the compiler didn’t like it. I thought it was a limitation of Java (probably deliberate–in the same way every bug ends up being ‘the way I meant to code it’), but I was determined to beat the system. I wanted to know what the rationale for the error was, though I didn’t hope to get a decent answer. But I did.

Thanks to stack overflow and jon.

My business idea

Here’s a continuation of my correspondence. I post it here for my own benefit more than anyone else. If wordpress is paying for my hard disk space, I’ll use it, and nevermind the voyeurs. Maybe it’ll spark someone’s interest. I should probably edit this and put it on the one shore site as my business goals or something like that:

Work from home is definitely the goal. Or rather “remotely” — especially if it can be done from the boat with a satellite connection midway between Ecuador and Fiji; but at a dock on the ICW wouldn’t be too bad either.

I’ve been doing QA since 2000. Before that I did construction and part time sysadmin and web design at small ISP. I code in Java and PHP and am learning Ruby and forgetting Perl, haven’t use C or C++ since school.

I’m a big open source guy and Linux fan. I obsess about process improvement when I should probably be getting things done quick and dirty. I don’t mean CMMI, IEEE, or sixsigma when I say process, I’m thinking more about agility, –not Agile. I’m not religious.

So I was glad to see your post on jroller about “Using JIRA, Confluence, Maven, SVN, CruiseControl or similar? Why Not?” Only I’m not a fan of Maven, though I can see why you need it if you’re hacking on open source Java projects.

Evangelizing just such a stack is my business idea. I don’t mean giving lectures at conventions, though that’d be good money if you can get it. I don’t want to become ThoughtWorks. I mean building it, and maintaining it. Providing the IT and QA infrastructure for development teams, and facilitating agile (little A) project management.

I think the target audience is a startup that’s suddenly outgrowing the core team, who are now trying to manage new employees who are expanding their original fast becoming spaghetti codebase. It’s remarkable how many organizations I hear from that know that they should have revision control, documented requirements, testing, and continuous integration but they don’t have the discipline or resources to get started. So I aim to help them get started. First with hosted (VPS) tools, then moving in house when bandwidth or security demand it. I’ll even provide VMWare images so folks can get started on their own.

Of course any developer worth half their salt can install subversion and some sort of bug tracking tool, and since there are plenty of open source tools, there’s no value added there. It’s moving up the stack and doing the dirty work where I think I can make a difference.

Outsourcing unit tests is a common practice, and potentially a good one if you can get together a good spec. Though really, developers should be writing their own tests, first. But if you’ve a legacy code base, it could be the best way to rein it in, or extend or replace it.

User level automation with tools like Selenium is a step up, and something most developers deem beneath them, and most testers don’t have the skills for. Those that do demand developer rates, anyway. And I think it’s actually pretty hard to build a useful, maintainable set of GUI level automation tests. There’s a lot of record and playback the happy path a million times testing out there.

Same idea with retrofitting documentation. No one (technical) wants to spend all day typing away in MS Office, and certainly no one wants to spend all day reading reams of printouts full of boilerplate. Lightweight, up to date specs and requirements are another area that most organizations would love to have, but nobody wants to do.

Test cases are documentation too, and sometimes substitute for specs (only no one ever lets the tester have the final say about functionality.) Again, the trick is keeping it lightweight, thorough, precise, and easy to execute. Even testers hate reading (and writing) essays in spreadsheets. Good tests are a good way to tease out good documentation. And a great stepping stone to useful automation.

I use lightweight in two senses. One is in the tools used for docuementing tests and requirements. Wikis over word processors. Simple forms over spreadsheets. I think there’s some room for improvement here. Fitnesse is a great idea but could be further developed. And as you mentioned on your blog, a custom specialized tool is almost always better than an expensive generalized one.
I’m ambivalent (bordering on mildly hostile) about code level speccing tools like RSpec. Nobody wants to learn yet another DSL (even in Ruby), but the truth is that a lot of people (good testers and functional analysts) would rather be writing concise bastardized Ruby than mounds of spreadsheets and boilerplate word docs.

The other sense I mean “lightweight” is that with some thought, you can be more concise and more accurate. But nobody has the time up front to do that. You have to figure out the full scope of the domain before you can simplify it. I think of Pascal’s famous letter where he apologises for writing a long letter because it didn’t have the time to make it shorter.

So that’s my domain. My plan is to relieve the pain at the build/testing level. Or if I can’t relieve it, get paid to take it at home (or at sea.)

As you can see, I should invoke Pascal’s apology myself.

My Story

I thought I’d post what I’ve written recently to a guy who’s agreed to help me out with advice on starting my own businesses. So directly from my writing to him….

Here’s my story:

A few years ago I was making around 50K as an SDET working for a telecom and training my replacements from India. I’d been meaning to leave but was saving money and biding my time since the job market didn’t look so good after the dotcom crash and 911. The Indians where were on site were smart enough, but not equipped to manage the remote team, and then there was the corporate bureauacracy.

Back then I still though of myself as a building contractor who was taking a year (or four) stint at a desk job to pay off my last construction project failure and save up for the next. I saw an opportunity to buy land in Fiji, so I took some vacation time and went there to investigate. It wasn’t exactly what I wanted and I wasn’t quite ready, but hey, I was in Fiji, and I was expecting a round of layoffs when I got back. I’d even volunteered to be the next on the chopping block.

I got the call while in Fiji, and almost didn’t come back. Three month’s severance pay for one month’s work convinced me. I thought, I’ll be right back with an extra few grand.

As soon as I finished, I was done I got snapped up by a recruiter for a contract. When I quit that one, I got another. Finally after two years, I was ready to go back to Fiji. This time, I was more interested in developing tourism ideas than building houses. But then I ended up as crew on a sailboat heading to Australia.

I flew back to Fiji determined to get a boat of my own (for the tourism business of course.) Only one snag. I’d fallen in love right before leaving the US and promised to return. I needed money for the boat, so I did. I took another contract, but was miserable. I was about to switch but then got offered more money to stay. Finally I quit to take a full time gig for less money but hopefully more interesting work. And I was getting married.

My wife supported my dream of sailing, but she was more conservative. She took sailing lessons with me and sat through all my talk of boats and distant shores, and then sprang on me her own idea: Ecuador!

Before we got together she’d done volunteer work for a year in Ecuador with an orphanage support program. We’d been back to visit, but here was an opportunity to go back before we had kids. I still didn’t have quite enough for a boat, and I didn’t love my job, so we left for the Andes (by plane.)

She would be able to do her volunteer work with the orphans and people she loved, and I would work on starting my own business. I had some vague ideas about consulting, outsourcing, web development, and testing. I had some more vague ideas about tools and processes, and definitely strong opinions about how things could be better.

I spent 6 months there improving my ideas and skills, but not really producing anything. We came back when she got pregnant and my visa was cut short. I’d started working on a local tourism-related website with a local web developer who flaked, but I was more interested in my testing ideas.

So I’m back to work full time and chomping at the bit to get back to my business. But the baby’s due in October, and my pickup has died, and I’m shopping for cars and counting prices in fractions of a boat or months I could be working without pay.

It looks like the answer is 1/6th or 4. And I’ve been thinking… I don’t need a car if I work from home. Only we’re paying too much rent and the economy’s about to take another dive. And the baby’s due in October.

I think the car is a necessary expense, but there is some mitigation I could do. We could find a cheaper place to live (like Oklahoma — or Montana in my case) though I think strategically being in a tech center like Seattle has it’s benefits. On the other hand, people are often more interested in filling desks than results, especially with QA which managers often think is just a “due diligence” show. Being too far away to come in every day, but close enough to make it for weekly meetings might be a boon.

Being outside the USA, but not in India looks like a non-starter for most, though coincidentally my current employer has a team in Buenos Aires.

If there are large numbers of tech layoffs locally, there will be a potential pool of talent suddenly more interested in entrepeneurial ventures, either through partnerships, or as employees, without the security in the corporate world. I’ve long thought that if there was another downturn, it would be a good time to grow a small business and be poised to benefit on the next uptick, if I can survive. Having a new family complicates that, though.

Anyway, that’s my situation. I can probably save a lot of exposition later by doing it up front, though I’m told that’s no way to hold an audience.

Excellent feature requests for open source requirement management tool

http://belaus.com.au/2008/03/07/redmine/

The nitty gritty:

  • Requirements / Use Cases
  • versioned documents tied to releases
  • document diff
  • Generate Word / RTF / PDF
  • auto generate “requirements for release”
  • description of what’s deployed in different environments (qa/uat/prod)

and from the comments

  • ability to decompose a requirement into parts
  • assign parts of a requirement to different iterations / releases
  • define iteration length and schedule == roadmap
  • break down use cases into scenarios (and assoc to release)