TechDays Finland 2012: my talk on unit testing fundamentals

TechDays Finland 2012 is going on at full speed. I was lucky to be talking in the first slot right after the keynote, so that the rest of the event is way less stressful for me :-)

imageUpdate 2012-03-29: The video link was added.

The venue: Helsinki Fair Centre

As with a few previous TechDays events, the venue is Helsinki Fair Centre. For the past years, TechDays has occupied the conference wing. This year, it spans quite a bit of the actual fair halls as well. Hugely more space – no more irritatingly crowded corridors.

Also, bigger rooms for sessions! Most sessions have fit into their rooms, and a couple have been handled by adding an overflow room with video/audio streaming. This thing is getting quite professional, indeed!

With the first day soon behind us, a second one still lies ahead. Quite a few presentations going on – there are a dozen simultaneous tracks! And with 2800+ peeps aboard, it’s definitely the biggest Microsoft pro event in Finland so far.

My talk: Unit testing

IMG_5289The title for my talk was “Picking up unit testing” (a liberal translation; I did give the talk in Finnish). Instead of going through the basics of unit testing techniques (setups, assertions, fixtures, …), I took a different road: I talked about the politics, the goals and the various logical approaches to unit testing. To the right: The beginnings of the crowd as I saw it.

Here’s a shortened list of the items I discussed:

  • How to convince your boss into unit testing?
  • What to expect from unit testing?
  • How much additional time do I need to spend – and when?
  • What are the horrible dependencies and why do I need to tackle them?IMG_5301
  • What kind of project/module should I start unit testing with?
  • Should I go with easiest-first, toughest-first or maybe just test when fixing bugs?
  • Black box vs. white box
  • The pitfalls of code coverage

The slides are here, and a video recording is available on YouTube. Also, I referenced two of my blog posts on code review – a process I heartily recommend also for unit test code:

http://bit.ly/katselmointi1
http://bit.ly/katselmointi2

Thanks to everyone who attended – and enjoy your TechDays!

March 8, 2012 · Jouni Heikniemi · 6 Comments
Tags: ,  Â· Posted in: Misc. programming

6 Responses

  1. Taina - March 29, 2012

    Hi,
    Loved your presentation at TechDays, really inspiring.
    I was hoping to look again your slides but what tool makes sense to those XML files? :)
    Taina

  2. Jouni Heikniemi - March 29, 2012

    Thanks for the kind words, Taina! But… I'm left wondering which XML files are you referring to?

  3. Taina - March 29, 2012

    Your "slides are here" link opens XML files to me.

  4. Taina - March 29, 2012

    Hey,
    now I got it. :)
    it was .pptx and for some reason my compu wanted to open it as .zip.
    problem solved.
    Have a nice spring day!

  5. Varastomies - April 9, 2012

    Edellisessä työpaikassani sekä konsulteilla että omilla testausintoilijoilla oli tapana tehdä kaiken maailman idioottimaisuuksia, joka tarkoitti minusta sitä, että he eivät olleet lainkaan käsittäneet miksi niitä testejä tehdään. Ja erityisesti sitä, että jos niitä tehdään, niin niitä pitää sitten myös ylläpitää ja ymmärtää. Kyllä vain, nekin ovat ylläpidettävää koodia. Itse en ole mikään testausfundamentalisti, mutta näen niiden käytön sinällään oikein tehtynä järkevänä. Toisaalta olen myös nähnyt tärkeäksi saarnata myös siitä, että mihin niitä ei kannata kirjoittaa.

    Miksi ei siis kannata tehdä kaikelle koodille yksikkötestejä? Muun muassa siksi, että ne tulevat testattua muun, haastavamman koodin "joukossa". Adam Bien heitti sellaiseksi sopivaksi säännöksi sen, että mikäli CC on yli 3, niin kandee harkita testiä, mutta ei juurikaan jos CC on sen alle, kts. http://en.wikipedia.org/wiki/Cyclomatic_complexity. Itse tykästyin tähän kovasti, varsinkin kun olin juuri katsonut kuinka "Suomen johtavat osaajat" kirjoittivat mm. testikoodia jossa testattiin että getterit palauttavat saman asian mitä settereillä juuri laitetaan sisään. Ei siis riittänyt, että testattiin jotain järjetöntä vaan niitä settereitä sitten kirjoitettiin myös ihan sen takia että testit menivät läpi. Hyvänen aika mitä idiotismia. Hyvin suuri osa testeistä löysi paikkansa sinne missä ne olivat parhaimmillaan: recycle bin'issä. Kun koodia järkevöitettiin, niin monelle attribuutille kävi niin, ettei niitä tarvittu lainkaan (getterit/setterit menivät siis roskiin). Ja kaikki "turha testikoodi" mikä hajosi heitettiin roskiin aina sitä mukaa kun se hajosi. Jäljelle jäi vain sellaiset asiat joihin ihan oikeasti kannatti tehdä testit.

    t. Varastomies

  6. Antti Kurenniemi - April 25, 2012

    Good talk, shame on me for missing the session! I'm enjoying a new perspective as a manager trying to introduce unit testing (+ other "new" practices) to a team where skillsets and attitudes towards testing are… varying, to say the least. It's good fun, and with TFS 2010 setting up a complete pipeline from coding to unit testing to server builds and automated test runs, the technical part has been surprisingly smooth sailing.

    Now if only I could get the old grunts to learn new tricks…

    Cheers!

Leave a Reply