Tag Archives: practice

Test Automation Curriculum

Two things happened to me lately. First, I was trying to find a career tester in the San Diego area that knows at least a little bit about automated testing. It isn’t going well. I’ve reviewed a lot of resumes. all the submitters are career manual testers.

Surely somebody sometime must have wondered if they need to learn more about automation. Elisabeth Hendrickson once asked Do Testers Have to Write Code? They did a survey to figure out what companies were looking for from tester skills. In our case, we aren’t looking for somebody to write the test code, but to write and review the cucumber scenarios. Just the same, even on a light desire level, I was disappointed.

Second, a younger person asked me what he should learn in test automation last week. I had already been contemplating writing this curriculum, so I was resolved to do it. Srini, here it is.

Other people who don’t work with LAMPs, such as .Net environments etc. will probably not appreciate this list. Make your own list on your own blog and put the link in a comment here. I don’t begrudge anybody doing something else. I just don’t want to go there.

I created this curriculum for testers learning test automation. While some addresses how and why, most of the list is about tools that can help create a full solution. Anyway, here is my list in priority order:

  • An open source tool such as Watir-Webdriver or Selenium/Java – do not mess around with the QTP and TestComplete. The cargo cults that buy those tools will expect “anybody can automate”.  With open source tools, you can download your own learning playground and incorporate that with the other products.
    • Learn how to create page objects. Even if you take advantage of a library like WatirMark or Page-Objects, you will have to do some tailoring yourself. I have been working with Selenium/Java so I am developing my skills on that combination now. Either way, you need to know how to work on that in an efficient way. In fact, you can address a lot of the entries in here just be using Cheezy’s book Cucumbers and Cheese (well worth the $15). I swear that I do not get a dime from it or Cheezy’s work, it’s just such a big benefit for anybody learning that I cannot miss the chance to say how good it is.
    • An open source framework such as Cucumber, Cucumber-jvm, or RSpec.
  • Github and Git – there are other good source control tools out there, including subversion. Git is easy to use locally for managing your own practice code. It’s easy go get copies of other people’s public projects onto your own system (how did they do that?). CodeSchool has a free course on git. There is also a nice paper on the differences between git/mercurial and subversion so you can understand the differences.
  • Ant and Maven if you use Java. Most of what I learned was through osmosis, but being able to shoehorn cucumber into your project is good to know.
  • Jenkins or Hudson, CruiseControl, or some other open source continuous integration tool. If you ever work at a place that will be introducing automated testing for the first time, this is great to know how to set it up.
  • Performance testing in JMeter – I think you can find a ruby alternative (BlitzIO or Grinder) but you don’t really need this tool to be in a ruby language. The importance is to learn the different kinds of testing you find under this umbrella (incorrectly) called Performance Testing. The other important skill is creating the right monitors so you can discover where things are bottled up.
  • Owasp‘s ZAProxy – learn how to capture the http calls between your browser or simulator and the server under test. You will learn a lot there. While you are there, download the GoatWeb project where you can learn about security vulnerabilities through practice.
  • Monitoring tools (Splunk or Graylog2) – One way to find the errors that are occurring on the system under test is through logging. Those are deleted nearly every time the server is redeployed. You can monitor those logs and server performance much better through a monitoring server.
  • A true startup is probably not going to hire a newb unless they are cost-control-centered. But if you find you get there are there is no issue tracking, it would be good to know how to set up issue tracking and integrate to your version control and continuous integration server. I’ve tried RedMine and it was fine.

If you see that you think should be on the list that is not there, please add a comment.

Leadership (part 4) – How do I become a leader?

In my last post, I said that I would talk about how to become a leader. I conjoin that subject with my experiences here.

Most of my experience in leadership was in leading the peanut gallery. People actually recognized me as the leader of the cut-ups in high school, enough that a guy in my calculus class told me the substitute teacher wouldn’t let go to the bathroom because he knew that I’d make a scene about it. That’s a horrible way to develop leadership skills because it develops the wrong kinds.

Eventually I stopped that kind of leadership (or reduced it enough that it stopped holding me back in my career). I tried to excel in my “individual contributor” position and was eventually rewarded with being in charge of others. I felt inadequate about “leading” so I read books like the ones from Hyrum Smith (Franklin Quest) and Steven Covey (7 Habits) – they eventually merged their companies.

