Take the 2-minute tour ×
Software Quality Assurance & Testing Stack Exchange is a question and answer site for software quality control experts, automation engineers, and software testers. It's 100% free, no registration required.

I currently work at an ad agency as a Manual QA. I originally came in to act on the business side but kind of 'fell in to' the job.

I do not have a programming background but I am very interested in automated QA. My questions are:

1.) Having no knowledge of programming languages, which is the strongest language for automated QA?

2.) I have some understanding of Selenium but I'm not sure which suite to use. Should I be looking to use Web Driver?

3.) I understand the concept of creating scripts to perform tasks, but I've read re-creating my manual tests as scripts isn't the direction I should be headed. What types of tasks should I be looking at to automate?

4.) Are there additional tools outside of scripting that are used in the automated QA process?

If anyone has any other resources or information I can use to educate myself I would gladly appreciate it.

share|improve this question
    
Please check question sqa.stackexchange.com/questions/6095/…. This will provide pointers to get started. –  Siva Jul 6 at 8:57
add comment

7 Answers 7

1.) Having no knowledge of programming languages, which is the strongest language for automated QA?

In general nobody can answer this question. It depends on what you want to auomate and what tool or framework you use for that. Like B. Berndsen says, if you want to use Selenium 2 / WebDriver to develop GUI tests, I also advise Java. But other languages are supported too.

2.) I have some understanding of Selenium but I'm not sure which suite to use. Should I be looking to use Web Driver?

If you want to create GUI tests for web applications Selenium 2 / WebDriver is the right choise. It is open source, has a detailed documentation and do not need much programming skills.

3.) I understand the concept of creating scripts to perform tasks, but I've read re-creating my manual tests as scripts isn't the direction I should be headed. What types of tasks should I be looking at to automate?

You should automate manual tests. First of all automate the regression tests. You execute them over and over again. Automate them will useful in the long term.

4.) Are there additional tools outside of scripting that are used in the automated QA process?

For different types of testing exists different tools. Selenium 2 / WebDriver is for testing the GUI of web applications. For stress or performance tests exists JMeter. But this is just an example. Reflect what are the important things to test, find a tool and then try to automate them.

If you decide to start with Selenium 2 / WebDriver pay attention to the basics of the programming language you choise. Not more! After that write some simple unit tests with a framework, like JUnit for Java. If you did that create your first tests with Selenium 2 / WebDriver.

Here are some helpful links:

You should also trial Selenium IDE to understand what Selenium can. It is just a Firefox plugin and is easy to understand.

share|improve this answer
    
I strongly disagree with "nobody can answer this question". This question is asked all the time, and it is hard to answer only if your experience in languages is limited. If you have first-hand experience in dozen languages, you can see beyond trivial differences in syntax. Then, power of language like Python over Java is obvious. To expand your programming horizons beyond Java, read articles like (paulgraham.com/avg.html)[beating the averages] about power of higher languages like Lisp and Python. –  Peter Masiar Jul 9 at 17:31
add comment

I have to disagree with Twaldigas on point three:

3.) I understand the concept of creating scripts to perform tasks, but I've read re-creating my manual tests as scripts isn't the direction I should be headed. What types of tasks should I be looking at to automate?

You should automate manual tests. First of all automate the regression tests. You execute them over and over again. Automate them will useful in the long term

It depends on your manual tests - often manual tests are not good matches for automation and a manual process will not necessarily translate well to automation.

The way I handle automation is to look not at the manual test itself but at the goal of the manual test. The goal is what I may want to automate, not necessarily the steps.

For example, if my manual test involves checking a printout to ensure that the correct data is displayed and the layout is good, I'm not going to automate the layout check because that can really only be accomplished through automation by an image comparison and those, even with fuzzing, are far too likely to report problems that don't exist. Instead of printing, I'll print to file in a format I can work with, and run a text compare against a baseline. This isn't something I'd do manually, but it works very well as an automated test.

Simply put, computers are very good at doing a lot of data checks very quickly. Automation should focus on that. Humans are very good at pattern-matching and deciding whether a particular process is a pain to work with or not. Manual testing should focus on that.

If you've worked solely as a manual tester, there's a good chance your tests are a mix of both types, along with a mixture of priorities and levels of value (humans are versatile. Computers, not so much).

