Friday, December 3, 2010

Jam session / Test session

I try to relate all sorts of different experiences and events that take place in everyday life to testing. It helps me remember and it lights up new perspectives on testing. Maybe most importantly I think it's a fun exercise to do. Keeps me thinking of testing, and other things, in new ways and that helps me stay creative and passionate about it. That's my opinion and it works for me.

One thing that comes up every now and then is jam sessions and performance or rehearsal of music. There are several things that relate to testing. The common way to stand/sit in a jam session is in i circle so that everyone can see each other. Body language, eye contact and, depending on if anyone cranked up his/her amplifier to 11, some spoken or shouted word. The most common use of the spoken word in communication during a jam session is usually changing key or moving to a new harmony progression. In these cases it's very short. "F" may be all that is said and when the next bar is reached everyone, hopefully, changes to F. You can change in the middle of a bar of course but changing at the start of the next bar is an example. Rhythm and speed may vary and usually starts with one or two persons picking up on each others playing and creating something new. new progressions may be created this way to. In a good jam there is evolution and learning happening. Is this starting to sound familiar? I think it was Miles Davies who said that he had only gotten better by always playing with musicians that were better than he was. Not extremely better but better. That way he pushed himself, learned more, and became better.

To me jam sessions has always been great opportunities to learn and develop my own skills as a musician. How does this relate to testing? I think a lot is pretty obvious to you by now. Working in a team will help testers to learn more, faster. Do pair testing to help less experienced tester learn from a more experienced tester. Like a good jam exploratory testing will make the tester learn and hone his/her skills during a testing session at the same time that he/she learns more about the software being tested. Change key or move to a new harmonic progression is the charter and it will give ideas for a charter for the next jam, the next session. Changes during a jam is exploring musically in the same way as we explore when we test. We see something that catches our attention or we apply a heuristic that we dig up that we believe is useful here and now. It's like coming up with a riff during a jam that may or may not work in the current context. I guess all musicians carry around an ever growing set of riffs and lick that have been picked up and developed over the years. It's the same thing we do as testers. We develop our tools every time we use them. We can do that if we are aware and think. We don't always have the luxury of being able to pair up with another tester but if you get the chance take it. Go for it! Grab the opportunity. You'll learn something and the other tester will learn from you.

Managing a jam session usually comes down to providing a place to be, maybe set up some amps, drums, keyboards and a PA. Making coffee, provide a sofa and some chairs are good things too. It's pretty much very basic facilitation that we're talking about. It's not about controlling every move of the participants, maybe throw in a first idea of a place to start. More experienced participants will come up with something on there own and agree to start off there. To me this relates very much to testing sessions and the test managers role. If you have the opportunity be a hands on guy and team up with one of your testers and learn something new and help your tester learn as well. Facilitate. Make sure the testers have what they need. Access to oracles identified before starting the session. Coffee! Make sure they get left to do there job and that they are not interrupted. As the test manager be a blocker and let the testers test.

The debriefing at a jam session is either non existent or it's very informal. Usually there will be a few words exchanged when a jam ends, at least if we've found something good and it has rocked in some way. The less successful attempts usually are ignored and you just sit down and let someone else play. That luxury is rarely available in a work situation with deadlines but sometimes it's a good idea to take an early lunch, just take a walk outside and think of something else or, one of my favorites from Brian Eno, "Do nothing for as long as possible." If you try it you'll find how hard it is to do absolutely nothing. It's a fun exercise and not as easy as it sounds.



The inspiration for this came from many discussions and talks at EuroSTAR 2010. Thanks to Lynn McKee, Michael Bolton, Rob Lambert, John Stevenson, Markus Gärtner and many more.


This is the first of my posts that were inspired at EuroSTAR 2010. There were many interesting discussions and a lot of ideas came out of various talks. I will be writing more soon.

EuroSTAR 2010 - a great experience

I attended my first EuroSTAR conference this week and it was very inspirational and a great learning experience. I was reminded of a lot of stuff I had more or less forgotten and I picked up many new ideas that I will try out. Amongst the many talks and workshops there are a few that sticks out. Michael Bolton on Test Framing was very good. I picked up some very useful stuff attending that. Lynn McKee on inspiring passion in your team was excellent. She made a lot of good points and I will remember them and use them. There were some very good keynotes and Rob Sabourin, Anthony Marcano, Dino Petti, Bob Galen were all really good. They all put ideas into my head and I came back with some new ideas to write about. There were others that were inspiring as well. Henrik Andersson och Fredrik Rydberg made great presentations that gave me some new ideas to test. Ajay Balamurugadas was amazing when he presented Weekend Testers.