The problem with reading books is that you don’t get any intentional practice in many of the aspects. They will focus on an area or two. I can remember creating a mission statement, listing my roles in life, and objectives to fulfill those roles. I cannot remember reaching any of those goals, but I definitely had a better attitude. Unfortunately, attitude is only a part of being a leader. I needed more skills (the culmination of education and experience).

I learned a lot  from unintentional experience. Given responsibility, you will eventually be put into situations. The problem with unintentional experience is that it rarely tells you if you made good choices or the best choices – that is something even intentional experience falls short in many situations.  In many cases, nobody was mentoring me to suggest key options from which to choose. There was no plan for what to do next.

I also signed up for any day-long courses offered at my company (big companies have lots of courses on-site to choose from). The problem with short courses is the practice is very limited. After it’s over, I could review the booklet but that eventually was packed in a box or drawer.

I had seen people take longer courses and participate in programs, like University of California at San Diego’s Passport to Leadership program.  That seemed to have a big affect on them with self-assessment, practice, and goals. I never joined it because of the financial commitments that it required. But it looked like something I believed would help me.

Then in 2006, in a reason having nothing to do with leadership (except for the self-improvement part), I joined Toastmasters International to help my speaking skills. There was a club starting at my work place. They were willing to pay the small bill. I didn’t have to go anywhere to do it because the meetings were at my office. All I had to do was show up and try to get better at speaking.

Then I got roped into the leadership track. Somebody asked me to be Sergeant at Arms for the coming period. “No big deal,” he said, “just bring stuff to the meeting and set it up.” He was right, it wasn’t hard. Then I was President, started giving some trainings to the club, and found myself on the Leadership Track.  Why was that significant? Because it is the substance behind the style that I was learning from the Communication Track. The significance is that it is one of the best-value educations for becoming a leader that we could ever get. I put that in bold because it is a significant statement that they back up.

How does Toastmasters prepare us to be leaders? The Leadership Track teaches us the skills through training, projects, and plenty of practice situations.

“The Competent Leadership manual features 10 projects, which you complete while serving in various meeting roles and participating in other club activities such as helping with a newsletter or getting involved with a membership building campaign. An evaluator will give you feedback on each project, helping you to improve.”

Toastmasters gives us an opportunity to practice the skills we learn for leadership. When I go to a job interview, I can talk about leading a team of executives. I can discuss the problems we faced and how it helped us. Without that experience, who is going to trust me to lead? What came first, the chicken or the egg? In this case, it’s both.

Toastmasters gives us guidelines on how to be successful. They know what it takes, which is why they have guidelines and predetermined goals (such as how to become a distinguished club). Their system works if you work the system. Is there room for variation? Yes, of course. Clubs are all different and have variations of needs. However, as long as problems are being addressed, you will achieve success.

Everybody in Toastmasters is a volunteer and has to be treated that way. How is that different from real-life leadership? It is not different at all. As a Software QA Manager, I had as many as 24 people reporting to me. All of them volunteered their best effort. As their manager, I couldn’t make them do anything. In addition, most of the people who I needed things from to be successful did not report to me. I needed support from my boss. I needed cooperation from managers of other departments. I needed cooperation from individuals in other departments. Toastmasters prepares people to ask for things, ask again, and communicate what needs to be done very well.

Toastmasters provides lots of help. They have a formal system for training officers, as well as training the district supporting officers. They have a book to explain every necessary job in Toastmasters from the club on up to the highest position, International President. They have a website that can tell what you do not know or forgot. They have a system of sponsors, mentors, and coaches available for whoever wants one. And they have, at least in District 5 that I am in, over 1000 people to talk to about a problem for free advice. Anybody who fails inside Toastmasters probably refused that help. I do not believe that should ever happen.

“Dave, what is the catch?” you ask. The catch is 2 things. First, it is not instantaneous. It takes time to build up the experience and the trust to get the higher levels of experience. I would say that the fastest that anybody could reasonable get through the entire leadership track is 2 years, maybe 3. The second is that it requires you to do it for no cash pay. Toastmasters can afford to let you be in charge because they need you to do it for free. But where else can you get those four key ingredients to become a leader.

I want to hear about your experiences with becoming a leader too. There are a million ways to do it. Please comment with your story and feedback.

In my next post, I will discuss how you can convince others to join you and participate. Leadership is not an individual sport – others have to play or it won’t happen.