12 November 2012

Lightning talk - SWET4

Last week included both RST and SWET 4. I have so much I want to share about these amazing experiences, not to mention all the inspiration, ideas and epiphanies related to the events. However, to start off I would like to just share a written, more complete, version of my lightning talk (SWET 4). After presenting it, people feedbacked I left out important information (extra credit to Henrik Emilsson for pointing this out in a great way). Hopefully this version solves any confusion.

The talk
During RST with James Bach I was staring at a long list of IP addresses. All of them shared some kind of pattern making a validation check fail but I just couldn't figure out what the pattern was. Here you can see a 3 row example of how the list was constructed (imagine dots between the numbers and you see IP addresses). Notice that the numbers in the example has nothing to do with the actual exercise, I just made them up right now:

203 176 15 117
74 101 255 103
65 18 247 0

At some point I started thinking about visualization and since I didn't have any better idea I just went crazy with the graphs in Excel. Most of these didn't provide any valuable information but two stood out:

With respect for the class I won't go into details but both the "boxes" in the first one and the "zig zag" in the second reveal useful clues to the mystery.

When looking at the graphs generated by Excel I also had an idea about a graph I didn't know how to plot. The idea was a box there each side represented one of the four numbers making up an IP address (0-255). By drawing a line from side to side a geometric four sided shape would appear in the box representing an unique IP address:
Example: The blue line would represent
an IP address similar to
starting at the top and ending to the left

Since this was during RST I asked James if he knew how to plot this. He said he probably could but we didn't speak more about it.

Some days later I met James again when attending SWET 4. He immediately showed me an exciting idea. The box apparently didn't reveal any useful information as a graph. However, if you instead drew your own shapes and used the IP addresses these shapes represented (same basic principle), it became an interesting way to generate test data and visualize data coverage at the same time. Brilliant idea!

There is a lot of things you can learn from this, the power of visualization being one. But I want to highlight three underlaying decisions I find crucial:
  1. When stuck, just do something
    Even if the graphs would have provided nothing, so would more staring. Just doing something can sometimes kick your brain into gear and give you new ideas (like the box graph for instance) so even when the initial act is fruitless it might get you forward.
  2. Don't overthink cheap tests
    I could have analyzed what kind of graphs to plot but plotting one cost just 2 clicks so why care? If it's really cheap, just do it!
  3. Share your ideas
    If I had decided not to ask James, the great idea with using the box as a test data generator would never had occurred. When something seems useful but you can't figure out when or how to do it, share it, cause others might!
In addition to James Bach, who played a key role in this, and already mentioned Henrik Emilsson, I would like to thank all the other SWET 4 participants for inspiration:
Torbjörn Ryber, Rikard Edgren, Martin Jansson, Sigurdur Birgisson, Sandra Camilovic, Anna Elmsjö, Johan Jonasson, Maria Kedemo, Oscar Cosmo, Saam Koroorian, Simon Morley and Joakim Thorsten. I had a blast!


  1. I have used GraphViz for debugging code output: http://www.graphviz.org/

    Really competent program !!!

  2. Downloading as I type this, seems really interesting!