Perhaps the best thing was the Test Lab. A good place to do the fun stuff, test, and a great place to learn, listen, discuss with some very good testers. I came back from the conference with some good ideas for new posts on the blog and I will start writing this weekend. I might as well walk the walk and do my best to keep my own passion going and write while I still remember why I made those notes and thought of those topics.

Hanging out with some great people was inspiring and a lot of fun! Testing is fun and testers are fun! At least the good ones :)

Tuesday, October 26, 2010

Bug magnet?

Do you ever feel like a bug magnet? Well I do, occasionally. I experienced a bug, well it there were several wrongs involved, last Friday in Gothenburg. Here's the story.

I was in Gothenburg to see ZZ Top with my brother and we as we walked from out hotel to the venue I stopped by an ATM to get some cash to spend at the show. The ATM was located outside a bank, Nordea to be exact, and the ATM was a really old one. It has a small black and white screen and I know this model has been in use in Sweden since the 80's. Now I do guess the software has been upgraded several times since, but that is pure assumption on my part. Anyway, I inserted my VISA card, entered my PIN, as instructed. I then got to choose if I wanted a receipt printed or not, I chose not to. Then I entered 600, that's what I wanted to withdraw. Now is when the funny stuff happened. I get a printed receipt withe the text "Your bank does not allow the withdrawal", the standard message when you haven't enough money on your account. Then I get a message on the screen saying "Take your money". OK? What did just happen here? The machine prints, when I said I didn't want it to do that and it told me I couldn't withdraw that amount. Then it still gives me the cash! Just another Friday night for the tester. I'll send a link to this post to the bank and see if they react. I'll post the reaction if I get one.

I guess most people wouldn't think more of it when they get there cash but the tester in me noted the strange behavior and hopefully I'll make use of it when testing in the future. I did check my bank account when I got home and the withdrawal was logged as it should and there was more funds in the account, which I expected.

Thursday, June 17, 2010

Documenting the easy way

I recently read Michael Bolton's blog post on Test ideas for documentation and was inspired. I thought about the points he made and the questions he asked and figured I could use them in my own way in a project I'm currently involved in. I had this in mind when I read a blog post by Pradeep Soundararajan on his experiences from a recent project. That blog post is a great example of good story telling that really points out some important observations and conclusions we could all learn from.

The thing that caught my attention and instantly gave me an idea was the use of video test cases. It's a brilliant idea in all its simplicity. It's fast to do and easy to understand. Having just read Michael Bolton's text on documentation I immediately thought of using video for documentation. Not for documentation of test sessions but for the systems documentation that we are required to supply to our customer according to their holy process. The customer is an organization that relies on process and documentation and very little on people. It's the kind of place where some people still believe that a good process can be implemented that will solve all the problems caused be human error. They like best practices and that kind of stuff. You have probably seen this yourselves more than once.

Being in this environment it gave me great pleasure to introduce the idea of more video as part of systems documentation and of course as part of systems test documentation. I was ready to argue my case but I obviously managed to present the idea well enough right of the bat because the idea was embraced fully right away. I was a bit disappointed that there were no arguments since I always enjoy the argumentation part. More than once have I seen new ideas, and better ideas come to life as the result of good arguing by intelligent people.

The way I will use video is by making fairly short videos, screen capture, for each of the various application in the system and then simply naming them in a way that relates them to the relevant design specification document. By storing these together, and supplying a very brief document describing the naming convention and the relationships between the specifications and the videos. I will be able to produce this documentation at the same time that I am testing the system and virtually to two tasks simultaneously. There will be some work left to finish the job but the amount of time this will take is very small. I will use video capture to assist myself while testing as well as I use my notebook and OneNote to keep track of my testing sessions. I feel very good about the setup and feel very good about not having to write long, useless descriptions that are totally pointless and basically just a copy of the design specifications and that will never be read by anyone!

Many thanks to Michael Bolton and to Pradeep Soundararajan for providing the inspiration to think more about the subject and for the inspiration.

