The Certified Agile Tester exam

ExamI received some questions about the Certified Agile Tester exam and decided to answer them in a blog post, so that more people could benefit from this. The course will prepare you for all the parts of the exam, but if you will pass will depend on a lot of factors. At the moment of writing, the exam is available in English and in German. You must be able to answer the questions in these languages too. For the normal courses it is no problem to have some spelling or grammar errors as long as the correctors can understand what you mean, but the demands are higher for the train-the-trainer courses.

Theory

i have some questions about the nature of the examination for CAT as the description is pretty vague . What does an open questions exam mean exactly? Can you detail it a bit ? Like how many questions in the 3h, what s the general scope of the questions ? How your knowledge of written English language affects your mark(and your ability to express yourself in English for non native English speakers) ? Maybe an example of similar question to one at the exam?

The theoretical part of the exam consists of 10 open questions, directly related to the contents of the course and 3 scenarios that also have a couple of questions (this number varies). During the course you will get example questions that can be discussed with the class. Giving an example of a scenario is quite hard, but the open questions could look like:

“Name 1 statement from the agile manifesto and describe how it affects the testers in an agile team”

You will then be awarded four points for an answer containing one of the statements of the manifesto and at least three explanations of the effect on testers.

Practice

Second part of the examination aka a practical section where the examinee’s testing skills are put to the test, how exactly is that done ? There are 100 ways to test practical knowledge in my mind , how exactly it is done here ? Again maybe you can give a theoretical example in the style of the exam.

The practical part consists of testing a website which is described by several user stories. You act as if you are the tester in a team and start working on planning your time, deciding what and how to test followed by actually testing the website. The increments to the website can be deployed, so you will see some bug fixes and some new bugs throughout the exam. Note that you have to write down a lot, to give the corrector a good impression on what you planned to do, what you actually did and why you did or did not do certain things. During the course we will work on a website too, this will prepare you for the exam.

Focus

The certification is focus on the Scrum “flavor” of agile development or it s general including Extreme Programming ,Crystal etc? I m asking mostly because from what i ve read already some of the “flavors” (in this case Extreme Programming) diminish the role of the professional tester to the point that it s just a hat the developers wear at some points in a iteration.

The main focus of the course is on the Scrum flavor. We do talk a bit about some other flavors and some of the questions in the theoretical part can deal with another flavor than Scrum. By the way, I do not agree that with Extreme Programming the professional testing is just a hat the developers wear. Never completely rely on the books you read, in practice you will see more use for testers!

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.