Language to learn to move out of manual testing towards automated/programming

SKA picture SKA · Jul 26, 2010 · Viewed 28k times · Source

I have been working as a manual tester and documentation (Test plans etc.) personnel in a company's software/IT division. I do not have a big programming background but I want learn programming language(s) and tool(s). Hence, I am looking for automated testing tools and programming language(s) to learn which also give me industrial advantage.

Some points to note are:

  1. I need to know which tools are the most common in the industry and languages associated with those tools.
  2. I do not have a lot of time to learn loads of stuff. Hence, I am looking for tools which use languages that are beneficial to learn in case I want to do more programming.
  3. I'd prefer Web based app testing but that is not a constraint.
  4. You can give 2-3 languages as I understand there cannot be one winner.
  5. I have done some QTP which uses VBScript but VBScript is not broadly used. I want to learn a language that had broader base.
  6. Please still give your inputs and ideas even if this question seems really difficult to answer.

Thanks in advance.


EDIT: I think so far I have decided that I will go for:

  1. QTP
  2. Selenium
  3. Test Driven Development Methodologies

I just need to figure out a good programming language that gives me a programmer's edge and is suitable for multiple testing tools (including Selenium). Maybe Python, Ruby or Java?

Answer

Rob Stevenson-Leggett picture Rob Stevenson-Leggett · Jul 26, 2010

Wow this is quite a widesweeping question. I'd say you were in a good position as the industry moves towards a Test Driven Development (or write your tests before your code) model.

First of all you'll want to know about Unit Testing, Continuous Integration and Web Automation.

I'm going to focus on the areas I know (.NET, Java, Javascript, Build automation, Selenium)

  1. In .NET NUnit is probably the most widely used unit testing framework. It is a port (copy of) JUnit in the java world. Most unit testing frameworks are very similar to these in terms of the concepts. So learn one and it won't take you long to pick up the others.

  2. I think reading the above links and having an idea about these concepts will get you on your way. It's probably worth experimenting with Python or Ruby as these have low barriers to entry to mess around with some simple tests.

  3. For web based testing the most well known are probably Selenium and Watin. These allow you to script browsers to perform actions automatically. However, I have come across very few good usage of these and they are very fiddly (you're talking days/weeks of effort) to get set up and useful. Again the concepts behind these are similar whatever framework you use.

    Think I answered 4,5,6 in 1,2,3 :-)

HTH