So, you’ve got a green thumb.  You’ve been growing houseplants your whole life.  Now try to grow an orchid.  What you’ve learned about houseplants has taught you very little about orchids.

  • Put one in soil and you’ll kill it (orchids grow on rocks or bark). 
  • Orchids need about 20 degrees Fahrenheit difference between day and night.
  • Orchids need wind and humidity to strive.
  • Orchids need indirect sunlight.  Lots of it.  But put them in the sun and they’ll burn.
  • Fading flowers does not mean your orchid is dying (orchids bloom in cycles).

So, you’re a skilled tester.  You’ve been testing functional applications with user interfaces your whole career.  Now try to test a data warehouse.  What you’ve learned about functionality testing has taught you very little about data testing.

  • “Acting like a user”, will not get you far.  Efficient data testing does not involve a UI and depends little on other interfaces.  There are no buttons to click or text boxes to interrogate during a massive data quality investigation.
  • Lack of technical skills will kill you.  Interacting with a DB requires DB Language skills (e.g., TSQL).  Testing millions of lines of data requires coding skills to enlist the help of machine-aided-exploratory-testing.
  • Checking the health of your data warehouse prior to deployments probably requires automated checks.
  • For functional testing, executing shallow tests first to cover breadth, then deep tests later is normally a good approach.  In data testing, the opposite may be true.
  • If you are skilled at writing bug reports with detailed repro steps, this skill may hinder your effectiveness at communicating data warehouse bugs, where repro steps may not be important.
  • If you are used to getting by as a tester, not reading books about the architecture or technology of your system-under-test, you may fail at data warehouse testing.  In order to design valuable tests, a tester will need to study data warehouses until they grok concepts like Inferred Members, Junk Dimensions, Partitioning, Null handling, 3NF, grain, and Rapidly Changing Monster Dimensions.

Testers, let’s respect the differences in the projects we test, and grow our skills accordingly.  Please don’t use a one-size-fits-all approach.


  1. Anonymous said...

    Good to know. Thanks for the informative post!

  2. Unknown said...

    As an avid gardener I love the post. I often use gardening analogies when talking with testers and have quite a few I could throw at you. You limit your analogy to data warehouse testing. While it does apply wonderfully, I would take the gardening analogy even further:
    plants are different, just as tests are different. Some plants require full sun to thrive, other shade; some need a lot of water, others are drought tolerant. To grow a successful garden you first need to understand your lot; at a basic level what areas get a lot of sun, what areas are full of shade, and what types of plants are common in your area. Select the plants you think might work best in each spot around your house. Prepare the soil as recommended and plant when you are suppose to. Over the years you can propagate those plants you like, weed out those you don't like, and fill in with clearance plants from the local garden store. Sounds simple on paper.

    But gardens are like projects: nothing ever goes as planned. The beautiful Hydrangea that was to be the centerpiece of your garden never takes hold and eventually dies, the "weeds" that you thought you cleared out last year have come back stronger than ever, invasive plants from you neighbors are creeping into your lot, your beautiful 70-year-old shade tree becomes infested, dies, and has to be cut down, and nothing is growing as fast as you expected. Fortunately, plants are like tests and can be adapted. If a plant doesn't grow in a certain spot, move it and replace it with another.

    Testers have a lot of tools in their testing-belt just like there are a seemingly endless variety of plants. If you are not getting good test results (a lot of defects are getting through) try another type of test. It may take years but eventually you will find one that works well in every spot in your yard.

    Happy gardening!!!

  3. Matt said...

    Good point, I'd like to think it wouldn't need to be stated. . . but perhaps that's just me thinking that this should be obvious. :)

  4. Eric Jacobson said...

    Brilliant, Matthew! I love it! Invasive plants are like scope creep. Understanding your lot is like learning your domain.

    Try this: Change "plants are different, just as tests are different" to "plants are different, just as *testers* are different" then read it.

    Thanks for sharing, man!

Copyright 2006| Blogger Templates by GeckoandFly modified and converted to Blogger Beta by Blogcrowds.
No part of the content or the blog may be reproduced without prior written permission.