Thursday, April 22, 2010

Ask a question!

I just a read a post by @siggeb on his blog. I put a question to @siggeb when he tweeted about that he "would ask the right questions" and I just had to say something. How does he know what the right questions are, I thought. It felt a bit to bold, like HE knew how to ask the "right" questions. So I had to challenge him. My first thought was that it's all context dependent and to find similar information from different people/systems/papers you're likely to need to ask different questions. You won't know until you get a reply if that was the right question.

I didn't hear anything from @siggeb for a while. I had almost given up when I got a reply on twitter. I've met the man at Öredev the last couple of years and I know he's a nice guy and a thinking guy so I was looking forward to getting some kind of response. I did, and the fact that I had something to do with him writing that post is humbling and feels good.
I've added a link to Sigges blog and I hope you check it out.

Thursday, March 25, 2010

Learning experiences

So, the man who claims to be thinking for himself woke up and remembered he had a blog. I haven't written anything here in a long time but I will start over and try to establish some kind of flow.

I got an idea for a series of posts today. It was my own idea but I didn't see it until Pradeep Soundararajan kicked it back to me. He suggested I write a series of posts about what makes my "eyes and brains tiered". That was a challenge back at me based on a comment I made on his blog. So i will!

As the title suggests I will keep going along this track for a while. It will be about what I use to learn new stuff and maybe even how I use my new knowledge in my work. That may be related or relatable to testing. That is entirely up to you. Read it. Comment it. Use it. Don't use it. If you do find something useful please use it and remember where you found it. I give no guarantees that anything here will be useful for anyone other than me.

Experience #1

The other day my brother asked me if I wanted to join him look at a house. He and his wife are moving down here from Stockholm and I thought it might be fun and maybe even helpful to him. It was one of those evenings when it was just me and my 3 and a half year old daughter home so I put her in her seat next to mine in the car and we were off. On the way I we talked and I pointed out that soon we'll pass the garage where they fixed my car about a month ago. She started talking about that air comes out, at two places on my car. I was completely lost there for about 30 seconds until she said it was at the back of my car and that that was what they fixed. Then it clicked. She was talking about the exhaust, of course. It was air to her, exhaust to me. Two places, was really one. At least in my world.

The problem with the car was that after sliding, not very fast, of the road I got stuck in the snow and had to get pulled out of the snow by a very big and friendly tractor. The catalytic converter got beat up and my car got a bad case of asthma and the exhaust fumes couldn't get through so it leaked out and ended up in my air intake when I hit the accelerator. So it came out in two places!

I was so happy when I understood what she meant. She got all the parts right, using her own words. I had to use my tired brain to decode her language, she speaks very well and has a large vocabulary for her age, so it's usually easy to understand what she's talking about. In this case it took some thinking. I quickly realized, and actually thought this as we were driving along and I was praising her for remembering the details, that this is what I encounter everyday when dealing with clients and, not always to a lesser extent, my colleagues.

Today this helped me understand a clients problem late in the afternoon. His words were not the ones I would use but I remembered that drive and the talk I had with my daughter and I do believe I has a pretty good idea about how to find and fix the problem tomorrow when I go to see him.

Sometimes this is obvious. The fact that we call things by different names that hold different meaning and has different values for us. In those cases it's easy to see through it and understand the person we're talking to. A few questions and we're usually on the right track. The tricky part is when we assume that the person we're talking to is coming from the same place as we are. That's when we think that we understand each other but later we find out that not only were we not on the same page but not even in the same book! That's when it can get very expensive!

In testing we may be fooled by something that looks familiar and we think we understand what we're supposed to do or think we understand what is going on. If we don't question familiar looking stuff we can miss a lot. It's about communication with the system and testing it! I might use my "Why not?" heuristic in that case. It's about communication with oracles and here we really need to think in order to make sure we understand the oracle. It's not a very useful oracle if we don't understand it. To me it is all about remembering and recognizing the current context. I'm sure there are more ways were remembering this is important. I just can't think of them right now.

The point to me was that I learnt something in a context that was not one where I was expecting to learn. I didn't dismiss my daughter because I didn't understand her at first, or because she's only 3 and a half years old, and that fact alone made me proud of myself as a father, and I did learn an important lesson. Listen and think and keep listening while you think. It will help!