Testing is Tough

May 5th, 2009 11 Comments

Photo by diggersf on Flickr, used under Creative Commons

Photo by diggersf on Flickr, used under Creative Commons

We’re currently working on a redesign for Connect, and like any project, waterfall, agile or otherwise, we have a testing phase.

I’ve been designing and building software for a long time, assuming you consider mid-90s a long time, and testing has always been the toughest part of the process.

I’m talking about system testing, which means banging away at a piece of software to make sure it works for as many scenarios as possible. The problem is that no matter how hard you try, you can’t foresee every way that your software will be used. It’s impossible, believe me. Try it sometime with a product that does more than a couple functions.

This is why developers and product managers alike hate testing.

Why?

When you write a system test plan, you have to account for as many use cases as possible. That’s really hard for one person. Then, take into account data.

Large, public data sets are great because they provide you with massive amounts of data, which allow you to test both function and performance. However, if you’re testing something proprietary in nature, e.g. accounting data, how can you account for all the variations?

You can’t.

So, you make a best guess, which is probably influenced by your own design, making the test cases less valid and more likely to succeed. That, in turn, affects the testing.

Plus, even if you wanted, you couldn’t get data sets for testing because mostly, those are proprietary and unique to each user.

Data aside, you’re still constrained by your own ability to think of all the test cases.

Enter beta-testing. This is a time-honored tradition, dating back to way before agile programming and Web 2.0 made it popular.

Beta-testing melts down to crowdsourcing, i.e. spread the test cases across as many people as possible to capture all the cases you can. Solid in principle.

Beta-testing is good, at least better. It allows you to reach an unbiased audience, not influenced by your design.

Still, until you can reach more users, you can’t vet all the use cases. This is why products like GMail stay in perpetual beta, i.e. they never go production. I suppose this is a good way to indicate to your users that you’re still under active development.

Still, at some point, you have to leave beta.

I don’t have the answer. Building software is hard. Design and build are comparitively easy. It’s the testing that gets you.

But, we do our best.

What do you think? Find the comments.


Possibly Related Posts

  • http://only4left.jpiwowar.com/ jpiwowar

    Congratulating anyone on inadvertently becoming an operations and product team simultaneously would be mean, so I won’t. I will, however, give sincere and hearty congrats for keeping a viral-to-vital product going at a pace of a new release every 6 months. That’s flat-out awesome anywhere, and even more impressive given the size and geographic distribution of your team.

    And if you have users that care enough to launch a Facebook-style revolt, you have already won.

    This comment was originally posted on Oracle AppsLab

  • http://oraclenerd.com/ chet

    I’ll echo jpiwowar, you have good problems.

    Also, a warning:

    “I have the coolest job at Oracle.”

    Others know this (like Billy Crime, I mean Cripe), and they’re out for your job.

    This comment was originally posted on Oracle AppsLab

  • http://theappslab.com/ Jake

    Yay, I win!

    Thanks for the kind words, appreciated. We do what we can, but I think we’ll have to slow down a bit to account for our users a little more in the future. It’s going to be a challenge to balance cool new stuff with enhancements. A good problem to have though

    It’s been quiet so far (knocking on wood), so maybe I’m being overly cautious.

    This comment was originally posted on Oracle AppsLab

  • http://theappslab.com/ Jake

    Billy would probably enjoy my job, but he wouldn’t get to write books and travel around the country going to conferences

    Careful about wishing for things.

    Thanks for echoing John’s kind words.

    This comment was originally posted on Oracle AppsLab

  • http://oraclenerd.com/ chet

    Can’t you throw it over the wall like Oracle Mix?

    This comment was originally posted on Oracle AppsLab

  • http://theappslab.com/ Jake

    Heh, easier said than done my friend.

    Plus, we’re not ready to do that just yet, although it may become a necessity if Connect gets too big or too mission-critical.

    This comment was originally posted on Oracle AppsLab

  • http://oraclenerd.com/ chet

    it would be fun if you could do that though…Hey, it’s done. You take over now!

    I wish I had your problems.

    This comment was originally posted on Oracle AppsLab

  • http://theappslab.com/ Jake

    Sure, but refer to my comment about being careful what you wish to have.

    This comment was originally posted on Oracle AppsLab

  • Pingback: PM Should Know How to Code, Part 2 | Oracle