How to become a better tester?

think outside the boxIn a lot of professions we see that people want to grow and become better in what they do. It’s a pity to see that within testing a lot of people are just doing what they always do, the way they always do it. Why does it seem that a lot of testers don’t try to get better at testing? Is it because they don’t know how or should the title of Martijn de Vrieze’s post “Is testing the dumping grounds of IT?” be answered with yes too much? Let’s try to put some pointers down on how to become a better tester.

Know your basics

The first step to becoming a better tester, is to know what testing is about. Most testers have at some point in their career participated in a “testing foundation course”. The basic terminology learnt in such a course, together with some basic techniques, should not be forgotten. I’m not saying that you should apply everything all the time, but just don’t forget it. The courses are called foundation for a reason! Every house needs a foundation, not only the first couple of times you build a house.

Be passionate and keep practicing

You’ve got to love what you do and keep on practicing to become better! Have you ever seen an Olympic champion that did not train? Every piece of software (or hardware) you’re testing is different. So you get new challenges continuously, but you’ve got to treat them as new challenges too. Of course you have some basic tests that are valid to execute in this context, but it’s a new challenge so try new methods and think outside the box. Only executing standard tests will not make you a better tester.

Read and write

One way to learn about the test profession is to read. A lot of useful sources on testing exist. When you are reading this, you found one of the sources: blogs. More and more testers start blogging to let the community know what is in their minds and to help others that might run into similar situations. In my opinion, every tester should at least read one book on testing, but preferably more than one. The software testing club has a nice lineup here. Writing a blog is valuable to become a better tester too. It helps you realize what you do and structure it. The comments that you’ll get will also help you to think again on what you wrote.

Attend meetings with other testers

Face-to-face communication will help even more. Attend conferences, specialist group meetings and peer meetings. Every time you discuss about a testing topic (or just listen to others that are discussing), you will get something out of it. Either it strengthens you in your opinion, or it will help you to understand why your opinion should be adjusted. A conference is a great place to learn. People take the time to prepare presentations, so you will get a complete story. Meet-up with other testers to talk about these presentations and share your views. Never stop learning!!

Go to the dark side

Last month I saw a video of @EvilTester (Alan Richardson) in which he explained that we need to go to the dark side of testing. This was a great video and helped me a lot to realize what needs to happen for me to become a better tester. If you have 41 minutes to watch it, please do! He clearly states that a tester needs a sense of humor and take responsibility for what you do.

Building blocks of a good (software testing) course

PracticeIn my opinion a good course will contain theory, experience based stories and a practical part. Each of these will deliver value to the participants in its own way, therefore I think all these elements need to be present in every course. No software testing course can be complete without some actual testing in it.

Theory

Theory is considered to be boring by most of the participants, but it’s necessary! The theory will provide some common understanding of terms and definitions that can be used throughout the course. Of course the theory is best accepted by participants when it’s backed by experience based stories, but these stories alone will not suffice to bring the message. It’s up to the teachers to deliver a good mix of theory and experience based stories! The theoretical part of the course is actually a guideline for the teacher, so no relevant subjects for the course are forgotten. Since a course is usually not limited to a single teacher, the theoretical part will make sure that the minimal need information to make the course worthwhile is delivered every time.

Experiences

In the previous paragraph I mentioned that it’s up to the teacher to deliver a mix of theory and experience based stories. Beware for courses where the teacher lacks personal experience in the provided content. However, the teacher is the only one that provides experience stories. A good course will use some form of discussions to let all the attendees share their knowledge. Stimulate all attendees to participate in discussions. Where one person sees problems, the other already tackled these. A good teacher will learn from these discussions and will be able to provide more information every next course. It’s important to acknowledge that you, as a teacher, do not know everything. Also give credit to the attendees and tell them that you will use their input to improve the course.

Practice

To improve the chance that the information in a course sticks with the attendees; always make sure to have some exercises. In the case of software testing, make sure there is some actual testing in the course! Challenge all the people to actively try to make the topic work for them. To really learn something, people need to apply the learned in their own context. Soft skills are important for testing too! Help people develop their soft skills e.g. by letting them present a part of the course and than using the group to give feedback.

What makes a good course great, is a follow up session after the course. Let the attendees try to work with the material in their context and then let them tell how it worked out. As a teacher you’ll learn how the provided material will work out in different contexts, preparing you even better for next courses.

Conclusion

Theory is needed to provide the context for the course. Add stories based on experience to emphasize how the theory can help in real world situations. Let people practice with the provided material, enabling them to apply the material in their own context.

Attended the Testnet testing dojo

DojoSo, the 4th of April I attended my first testing dojo. Fun to see that most people are up for their first time. A large group of people showed up, but we had a relatively small room to work in.

After a very short introduction of Huib Schoots and Peter van Tulder we started testing in groups. The test object was a (not too structured) website. Testing without any specification was harder than I expected. Where to start? What to test? What was the intention by releasing this website? Without asking any of these questions upfront, we started… We had some structure on how to go through the website, but it was a really messy site. So after half an hour of testing all teams came together for a debriefing. People found bugs, but were they bugs?

Before testing another website, we got some leads on how to get focus on what to do. One suggestion was to use SFDEPOT to address different aspects of the software. Luckily the second test object had a clearer scope 🙂 We only got 15 minutes to test this one, so we focussed on a part of the functionality. Though we had more structure this time, I still had trouble in creating structure in what to do. Luckily the partnering provided guidance and in the end I felt we did the right things.

This dojo has opened my eyes on how much I rely on scripted testing and I will need to practice more on my exploratory skills. I had a great evening and hope Testnet will do this more often (hopefully in smaller groups)!