Saturday, September 3, 2011

Testing Training - How I train professionals?

Ever since I started my career in software testing, I have been asked to give training sessions on testing topics. The topics on which I have trained people include basics of software testing, writing correct and re-usable test cases, rapid test execution, bug tracking systems and defect management to test automation approaches, performance testing, system security testing and test methodologies. 

I do have a couple of advantages. First, two years experience in giving software training during my initial career. Second, I have always been keenly interested in how people learn (probably because of 6 teachers in my family, including my mother). I am life-long student of the psychology of learning.
Let me explain the approach I use during training. This is both for your benefit and my benefit. Your may benefit from these tips by increased recall of the participants after the session which leads to more application of the training material in projects. I will benefit by looking up my tips to ensure that I continue to follow them and build them further.

1. Know your topic
This is most important. You should know your topic really well. Not just a little more than the participants, but many times more. Why? In order for learning to take place, the participant has to believe in the superior knowledge of the trainer. For example, let us say that you are training on creating automated test scripts. You have done this before using a functional test automation tool. Someone in your class asks about parameterization and you are stuck. What will happen? What you say from that point onwards would not be credible. Therefore, give training only on topics that you know inside out.

2. Plan your training session
You should know the objectives that the training session should achieve. This information is available from the sponsor of the training. Also, if you know the participants, you can find out their current knowledge level and their expectations from the session. If you don't know the participants in advance, you should spend some time at the beginning of the training session to find this information. For example, if you are training on system security, the participants need to know the basic security concepts like information integrity, information confidentiality and information availability. The training session should cover the material required to increase the participants knowledge from the current state to the desired state.

3. Create your training material
Once you are clear on the objectives of the training, the next step is to design the sub-topics and training material. For example, if you would be training on writing test cases, you should cover the inputs to the test cases (requirements documentation, design documentation, prior test cases, test case formats etc.) and tips on how to write test cases (with all scenarios, pre-requisites, test steps and expected results). The training material can include practical examples of good test cases.
One caveat: The training material should not be too lengthy or cluttered. The main focus should be on the participants understanding the topic well. They can always look up the references if they need more details later.

4. Starting the training session
For learning to take place, the participants should be engaged in the training session. A useful way to do this is to explain the objectives of the training session in terms of what they already know and how the training will help them work in a better way. For example, if training on bug tracking systems, the objective is to use the bug tracking system more efficiently, you could mention that you will share tips on using the bug fields correctly and setting up email notifications for more efficiency.

5. Treat the topic logically
If you plan your training session well, you would have identified the logical sequence of the sub-topics. Answer questions from participants as required but stay on course. For example, if training on performance testing, the logical sequence for you may be creating the automated test scripts, parameterization and correlation, modeling the test, test execution and analyzing the results. If you have moved to test modeling and you get a question on parameterization, answer it quickly and then say you are moving back to test modeling. Also, explain any new concept or term with more than one example as soon as you introduce it.

6. Make the session interactive
People like sessions during which they can ask a question any time. If the question is related to the training session, you should answer it. In fact, you should always pause for questions on the conclusion of a sub-topic. If a question is not directly related, you could park it. For example, if you are training on functional test automation approach and someone asks you which tool is best for automated testing, you could say that it is not directly related and you would take it offline later. You always need to be respectful of the participants' time that they have chosen to spend listening to you.
One trick I use to keep my session interactive is to pretend that a term or word has slipped my mind. This forces people to think and they come back with suggestions energetically.

7. Summarize the training session
After completing the session and answering questions, be sure to summarize the main points in the training session. The material covered must be linked to the objectives of the training session. For example, if you trained others on object repositories, you could say that by now the participants should have awareness of the types of object repositories and they should be able to make an informed decision to use the best type in their project.

8. Finishing up
Spend a little more time sharing the training material, providing further references and providing a contact to answer questions later on. Also, reiterate the expectation from participants now they attended the training session.

Well, these were but some of the guidelines I use when training others. Your training session should be more productive if you use the above. What do you think is most important in making a training session successful?


  1. As always a very interesting read, Inder. I fully agree on your guidelines. In my experience, there are three things you need to know: your topic, your participants and how to create the connection between the first two. Asking your participants what they expect from the training will help you plan and deliver the right topics. Also, I always encourage participants to ask lots of questions and provide wishes or feedback throughout the training. Usually, more references and further reading can be given to participants who request it. I will also give out my contact information and let participants get back later with any questions that might arise after the training, i.e. when they start to apply the things I taught them in their real work.

  2. My friend, it seems that you are close to Software Testing trainer "nirvana". I can offer one more tip. Build more suspense and urgency into the session. So that the participants are eager to know the next words coming from you. Such a situation can be achieved by having fabulous knowledge of the topic and really connecting with the participants.

  3. Wow! very nice information. i was searching article like this.


  4. Nice one, Inder. Software testing trainer nirvana is definitely the place to be. :-) Building suspense and urgency is great advice. I have experimented a little with varying the teaching style and tone during the training sessions. Also, sometimes doing or saying something a bit unexpected can also help keep the participants' attention.

  5. That is good, Freddie. However, executing a training session need not be hard work. I like to get into the "zone". In this state, my mind starts buzzing with all the things that I want to share with the participants.
    I remember one session I did on computer security. Got into the zone and did not notice that the session had taken one hour over. The good thing was that at the end of the session, each and every participant told me that they would never forget the computer security concepts in life. A year after this session, I received a message from one of the participants that he had attended this session, never forgot about it and now his organization needs to organize a series of such training sessions taken by me :)

  6. Yes, being in the zone is a great feeling. When it happens, you can tell your training session covers a topic which makes you engaged and excited. Your enthusiasm will come across to the participants, who are much more likely to remember your session afterwards. Sounds like you did a great job on the computer security training. Now the reward comes to you in the form of happy participants who recommend your training to other people. That's the most honest kind of recommendation you can ever receive.

  7. Thank you, Freddy. I also look forward to conducting such memorable sessions. Its a great feeling indeed.

  8. @Inder P Singh

    Hello Sir

    Actually sir i need your help !

    I have got 1.5 Years exp as a manual Testing,

    but still I'm getting salary only 15K PM.

    Can you suggest me should i switch to

    Automation or continue as Manual Testing.

    just in dilemma.....even can't think what to do

    or what

    not to do ?

    Please Help !

    Pratap Singh 9803398196