7

I want to become a test automation engineer in the future. The thing that is concerning me is this: I have always thought that test automation is using record-playback to test different application. But when I look at job-posts, nearly all of them require programming skills. Why is this?

An example of a job-post (one of many, many, many who are the same).

Test Automation Engineer:

Responsible for authoring automated test suites.

Test Automation using C# and Selenium Webdriver (Not Selenium IDE) / Sikuli

Service layer testing using C# and one of NUnit, xUnit, etc. Familiarity with Moq a plus.

Backend SOAP XML using SOAP UI

Please Note: The QA Automation Engineer will author C# code (automation is not record and playback).

This is very scary to me. I am a manual tester wanting to become an automation engineer. Any tips?

6

Recording tests often leads to hard to maintain tests, therefore most experienced testers prefer hand coding automated tests over recording.

Automated tests often cover the same area multiple times, in order to setup data, or for example navigation. When a central part of the application changes this could result in multiple tests failing, all these tests need to be re-recorded or manual changed. Large applications could have thousands of automated test cases.

It is therefore, important that the test tool/framework supports reusability of steps, any duplicated steps should be centralised. Because of this step reuse and repeatability of steps often the frameworks introduce an API around one or more programming languages.

Recording tests can be a great time saver for setting up a test for new functionality since most recording tools have the ability to export the test to code. The recorded tool will find most control selectors (unique identification of objects) for you. Afterwards, you can remove the duplication and clean up the test so it becomes more maintainable.

Another big plus is that developers can often run and update tests from their IDE, when changing functionality they can run the tests to verify they did not break anything or change the identifiers in the test without the need for an recording tool or a tester.

Why do you need testers then? They have a different view on the world on how and what should be tested. Mainly you need them to make sure the right things get tested. Also I think they are less prone to taking shortcuts and have a love for testing in general, combining developers and testers in a team to create test coverage for all new functionality is dream come true.

The answer relates to this question, why do you need development skills for testing jobs: Can someone clear-out these job posts for me once and for all?

  • Thank you, very good answer. What programming language do you use, and with what open source tool? Is Selenium with java-programming and page-object pattern a good skill to have? – Smile Mar 3 '15 at 18:01
  • Depending on the job and tool I have used multiple languages: Java, C#, Python, Ruby and JavaScript. With the Selenium stack its also very important to have basic web development skills, look at the web course at codecademy.com/tracks/web . Learning any programming language will be enough for starters, most language are very similar in concept, just not in grammar. Unless you want to setup end-2-end testing frameworks from scratch including things as continuous delivery systems, the basic principles will be enough. – Niels van Reijmersdal Mar 3 '15 at 18:10
  • What tool have you used Java with? What tool have you used C# with? And so on. I am very eager to get information from professionals in the testing field like yourself. Thank you for your time. I will definitely look in to codeacademy. – Smile Mar 3 '15 at 18:34
  • I am currently working on a project testing a desktop application using MS Coded UI with C# and VB.net, previously I have used Java for a web-application with Cucumber and Selenium. Python I used for load testing an API with FunkLoad. For the web-development future I would bet on JavaScript, have a look at webdriver.io which combines Selenium and JS. Most front-ends are written in JS and with the uprise of Node.JS the backend is also becoming JS. Modern webapps like Trello are 100% JS: blog.fogcreek.com/the-trello-tech-stack I expect their tests to also be in JS :) – Niels van Reijmersdal Mar 3 '15 at 18:56
  • 1
    Yes, I write small "tools" for when I need something. These are shell scripts to do repetitive tasks, build-tools for the continuous integration server and up-to a full blown program to simplify my time-tracking, depending on the complexity and the tool lifetime I write it TDD or not. As a good tester I want to understand developers, thus I sometimes want to develop something relative simple. – Niels van Reijmersdal Mar 4 '15 at 14:57
3

Test Automation is an extremely broad subject. It doesn't just mean performing regression testing or load testing with a specific tool, although that's often what employers want (it's easy to identify). The ability to create specific programmatic solutions to help you test is hugely valuable.

Over the years automation tool vendors have tried to make the market bigger (create more sales) by lowering the barrier to entry for those tools. One of the ways they did this was through record and playback features.

Bret Pettichord (who co-authored Lessons Learned in Software Testing), gives a fascinating background on record and playback in his Keynote address is this video. He talks about how the Selenium group created the IDE because they wanted to be popular knowing it was a terrible product. Anyways it's definitely worth watching.

This question is very similar to another I answered: https://sqa.stackexchange.com/a/12322/1455. Being a skilled and effective technical investigator

  • Thank you, very good answer. What programming language do you use, and with what open source tool? Is Selenium with java-programming and page-object pattern a good skill to have? – Smile Mar 3 '15 at 18:01
  • I use Ruby with Selenium. There are lots of free sources for learning Ruby like learncodethehardway.org/ruby, CodeCademy, etc. Also check out the Selenium Bootcamp: saucelabs.com/resources/selenium-bootcamp/chapter-1-get-started – Chris Kenst Mar 3 '15 at 18:03
  • Thank you very much Chris. How do you see your future as a Ruby developer in Selenium, and do you like what you do? – Smile Mar 3 '15 at 18:08
1

record-playback is extremely limited - in example, if you recorded today's date, how you will run your test tomorrow?

Good test can detect different situations and react accordingly - it is way beyond record-playback. So, good test are programs.

A tip for you: seems that many manual testers can feel the inevitable change to increase use of automated testing (NOT replacing manual testing). We have at least 3 such question every week, check previous answers.

  • This is not a thread about test-automation replacing manual testing. – Smile Mar 3 '15 at 17:22
1

All vendor test automation tools have record and playback components.

These components are probably being used more for marketing the automation tools for manual testers than for test automation.

When a manual tester starts working on test automation, he looks first into shortcuts that will make him effective ASAP.

And record and play modules provide the illusion of a shortcut.

But as soon as the tester records a few scripts and use them for a little while, he will realize how limited and ineffective is record and play in general.

I had a conversation with a colleague recently on exactly this topic.

See it detailed on this link: http://test-able.blogspot.com/2015/08/from-record-playback-to-automation-code.html

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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