Sunday, December 22, 2013

Christmas arithmetics

Ho-ho-ho!

Christmas is almost here and I'm feeling all Christmasy! People start to wind down, christmas lights spread calm ambience, the smell of hyacinths and swastika pastries fill the air... This is my 36th Christmas and I'm still getting my kicks out of it. I love joining with my friends and family, talking with them in peace, having nice meals with them, enjoying few cold ones in sauna with them, and ultimately just being with them longer than just the short weekend. It's safe to say I love Christmas.

One imporant part of this social event are the presents. I love giving them to those I care about, and of course I love receiving them at least as much. The anticipation before receiving them and the joy of opening them is something that brings me back into childhood. The theme of my presents may have changed (except for the Star Wars part), but the childish joy is still there. If you pay attention you might catch some real emotions, perhaps a tiny giggle too when I'm opening presents. That's rare in a Finn. Catch that s**t and put it in a bottle. ;)

Christmas presents lead us to our topic of the day: Christmas arithmetics.

"What is this nonsense", you might ask. Well, those who know me know that I hate the idea of counting test cases. So much for the Christmas spirit, right? ;) I know some of you count test cases like hell, but let me tell you something; That's a waste of time. The idea of counting things is based on the fact that these things should be equal. 1 + 1 + 1 = 3 is a viable example of this. If you apply some tolerance you might count apples: apple + apple + apple = 3 apples. More tolerance allows you to count cars: car + car + car = 3 cars. This is basic stuff taught in kindergarten.

1, 2... um... twelve?
I hate to spoil it for you; We are not in the kindergarten anymore. Test cases are not equal. They are never ever equal. Even the simplest of test cases have variables that make them distinctive from other test cases. By applying tolerance you might create some equivalence classes, but the chances are that you might miss the vital variables. If you go for scientific accuracy there are no two apples or cars alike either. At the end you'll notice that you have exactly the same amount of equivalence classes as you have test cases and you've just spent this whole time fiddling with nonsense rather than testing.

Simpler way to put it; Counting test cases is like counting Christmas presents. On kindergarten level you can count them even though they are different sizes and shapes, even though some are hard or soft or even though some are wrapped in pink Star Trek paper (I like Star Wars, remember ;). When you start opening them, arithmetics go out the window. A moment ago your sister gloated with her twenty presents, but as you reveal your Lego Death Star, she starts cursing on her twenty pairs of wool socks... ;)

I have to share this... My mom got the flu couple of weeks ago. Despite of that she went to shop for Christmas and asked me what I'd want from Santa. I told: "My mom to be healthy. Stop shopping and rest!" She said that me saying that was the best Christmas present. *heart*

Long story short; When it comes to counting test cases or Christmas presents, don't do it. Time and money spent on that goes to waste. A project manager, steering group or contract may require you to do so, which means that decisions are not based on relevant information. You can either play ball or educate your stakeholders. I you choose the latter, I will gladly help you.

But not until 2014. ;)

Now it's time to enjoy the company of our loved ones. Have a very merry Christmas and a happy New Year!

Cheers,

Sami

1 comment:

  1. Not sure what it says about me but I haven't even thought about counting test cases. There're as many as is necessary and they themselves change along with the project, its people and the overall situation. It's a breathing and living ecosystem! :) Also, I'm quite often baffled by how many times I get a blank look to questions like "What does this feature do? Why does it do what it does? Who uses it?".

    ReplyDelete