Month: August 2011

Preparing a talk: so you think you can test?

I am asked to do a talk at a test consultancy company. To prepare for this talk I want to share my thoughts with you. Hope you can challenge me to rethink or sharpen them.

As a test consultant I have worked for numerous companies and have met or worked with hundreds of testers. A lot of them claim that they are great testers. But are they? I think a lot of testers maybe aren’t that great…

Being a great tester takes a lot of practice. I like this “Becoming a Software Testing Expert” talk by James Bach a lot. The video by the way can be found here. And I see a lot of testers do not study their craft or read books about it. They do not learn or experiment at all. As a matter of fact they claim that they improved by doing their job: after years of doing my job I have a lot of experience! But as James says in his slides: “Don’t confuse experience with expertise”

In this post I like to address three topics what I have experienced that could be helpful become a better tester:
1) Adapt to the context
2) Collaborate
3) Learn & practice!

Everthing is context, context is everything!
Testers in the Netherlands are often trained with the V-Model and methodologies like TMap, TestFrame or ISTQB. Although I do not agree with everything they claim, there is “nothing” wrong with these test methodologies. Not if you don’t take them literally and see them as a practice. We need to become more “agile” in using these methodologies. Since the value of any practice depends on its context. Testers should to be able to adapt to changing situations. Doing so they are able to provide the most value to their stakeholders. Testers should focus on their skills instead of focus on procedures and processes.

Collaborate
Being passionate is contagious! By being passionate you will get your team test infected. Showing your testing skills can help the others in your team. My experience is that even developers will participate in testing if you can show them your skills. They love to build handy test tools and automated scripts which can help the team being more effective in testing! Start using your testing skills and teach others to do better testing. Testers should teach their team members how to test better! I like the way Gojko Adzic descibes it in his presentation “Sleeping with the enemy“: our role in teams will change: from testing everything ourselves, we will also be advisers in our projects. Ensuring that the team does the testing right. Our value is getting the testing right. Of course we’ll still be testing ourselves, the critical, complex testing will always be our job. In exploratory testing or paired testing we can demonstrate our testing skills. Good software testing is a challenging intellectual process.

Times are changing and so is the way we do projects. Collaboration is the key in becoming more effective and efficient in testing. Software development is a team sport: people, working together, are the most important part of any project’s context. So why do we introduce lots of test levels and quality gates? Separate the different disciplines in our projects? Create bulky test plans individually which no one will read?

Learn & Practice
Have you ever seen TV series like Benelux’ next top model or X-factor? People battle to become the best model or singer and win the show. Of course testing is not about beating your colleagues in a match. But this might be the only difference… In the TV shows the models and singers need to show their quality in different areas, every week they are trained in boot camps or by very experienced gurus. These coaches come from different disciplines. To be the best you need to learn all aspects of your job. How do we testers learn?

We need to practice continuous learning. Become skilled in various ways of testing. Practical tips to become a top tester:

  • Take testing classes: Rapid Software Testing or BBST are good examples.
  • Learn and gather ideas from reading books, online magazines and blogs
  • Learn by visiting conferences, participate in online conferences or watch the video’s that have been put online
  • Practice in Testing Dojo’s, weekend testing, software testing clubs, or organize it yourself in your organisation or team.
  • Meet with enthusiastic colleagues and discuss your experiences: peer mentoring, intervison, peer conferences, SIG’s, workgroups, etc.
  • Collaborate, learn from other disciplines: writing/reviewing requirements, coding scripts, using tools, etc.
  • Try different (open source) tools
  • Start writing and presenting about your work and thoughts, get feedback and discuss your thought to improve and discover new ideas.
  • Coach and get coached! Even professional tennis players or soccer players have coaches and trainer to get better and stay on the top.
  • Evaluate often! Make sure you get feedback from your colleagues but also keep evaluating your own work: your processes and your products. Always keep asking yourself the question: how can I do better next time??

Markus Gärtner has written a great article about this stuff called Alternative Paths for Self Education in Software Testing in the July issue of Testing Planet.

Update: slides of the talk can be found in the download section or here.

Decisions on conferences

This afternoon I read an interesting post from my colleague and fellow DEWT member Jean-Paul. In his post he askes the question: “What do you, or rather what does your manager, see as valid justification to attend a conference?”. The funny thing is, that I am manager at the same company Jean-Paul works at so I am one of those manangers who have to decide if testers can go to conferences or not.

While I was thinking about this, I realised that to express my opinion I need to answer 3 questions:

1) Why should testers attend conferences?
2) What are the criteria I use to justify if somebody can go to a conference?
3) What do I expect from testers who go to conferences?

To answer question 1: I fully agree with Jean-Paul: “Conferences typically are the place where you can learn the latest developments and opinions, submerge yourself into the testing mindset, confer with your peers, refresh your ideas and expand your network.”. So that is why I think every tester who is serious about learning and becoming a better tester, should attend conferences.

Before I can answer question 2, I must explain something first. There are a lot of conferences nowadays and I wonder why people always want to go to EuroStar. I admit that it is one of the best known conferences around (in Europe) and it has been one of the few international highly regarded conferences until a couple of years ago. But there are more conferences so why go to EuroStar? I am not saying you should never go to EuroStar, but maybe there are other interesting events or conferences around? In the Netherlands we have quite a few, so maybe a tester can attend those first before going to fly around Europe to visit EuroStar?

The criteria for attending conferences I use are almost the same I use for courses. Roughly these criteria are: do we have budget, does the testers need the course and is this the best way to gain the knowlegde? So if a tester can tell me why he wants to go and what he is going to learn at the conference he is halfway in getting a green light. The exact justification differs per person, so it is hard to describe them here. But it needs to fit in the testers development plan, the departments strategy and again in the budget. But the justification isn’t fully “hard”. There are soft criteria which can’t be measured easily. I mean things like: do I think the testers earns this? Do I grant this to the person? There are a lot of other ways to learn and to become a better tester. And if someone, for example, would read books, read or even write blogs or is busy learning by not only working or attending courses payed by his boss, he makes a good chance with me to get a green light.

The last question is even harder to answer. But yes, as a manager I expect something in return: a good learning experience! So you can expect that we’ll discuss what you have experienced and learned afterwards. I expect that you ask yourself some critical questions like: what did I take home from the conference? What can I use? Where can I improve? Which topic is interessing for further study? For yourself but also for your colleagues and for the organisation you work for. There is always some benefit and what is it? Sure it is hard to really use something from a conference in your daily work. By discussing it with the people who didn’t go, this will become much easier! And if you saw presentations you didn’t like or you maybe even thought they were complete nonsence, explain yourself why and discuss this with your peers. Maybe even find the presentor after the talk and tell him why you didn’t like his talk. The same counts for courses you attend. If you only go there and do nothing with it, the learning benefit is relatively low. So work with it!

Other benefits you can have from conferences are the ones Jean-Paul mentioned: a boosted testing mindset, good discussions with peers and networking. And I think testers should be aware of these “side effects” and be ready to explain them to your manager. This might help you convince him (or me) to let you go.