tag:blogger.com,1999:blog-83553074243518876582024-02-19T16:19:09.123+01:00Test and TechOlahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.comBlogger19125tag:blogger.com,1999:blog-8355307424351887658.post-7582731109441240632012-05-03T18:40:00.000+02:002012-05-03T18:40:10.646+02:00Let's Test is just around the corner!<p>If anyone missed it, or perhaps simply don't care, there's a great software testing conference in Stockholm next week. Let's Test 2012<br />Somehow I ended up in the role of conference chair or conference general or El Commendante ;)<br />(think I've used all of those titles in various places)<br />And now it's about that time!!! Let's Do It! <br /> <br />
Maybe I should bring an old whistle and some sweat pants and shirt, my old clipboard and make some noise like back in my football coaching days ;)<br /> <br /> Nah, think I'll come as myself today and not 20 years ago :) <br /> <br /> For those of you missing this opportunity: Too bad! It's gonna rock like nothing has ever rocked before!</p>
<p>I'm looking forward to seeing all of you who are comming. I'm not gonna make this rock alone. It's all of you comming to the conference that will make this really rock!</p><br /><br />
<p><div class="separator" style="clear: both; text-align: center;">
<a href="http://lets-test.com">
<img border="0" height="84" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeMxp2zG6_d3KciD2KD_U6wux8FVLLD4naAle75GjL23fEl2xiFtt_ZxmZSgDBWNgnOIwTFk_-p7OFmPvJZIiQ2pAOGu7bf5TsdsdIBOgETgPVWLE-kHITZ1MJfjbs1iXkI6VnW84i3pa5/s320/LETS_TEST_Raster_RGB.png" /></a></div></p>Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com0tag:blogger.com,1999:blog-8355307424351887658.post-88819931646790519482012-01-22T21:40:00.000+01:002012-01-22T21:41:22.261+01:00Why do we test? - A bit more on the subjectI'm very happy with the response I got on my last post about the book project. I thought I'd stay on that subject and write some more about it.<br />
My starting point for this project was the "Why" that seems to missing or at least very strange when you encounter some PM's and others that thinks that brush test off with: "Oh, that's getting to be too much. We don't need you. We don't need that much, better do it ourselves", and other similar comments. I'm trying not to get stunned and speechless when I encounter such ignorance, and I do believe that's exactly what it is, about test. This is of course an educational issue and sometimes you need a clever approach to be able to get the point across and teach these people about test. It is probably not easy and it is challenging. This is a good thing. When it is difficult and challenging it forces you to think about your craft and it forces you to work on your arguments and teaching tactics. Even if it's difficult to embrace the chance to learn and become better at our craft in a situation where you most probably is pretty upset and down right steaming mad, try to cool off and use it to your advantage if you can.<br />
This "Why" depends on the context just like the other "Why"'s that I'll try to cover.<br />
<br />
These are some of the different "Why"s that come to (my) mind: <br />
<ul>
<li>Why do we test? - on a general and perhaps abstract level that's related to non-testers attitude towards test, as a craft and as a service.</li>
<li> Why do we test? - on a personal level. Perhaps I test because I love to explore and enjoy discovering things, or I test because it's a nice job and it helps me pay my bills, or I'm not a tester I just do this because the PM told me I had to.</li>
<li> Why do we test? - in this particular project. It may be regulatory demands that needs to be fulfilled or it may be a business critical production system that has high availability or high security demands. The reasons on this level are not always as clear as they perhaps should be. Being clear about why we test on this level will help when decisions need to be made about how much effort and work is needed when designing tests or when designing automated checks. Communicating the reasons is also </li>
<li> Why do we test? - integrations. This is not as obvious when you think about it as it might look. Think about it.</li>
<li>Why do we test? - performance, in this particular way or at all. This is also not as obvious as it first may seem.</li>
<li>Why do we test at all? - Why not do automated checks and run those and be done with it? Why bother with testing? Do we need real human beings with brains and minds of their own testing this? </li>
</ul>
<br />
<br />
I am far from done with this, I have only started to write and I will try to make use of the community to gather stories and experiences. There will be more on the blog as I write and I guess there will be one or two posts about writers block and distractions. It's only human, I hope!<br />
<br />Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com2tag:blogger.com,1999:blog-8355307424351887658.post-20866598621335843182012-01-18T13:10:00.001+01:002012-01-18T20:28:40.921+01:00Why do we test?<div><p>I recently started writing on what will be my first book. The title was the thing that came to me first together with the idea of subject. Why do we test? That's the title, at this point, and my intention is to gather up my own experiences and the experiences that are shared with me by colleagues and other testers around me. My hope is that it will be of some value to someone and most of all I view it as a great opportunity for myself to become a better writer. Writing is a large part of what I do as a tester and test manager. Strategies, plans, reports of different kinds are sometime too large a part of my job. I enjoy it so I shouldn't complain and I take every chance I can to make these thing more useful and usable and as short as possible. I'm sure I'm not the only one who have experienced that large documents never get used, never get read. They tend to collect dust on whatever disk space they occupy.<br>
Back to the main question: Why do we test? The obvious answer would be: To learn. That's a correct answer but it's hard to convey why we test and what the value of test is with that short reply. It needs to be followed up, and backed up, with the reasons and arguments behind it. It is also different things to different people and that is one of the major challenges when communicating the Why. More than once have I seen test have its allocated time cut down and even completely scrapped in projects. Many times it has been obvious that the decision maker(s) have a very different view of what test really is and what test really does. More than once it has been too late to change the decision when I've gotten a chance to try to enlighten them about what test is and what test brings to the table but now, collecting and writing this book, I will build a nice collection, for myself and others, with experiences and arguments concerning why we do test.<br>
I'll get back to this topic more as my work on the book continues.</p>
<p>A special thanks you to <a href="http://twitter.com/mhsutton">Mike Sutton</a> for helping get off my lazy behind and write a blog post! He is writing to, <a href="http://mhsutton.me/">here</a>.</p>
</div>Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com7tag:blogger.com,1999:blog-8355307424351887658.post-11427180071756368912011-11-06T01:12:00.001+01:002011-11-06T01:15:19.151+01:00I may call it the Bolton heuristic<div><p>This is jolted down rather quickly and I will revisit it and edit it later. It's one in the morning here so it is what it is. This is an idea and we'll see where it goes. </p>
<p>Michael Bolton tweeted about how he discovered that he had missed out on how his mother had been promoting the use of mind mapping for years. These things happen, and they probably happen to most of us sometime. I started to relate this to test and saw how it could help me see things I might otherwise miss. This is how my thinking goes. I like to look at the big picture and remind myself of looking up and try seeing a bit further. This is a good thing, I believe, since at least I need to be reminded of this every now and then. A problem might be that I forget to look right in front me and assess whatever it is that is close, right there. So what do I mean by close and right in front of me? Well, I call it close if one aspect is close. For example it may be close emotionally but far away physically or it might be close physically but emotionally distant or intellectually close but emotionally and physically distant. This way I get several ways to look at close and several ways to assess the close things. It will also be helpful to me to shift focus from the larger picture and scale to the near and close. This is just the first thoughts on what I right now call the Bolton heuristic and I'm sure I'll get back to re-work it later. It's inspired by Michael Bolton and without him I would not have thought about this at this time or in this way, so thank you Mr. Bolton.</p>
</div>Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com0tag:blogger.com,1999:blog-8355307424351887658.post-70641148416720863202011-09-25T00:06:00.001+02:002011-09-25T00:06:42.182+02:00Off-Shore? What?<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>SV</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0cm;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-fareast-language:EN-US;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Today I
more or less lost it when I got tired of hearing people referring to off-shore.
Yes, I know what they mean and I know that money talks and I understand that.
But we’re not talking about some undefined place or undefined people. Of course
the ones talking about off-shore here and off-shore that generally don’t talk
about people either. It’s all about resources to them. </span></div>
<div class="MsoNormal">
<span lang="EN-US"><br />
I don’t use the word resources about people. I think it’s disrespectful and I
feel like live stock or office furniture or a server rack when people call me a
resource. It can get worse, and it does occasionally, and you are referred to
as unit. Well, people, I am not a resource, I can be resourceful but that’s
something else, and I’m definitely not a unit! I am, believe it or not, a human
being, a person, a tester. So, can I do anything about it? Can you? Yes we can,
as someone said. We can stop referring to people as resources and we can stop referring
to India, the Philippines and other places as off-shore. We are talking about
countries and people in those countries. Sure it’s easy to keep going until
some new buzz word shows up but like a wise man said: You must be the change
you want to see in the world. He was an off-shore resource in philosophical and
political thought. </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">I will not
use off-shore anymore; I will say India, Estonia, the Philippines or whatever
country I mean.<span style="mso-spacerun: yes;"> </span>I can do it if I remind
myself often enough to do it and make it a habit. That’s a change I want to
see.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">As a
student of psychology I don’t think it’s strange in any way that we do this,
use a label that gives us a bit of distance from the complexities of dealing
with other people. It’s a very natural thing to do. That doesn’t make it right,
in an ethical sense, and it also leads us towards stereotyping. That’s also an
easy trap to fall into and I haven’t seen anything good come out of that
behavior either. Yes, I am opinionated and I believe in my convictions and I
will let you test them if you please. </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Does it
really matter what words we use? Of course it does. We are human beings all of
us and emotional and sapient beings. I described earlier one kind of reaction
to being called a unit or a resource. I tend to get mad also. I respond
emotionally to the words used to describe me. Since I don’t think I’m all that
different from other people I will not refer to them as units or resources
either. If it hurts me it may hurt them to. It also serves another purpose.
It’s a way for me to try and describe the complexity of the world. It’s easier
to make it look easy and simple when you just use vague description like
“off-shore”. It’s easy to forget and be blind to the fact that working with
distributed teams has its own set of challenges and they are a bit different
than the challenges of working with a team where everyone is in the same
building. I enjoy working in distributed teams because I like working in new
constellations and I learn a lot from working with new people. There are all
sorts of good things that can come from working in teams that distributed
around the world just as a lot of good things can come from forming a great
team where everyone is situated in one place. It all comes down to people and
how we interact. I believe that using the right names for people and places is
a good start to getting a good start when forming teams. It’s easier to get off
on the right foot, as it where, if we start with this pretty easy way of
showing each other some respect.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">These are my opinions and I stand by them. You may disagree and that's fine to, it means you also have strong opinions and that's a good thing in itself. It's when we don't care that we stop learning and stop evolving.<br /><br /><br />(This post was also published on the EuroSTAR blog) </span></div>
Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com0tag:blogger.com,1999:blog-8355307424351887658.post-42518559856601938602011-06-07T10:04:00.006+02:002011-06-07T11:28:00.667+02:00The certification experience<p>I have always taken pride in the fact that I have no degrees and no certifications since leaving high school many years ago. I must confess that it hurt my self image and my rebel heart when I agreed to get a certification. My manager, who ranks at the very top as far as managers I've had goes, wanted me to get the ISTQB Foundation certificate. I agreed to do it. Why? There are several reasons for this decision.</p><ul><li>I felt that it was OK to agree to it since I only started at this job a few months ago. But I also let my manager know that she'll owe me for this.</li><li>I was curious about how this would be taught and what exactly was in the test.</li><li>I wanted first hand experience so that I could criticize it and know what I'm talking about when I do.</li><li>I'd get a chance to meet some more people working in test. Networking is always a priority for me.</li><li>Probably the most important reason was this: I saw an opportunity to question the stuff being taught and hopefully that would get the other participants thinking and questioning as well.</li></ul><p>There are many reasons for doing this but as you may have noticed I didn't expect any amazing revelations and I didn't expect to learn some new amazing skill I could use in testing. That would have been to naive I think.</p><p>The first day of the three day course started interestingly since the teacher agreed with me that there are no best practices. I liked hearing that but throughout the three days there were many occasions when I could see and hear how he tried hard to stay away from the best practice traps I tried to lay. I questioned a lot of process stuff and asked if one step was deemed better and more valuable than others. The material implied that the more "formal" a technique was, according to the syllabus, the more valuable it was and the better it was. I questioned this and pointed out this implication and the fact that this could easily overturn your test effort. I didn't get an answer about whether more "formal" was better or not, or considered better. I could see the teacher, or ISTQB-dude as I referred to him while tweeting about it, biting his lip and try hard not to fall in that "best practice trap".</p><p>It was obvious that what ISTQB called more formal meant better, to ISTQB. The problem here is that when ISTQB says more formal it includes heaps of documentation and meetings and in my world that means less time to actually test. It also, in most cases, contradict my belief that in order to discover things we need to explore and we cannot predict what we will learn. We cannot identify risks without first considering the context, or rather contexts. Without identifying the risks, and contexts, we cannot make any form of decision about what to test first or where to put in the biggest test effort. In order to succeed I must start with context in order to determine the proper course of actions.</p><p>I did manage to get the teacher to admit that we were learning this stuff for the exam. He did say exactly that. Sure, we do learn this for the exam and that means that since there is very little substantial stuff that can be useful in practice that statement in it self meant that three days doing this was truly a waste of out time. Personally I learn more useful stuff any three days of any year than I did doing this.</p><p>Models? Oh yes, there were many models presented to us. No new revolutionary models, I didn't expect that anyway, but some well known ones like state transition models etc. Now personally I don't have any problems with models and I think models can be useful. In the right context. With the right information to the people the models are presented to. The primary piece of information, for me, is the reminder that a model is just a model. It's not the whole picture and it never can be. It's <i>just</i> a model. When using a model it's imperative that all that are presented with the model are aware that it is just that. A model. It can be useful to spark new test ideas. Any state transition model would likely give you many new test ideas. The same goes for equivalence partitioning. It can show you a small part of what needs to be tested in an area of the system but don't fool yourself that it will provide you with all data you need to test that area. It's <i>just</i> a model. It can give you ideas about what to test and how to test. In many cases, in my experience, creating a model may take more time to do than simply consulting my own experience and thinking. Many times that will produce the same test ideas that a model will and it will do it faster. Sometimes starting on a model may be all that is needed to get the test ideas. If that helps, do it! To me there is no value in completing a model unless I intend to use it for communication or I believe it will help me get more test ideas. Simply completing it for its own sake has no value to me.</p><p>The main thing I will remember about this experience is when the teacher, the ISTQB-dude, admitted that we learn this for the exam and thereby implying that it's not learning to be better testers that is the point. I knew that going in but it's nice to hear a "believer" admit that it is so.</p>Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com4tag:blogger.com,1999:blog-8355307424351887658.post-76441736752973540712011-04-10T22:00:00.008+02:002011-04-10T23:53:40.609+02:00SWET2 - A great way to spend a weekend<p>Back home again, tired and inspired, after a weekend of test talk outside Göteborg. The second installment of <a href="http://thetesteye.com/blog/2011/04/thoughts-from-swet2/">SWET</a>, SWET2, with 15 testers. This was my first peer conference and I hope there'll be more to come. The format was great and we had some very inspired, and inspiring, discussions. I come back with a bunch of new thoughts and ideas that I will try to mold into something I can use, when the opportunity arises.</p><p>Thanks to Rikard, Martin and Henrik for arranging a great gathering.</p><p><img src="http://thetesteye.com/blog/wp-content/uploads/SWET2.jpg" height="400px" /></p><p>The delegates were: Christin Wiedemann, Torbjörn Ryber, Azin Bergman, Fredrik Scheja, Henrik Andersson, Johan Jonasson, Ola Hyltén, Sigge Birgisson, Simon Morley, Rikard Edgren, Henrik Emilsson, Martin Jansson, Steve Öberg, Robert Bergqvist, Saam Koororian. All contributed to a great weekend!</p><p><a href="http://twitter.com/#!/search?q=%23swet2">The tweets</a> from SWET2 might tell you something about the discussions that went on</p>Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com0tag:blogger.com,1999:blog-8355307424351887658.post-42385754112268426022011-03-25T09:42:00.003+01:002011-03-25T10:07:31.624+01:00There's hope for the future<p>Yesterday I was talking to my oldest daughter, 9 years old, when we were driving home from her school, like I do every day, and she told me they'd had a test/exam during the day. Nothing strange in that since they are in the middle of a period when they have their first "real test/exams". It's a set of national tests that all 3'rd graders take in Sweden. I was curious about how she had experienced that and what the test was about. I've hear her teacher talk about how it works and they do some things in groups and some individual tasks and not everything at once but it can start one afternoon one week and be continued next week or the next day. Some of the tests are connected so that the results, and learnings, from one test is the starting point of another. All in all I was impressed with the development since this is nothing like it was when I was at school.</p><p>I asked her what the subject was, what the test was about, and I got the answer: I'm not sure. That sparked my curiosity and I asked her to describe what they'd been doing. To say the least I was pleasantly surprised. She told me that they had to solve a mathematical problem and then describe how they had solved it. They were free to use written language, mathematical language (her words) or images and diagrams to describe the process. I had a big smile on face the rest of the drive home and we talked more about it. She had mixed written language and math and imagery and I said -That's great. find it easier to understand how someone else has thought if I get different types of information about it. We talked about the use of imagery and how the combination of different ways of communication can make it easier to understand another person.</p><p>I was impressed that this had been implemented in the tests and exams and it raised my hopes for the future. I do believe that all is not as bad as I had feared in the school system in Sweden today. We are moving forward and I hope that most, if not all, teachers use this approach in the class room. Letting the kids think for themselves and use different means of communication to explain what they've learned.</p>Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com0tag:blogger.com,1999:blog-8355307424351887658.post-57782402786201008552010-12-03T23:44:00.010+01:002010-12-04T14:29:22.590+01:00Jam session / Test session<p>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.</p><p>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.</p><p>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.</p><p>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.</p><p>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.</p><br /><br /><p>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.</p><br /><p><span style="font-size:85%;">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.</span></p>Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com0tag:blogger.com,1999:blog-8355307424351887658.post-82015813817431597582010-12-03T23:22:00.004+01:002010-12-04T02:19:50.187+01:00EuroSTAR 2010 - a great experience<p>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.</p><p>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.</p><p>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 :)</p>Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com2tag:blogger.com,1999:blog-8355307424351887658.post-22224134277182901432010-10-26T22:36:00.002+02:002010-10-26T22:54:52.044+02:00Bug magnet?<p>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.</p><p>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 <i>and</i> it told me I couldn't withdraw that amount. <i>Then</i> 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.</p><p>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.</p>Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com1tag:blogger.com,1999:blog-8355307424351887658.post-62563315438620601702010-06-17T21:05:00.014+02:002010-06-18T16:04:58.698+02:00Documenting the easy way<p>I recently read <a href="http://twitter.com/michaelbolton">Michael Bolton's</a> <a href="http://www.developsense.com/blog/2010/06/test-ideas-for-documentation/">blog post</a> 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 <a href="http://testertested.blogspot.com/2010/06/experience-report-of-testing-versus.html">blog post</a> by <a href="http://twitter.com/testertested">Pradeep Soundararajan</a> 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.</p><p>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.</p><p>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.</p><p>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!</p><p>Many thanks to <a href="http://twitter.com/michaelbolton">Michael Bolton</a> and to <a href="http://twitter.com/testertested">Pradeep Soundararajan</a> for providing the inspiration to think more about the subject and for the inspiration.</p>Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com2tag:blogger.com,1999:blog-8355307424351887658.post-46690116687171121222010-04-22T21:24:00.003+02:002010-04-23T13:39:16.805+02:00Ask a question!<p>I just a read a post by <a href="http://www.twitter.com/siggeb">@siggeb</a> on his <a href="http://happytesting.wordpress.com/2010/04/16/to-ask-the-right-questions/">blog</a>. I put a question to <a href="http://www.twitter.com/siggeb">@siggeb</a> 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.</p><p>I didn't hear anything from <a href="http://www.twitter.com/siggeb">@siggeb</a> 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.<br />I've added a link to Sigges blog and I hope you check it out.</p>Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com0tag:blogger.com,1999:blog-8355307424351887658.post-20958659411352143362010-03-25T22:11:00.005+01:002010-03-25T23:33:47.945+01:00Learning experiences<p>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.</p><p>I got an idea for a series of posts today. It was my own idea but I didn't see it until <a href="http://testertested.blogspot.com/">Pradeep Soundararajan</a> 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!</p><p>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.</p><h4>Experience #1</h4><p>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.</p><p>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!</p><p>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.</p><p>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.</p><p>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 <i>think</i> 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!</p><p>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.</p><p>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!</p>Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com2tag:blogger.com,1999:blog-8355307424351887658.post-42127883939778670362009-05-12T17:45:00.004+02:002009-05-12T22:13:16.076+02:00I failed!<p>I failed! Yes I did and I'm not ashamed about it either. I learned an important lesson and I thought I’d share it.</p><p>As I have mentioned before on this blog I am involved in both testing and in developing a PDM system with a large number of users and it was in this system I failed to find a pretty nasty bug.</p> <p>The bug had been in production for some time and no one had reported any problems. Now we were putting in new functionality that opened this Pandora’s Box. The bug was particularly nasty because as a user you would get no feedback from the system at all even if you fell victim to it. This is an extremely nasty class of bugs. The bugs that will mess up data and you have no idea. </p><p>So what was it? What did this nasty bug do? It changed data in the background, underneath an edit form, causing you to believe you were changing metadata for one object when in fact you could be changing the same metadata for a different object. The metadata not being displayed in the standard presentation of the objects you could do this without seeing it. The only way you’d know something was wrong was if you looked for the change you thought you made and discovered it wasn’t there. You might guess that you closed the editing form without committing the change or that possibly the system failed to commit the data. I don’t think that a lot of people, even testers, would think that perhaps they changed the data for some other object. If your testing a brand new system you would look for things of that nature but in a system that has been live in production for years and has been evolving over those years you would, at least I would and did, assume that there’s no way a bug of that kind could have slipped through. That was one of my mistakes! Don’t make assumptions without testing them . I know this, and I’m sure you do to, but the human mind being what it is, we assume things. We take things for granted and we are biased. Might as well admit it. It’s true.</p><p>We found it, or a colleague of mine found it, and there was much rejoicing. Well, that’s not the counting the poor guy who had to fix it quickly since we were in the middle of putting a new release in place in the production environment. He did pull of a good enough fix. </p><p>All is well that ends well and the good enough fix will be made better and eventually launched into the production environment in June. I learned a few things and that is always good. Don’t make assumptions without testing them, test all around and question yourself if you don’t find any bugs. Test all around is my key to remember to test clicking on stuff outside the form/dialog/div that I’m currently in and also to looking for interactions between the surrounding context of a form/dialog/div that might not be obvious or even readily visible.</p><p>Think for yourselves. I try to!</p>Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com2tag:blogger.com,1999:blog-8355307424351887658.post-44161078808831744002009-04-19T22:06:00.002+02:002009-04-19T22:08:48.553+02:00Tester Tested!: Checkmate heuristic :: A security testing attack<p>I just read Pradeep's blog <a href="http://testertested.blogspot.com/2009/04/checkmate-heuristic-security-testing.html">Tester Tested!: Checkmate heuristic :: A security testing attack</a> and I just loved it. Thinking is the key here, as it always should be. If you want to test something you can't do it without thinking. Following a classic scripted test case means you'll have to shut down your natural curiosity and your natural thinking. You need to be in machine-mode and just perfom. I'm sorry, but you'll never find anything that way. You'll only find what the developers already should have found and fixed.</p><p>In one of the projects I'm working on currently we do have something that we can call a script, if we want to and if we, for political reasons, need to. It's really just a map of the system written out in the english language instead of as a drawing. It shows the whole system on two levels. First it's the five, or six, major functionallity areas of the system and secondly it's the major functions within each area.</p><p>This is really all we need and since the people who do test the system, and the new releases, are thinking human beings, it works great. We tend to find issues and bugs in every release and the most interesting are the ones that have been in the system probably for years without us finding them or anyone reporting them. They may or may not be critical. Some are and some are not. Anyway we are all excited when we find a bug! If it's an old one we tend to get even more excited. Finding bugs in the new, or changed, functionallity is easy. It's finding the old ones that is hard, and therefore more fun.</p><p>I'll keep posting new stuff as often as I can, and if I find something worth sharing.</P>Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com0tag:blogger.com,1999:blog-8355307424351887658.post-26860560671082873762009-02-18T13:44:00.002+01:002009-02-18T15:03:50.498+01:00I found a bug!<P>Yes, I found a bug and it made me so happy! Last Saturday we deployed a new release of a PDM system at a large company and everything was going fine. We had all new components in place and were testing to make sure we hadn't missed anything when I decided to test something we hadn't changed in this release. Why? Well, it was a case of "Why not?" combined with "The wrong place". I need to come up with a good name for this combination of heuristics/triggers that I find useful. "Why not?" is, in my book, simply applying a punk attitude and question the system profoundly blended with a bit of reckless abandon, also very much punk. In this case it led me to "The wrong place". The wrong place is any part that is not affected by the changes deployed. Or any place of the system where I believe that the changes I test have any impact at all. So I decided to test input that produced a problem in one part of the system, where we had made changes, in a completely different place. This place also being one that handles input in a totally different way for different purposes and in this case a place that was not affected by the changes we deployed.</p><p>I did find a bug! The tester in me was excited and happy and knowing the system well, having been a developer on this system for several years now, I also realized that this is an easy bug to exterminate. Since we were deploying a new release in the production environment we didn’t do anything about the bug other than make a note of it.</P><P>Had I not been thinking for myself and used my testing tools the bug would still be there. Undetected, unreported and unsolved. The bug wasn’t critical but it still was a bug that caused loss of information, loss of meta data in this case, unreported and difficult to detect since you would have to know that there was supposed to be more information than you see. It’s never easy to spot what isn’t there! "What’s missing?"is a trigger I use when testing. It demands creativity and an open mind and is something I constantly have to remind myself of using. Is something missing here? Could there be something missing here? In most cases I find that if there is a time you ever needed an oracle this is it! Go talk to the developer, if available, or RTFM. Anything, or anyone, that can provide you with more information.</p><p>I'm still learning and I get excited when the tools I've learnt to use works so well.</p>Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com2tag:blogger.com,1999:blog-8355307424351887658.post-60782746394343869362008-12-16T09:52:00.007+01:002009-01-14T10:26:16.185+01:00In the trenches and slowly moving aheadI heard a rumour while I was attending Öredev in Malmö in november about a teamleader at my company. It was an inspirational rumour. The main thing was that he wanted to scipt more testing of the product he is working with!<br />Is this inspirational, you may ask, and I have to say YES. It should be inspirational to anyone who believes in the possibillities of an exploratory testing approach. There's a good debate in the making when someone wants to go in that direction.<br /><br />We planned a meeting to talk about the impressions from the conference with a focus on testing. I went into the meeting with a guerilla attitude but no such tactics were needed. It was a good meeting. We quickly discovered that the they do exploratory testing, but in a very freestyling way and only rarely. The test lead on that team does it when completely new services and new major features are getting ready for testing and have reached a level where it can be done.<br /><br />I should tell you that the product we're dealing with here does not come equipped with a UI. That part is provided to our customers by other companies. This makes testing a bit more challenging, and interesting. All ideas about testing under these circumstances are welcome. I want to learn more and I try to listen and learn from all sorts of sources.<br /><br />Anyway, we didn't really arrive at any decisions about ET but we decided to keep talking about integrating it in the processes. The development team is working hard on implementing development processes that are intended to help raise the quality of their output and instead of trying to change to much at the same time testing, and test approaches, where put on hold. Have you seen this before? It's not all that bad, there is alot of positive vibes and an open mindedness for change that will lead to improvement in the delivery and development so I have hope for the future. I just got to remind them that there are ways to get better at testing to!Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com2tag:blogger.com,1999:blog-8355307424351887658.post-84991025637591235362008-11-23T15:04:00.002+01:002009-01-14T15:31:50.343+01:00A blog about testing!Last week I attended the Öredev conference in Malmö and spent the first three days learning about Rapid Software Testing from James Bach. The last to days of the conference I spent listening to a diverse group of people including Karen N. Johnson giving a talk about story telling techniques and how to use them in our context, Torbjörn Ryber, who shared some interesting experiences, Pradeep Soundararajan shared experienceses from India. There was alot happening and one of the other speakers I listened to was Mattias Göranssson, from Sony Ericsson in Lund, talking about introducing Heuristic Based Testing at SEMC. It was very interesting and since he could not share much detail and the fact that they have been at it for less than a year, it lacked a little in examples. It would be interesting to learn more about how they go about introducing exploratiry testing, since that is what he is trying to do, and what experiences that will produce. I'm looking forward to hearing more as they move forward.<br /><br />The experience of the conference was over all good. The food was bland but the talks were good. Pradeep told me he had been to many conferences in India were the food was great, and that was what people came for, but the speakers were bland. I prefer it the way it was i Malmö allthough I would really like good food AND good speakers. We'll see when that happens.<br /><br />James Bach did a good job in the Rapid Software Testing course. I think we all felt challenged and alot of us did our best to challenge James which did lead to some very interesting discussions and we all came out of that with new knowledge and new experiences. The two things that are reoccurring in James's course , I think, are two major themes: Focus and Defocus and most importantly Think For Yourself!<br />I will make a t-shirt for myself that says: I Think For Myself! That is just a small, but not insignificant, thing I will bring with me from the course and conference in Malmö last week.<br /><br />I will try to share as much, and as often, as I can, my experiences in testing on this blog. I will use it to try and get reflections from other testers. I will try to use it to learn from you! Please leave a comment about anything if you come accross something you think is good, not that important to comment but appreciated, something that you think is so off the wall and so completly wrong you just have to speak up, I love a good debate and a good discussion.<br /><br />Don't hesitate! Plunge in!Olahttp://www.blogger.com/profile/12679909077391510827noreply@blogger.com3