For resources, I'm going to give you my standard list:

  • Joe Strazzere's site, All Things Quality. He covers a lot of questions relating to automation as well as general testing matters.
  • The Ministry of Testing. They have a massive resource list as well as a phenomenal listing of testing blogs and multiple other goodies.
share|improve this answer
add comment

Been the manual QA, moved to automation over 15 years ago. Can now code in Java, C#, C, Python, etc, etc... written automation tests in more tools/languages than I care to remember.

Trust me when I say learn Python and WebDriver. You will be productive with this combination faster than any other, and since you are learning as you go, your employer will really appreciate you not wasting the money they give you. Get productive and then go back and learn more languages - never stop learning! You will also appreciate it later when you can easily teach someone else Python/Webdriver to be your helper.

Besides, the expressiveness of Python/Webdriver allows you to write lines like:

  test_passes = True if "My text" in webdriver.find_element_by_tag_name('html') else False

which are easy to understand even without comments - which you will need lots of.

share|improve this answer
add comment

I would start learning Java. The reason for that is that most Selenium/Webdriver lessons and books are written with Java in mind. That said, there are some really good guides and tools for Selenium and Python(holmium.core is a really nice framework to build robust automation suites with Webdriver). I'm sure there are tools and guides for other langues as well, but to my knowledge Java is a first class citizen when it come to automation using Slenium/Webdriver Besides the actual language you should familiarize yourself with unit testing frameworks such as JUnit as these are often used as test runners in UI automation suites as well. The other thing is to learn about the DOM and how to interact with it.

share|improve this answer
add comment

I found that Microsoft`s Visual studio really easy to get into its automation tools.

Started with the simplest of them, Web Performance and Load tests. These are really easy to get your fingers arround and there are plenty resources/tutorials to help you on your journey.

After I got comfy with these I went to CodedUI and by trial and error for a couple of months things started to pay off and I began, baby-steps, to get the hang of it.

Of course, Selenium is another entry level tool for most people.

share|improve this answer
add comment
  1. Skill up to JAVA - Head first java is an excellent option
  2. Move onto Selenium Webdriver
  3. Some resources to help you:

    jroller.com/selenium/#tutorial

    university.utest.com/selenium-basics-part-1-how-to-set-up-selenium

    qaselenium.blogspot.in

    software-testing-tutorials-automation.blogspot.in

    selenium143.blogspot.in

share|improve this answer
add comment

OP: Try Python for afternoon, and you will see how much more productive you will be in Python than in Java. Especially if you don't have comp science education.

Java is popular because it is "standard" - it does not mean it is a good fit for programmer, especially for beginner.

To answer your questions:

1.) Having no knowledge of programming languages, which is the strongest language for automated QA?

You mix two different problems: how to learn programming, and how to automate QA.

Python is widely considered as the best language for beginners or for experts in something else, who just need a language to write simple scripts to do some data manipulation. Only later, when you are concerned about performance issues, or being compatible with other systems, you should start thinking about which exactly language you should use.

Java is widespread and popular, but it does not mean it is optimal for QA. Also, programmers who did not learned Java as first and only language, routinely learn other languages as needed. Or as option, you may find position where Python for QA is OK - QA test might (and sometimes are) written in different language than main application. Main app might require specific language for performance or compatibility. Tests only require web automation, which means Selenium. Using different languages is debated often, ie: Selenium - advantages and disadvantages of using Python vs C# Python is very strong for QA testing.

It is funny how such simple question (language selection) will evoke strong emotions. One reason is that language you use shapes the way you think (and program), and this is also reason why this answer will be downvoted by people who want to protect they way of thinking/programming as limited to Java. Happens on forums all the time. See also Linguistic relativity - how language influences cognitive process.

2.) I have some understanding of Selenium but I'm not sure which suite to use. Should I be looking to use Web Driver?

Yes, but it will be few months later, when you will be competent programmer in language of your choice.

3.) I understand the concept of creating scripts to perform tasks,...

Scripts are programs. Just people who are used to "bondage and discipline" languages like Java, consider programming in languages which do not require such rigorous discipline (Python, perl, shell etc) something less than real programming, and call it "scripts". It makes no sense, test scripts are just programs.

You automate task which are most effective (best bang for the time spend writing them).

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.