Coding is key to a test automation career: Are you prepared? | TechBeacon (2024)

I've put a lot of time and effort into studying automation development, but I haven't been an automation developer for long. I spent many years laying the groundwork, and now I am putting together a proof of concept for an Appium/Javamobile test automation framework.

The biggest wake-up call for me, a manual testertrying to get into automation, was that automationisn't about relying on learning a single testing tool, as it was in the old days, when Rational Rose, Segue SilkTest, and Mercury Quick Test Pro dominated. Now it's much more difficult. In order to do really well in test automation, youmustlearn how to code.

I am not saying that all QA engineers mustknow how to code. But if you're a manual tester attempting to break into test automation, your time may be better spent learning a programming language than learning the ins and outs of anautomation tool.

I taught myself how to codeand gained employment as an automation developer—and you can too. All it takes isfive difficult steps.

Why learn automation development?

Traditionally, a QA engineer's role has been a non-coding one. As a software quality assurance engineer, yourprimaryrole on the software development team is to be an end-user advocate, seeing the product through the eyes of the customer. You need to use—and abuse—the product just as end users would. You can do thisthrough processes such as exploratory testing, described in Cem Kaner'sTesting Computer Software:

“What are the boundaries expected for a certain input? What happens if you push beyond those boundaries, giving unexpected or illegal responses, just to see how the system under test will behave?”

By automating the regression test suite, you'll have more time to explore the system you're testing and how it behaves.

During April'sLean Coffee for the Ministry of Testing Meetupin Boston, I asked, "How can manual testers looking to move to automation learn how to code?" This quickly turned into another question:ShouldQA engineers learn to code?

Llewellyn Falco, author of The Mob Programming Guidebook, responded, "Everyone should know how to code! It's like reading and writing. You may not have authored a book, but you should know how to read and write."

I agree.When I was in schoolstudying software engineering, my testing was enhanced once I started learning more about the business analyst role, database development, and software development. So here's what to do:

Step 1: Pick a language, any language

It doesn't matter what you pick asyour first programming language:Java, JavaScript, Python, and even Ruby are all good candidatesif you want to break into automated testing. Here's a quick rundown:

  • Selenium WebDriver/Java is a favorite pairing for testing enterprise software, and a good all-around language to know. But note that companies are still transitioning from Java 7 to Java 8, even though the latest versioncame out many years ago.
  • JavaScript pairs nicely with many different JavaScript front-end frameworks, such as VueJS. Protractor was created by Google to testAngularJS apps. Nightwatch.JSand SeleniumJS pairwell with Node.JSand server-side JavaScript. Also try learning E6,the latest versions of JavaScript.
  • With Python, you can quickly hack together things that work.Selenium with Pythonis a lot less verbose.
  • Ruby is another easy-to-learn language. When Ruby on Rails was at its peak, developers used it whenever they wanted to create a simple web app. But there doesn't seem to be as much demand for it in automation anymore.

Step 2: Code, code, code

Not long ago I was an out-of-work software tester without much experience coding. I had some coding experience back in grad school, but that was ten years in the past. So, to get used to coding again, I worked through all of the examples in the free eBookLearning Python the Hard Way. If you need a lot of hand-holding, this is the book for you.

Working with Python alsohelped, since thelanguage has a relatively shorter ramp-up time.Then I purchasedJava for Testers, to ease me into the Java programming language. Anything byThe Evil Tester, himself, Alan Richardson, is gold.

But reading about coding is not enough. You must code! I remember when I first started trying to learn from Richardson's Selenium WebDriver in Java online course. I'd listen to the lectures and watch the videos everywhere—even on trains, planes, and subways. But because I wasn't actually coding along with the instructor, it didn't sinkin.

When you're working through an online course, if the video shows the instructor typing code into IntelliJ, you should be doing the same. In my case, I set up the left half of my screen with the video playing in a browser, while in the righthalf I typed awayand attempted to run the code examples.

If you still needmore hand-holding, consider enrolling in a massiveopen online course (MOOC).Many organizationsofferonline courses that are free or cheap. Here are just a few:

  • edX, part of Mooc.org, describes itself as "offering high-quality courses from the world’s best universities and institutions to learners everywhere."
  • Khan Academy, which "offers practice exercises, instructional videos, and a personalized learning dashboard that empower learners to study at their own pace in and outside of the classroom."
  • Udemy, "a global marketplace for learning and teaching online where students are mastering new skills and achieving their goals by learning from an extensive library of over 45,000 courses taught by expert instructors."

Looking for information on coding in Java? EdX, Harvard, and MIT's MOOCoffer three new introductoryJava courses:

If you are a mobile tester,learning about the inner workings of Android app development will help you figure out how to set up Appium. I also recommend the GoogleAndroid Developer's site, which:

Whilebootcamps won't make you a coder, much of the documentation for open-source tools, languages, and frameworks is available online, as are free online tutorials. It's all just a Google search away.

Step 3:Create aGitHubaccount and explore

If you haven't already, sign up for a GitHub account. GitHub is a magical place where you can examine the latest open-source automation toolsetsand receive instruction and the most up-to-date information from the creators of the tools themselves. They also provide sample tests, so others can learn their toolsets. You'll findtools such as:

  • SeleniumHQ, which has documentation on all the latest bindingsof this number-one GUI automation tool in C#, JavaScript, Java, Ruby, and Python
  • Appium, the Selenium WebDriver for mobile applications
  • Protractor, a Node.JS-based automation tool you can use to help test AngularJS applications
  • REST Assured, theJava-based framework that helps you test RESTfulAPIs

The beauty of GitHub is that as long as you allow the code in your GitHubrepository to be displayed publicly, it is completely free!

Do you have any code samples or projects that you want to include in anonline coding portfolio? Upload them to GitHub and include a link to your account on your résumé. GitHub has an extensive help section on how to create an account and upload your code. You also will learn about how code is processed, from branching to merging to creating pull requests!

Step 4: Write a quick-and-dirty automated test

Now it's time to go public by writing your first automated test on your favorite site and placing the results on GitHub. Once I got a hang of things, I started looking around for things to automate, such as Dave Haeffner'sThe Internet, a practice test sitecreated for beginning automation developers.

Do you have your own automation solution you have created? Share it, and get feedback!

Step 5: Think you know it? Keep practicing.

The most important thing is not to stop practicing to code once you're hired as a test automation engineer. Learning is a never-ending journey.

Whenever I learn something valuable, I comeup with sample code, thenattempt to write a few code walkthroughs, which I placeon my blog.I started off simply, withThe Internetas my test site. Then,after a few more months of work experience, I tried to figure out how to automate a bit of Amazon's site. From there, I started tinkering with API testing, firstwith Apache's HTTP Components, then with Postman, and finally with the JavaREST Assuredlibrary. Currently, I am in the middle of figuring out Appium Desktop, a tool I want to use to explore mobile applications.

To keep yourself motivated to continuously learn, chart your progress in a blog, thenlist it with the Ministry of Testing.

The rest is up to you

I can tell you from firsthand experience that, if you go throughthis process, you're far more likely to be hired as an automation developer. Why? Because you can prove to an employer the most important skill of all: that youare a self-starterwho is willing toteach yourself.

Want to know more? Team up with your peers. If you're in the Boston area, stop by one of the Ministry of Testing'sLean CoffeesI attend, or go to a meetupin your area. Andif you want to bounce around more ideas and best practices, leave me a comment below.

Image credit: Flickr

Keep learning

Coding is key to a test automation career: Are you prepared? | TechBeacon (2024)

FAQs

Is coding important for automation testing? ›

The automation tester must have good coding skills in order to design the test scripts. Self-learning is a good way to get acquainted with these programming languages that can help in designing the automated test scripts.

Can I do automation testing without coding? ›

Teams can move even faster with automated testing that is reliable and requires no coding thanks to codeless test automation. Perfecto Scriptless is our codeless testing solution that allows teams to automate the process of writing test scripts regardless of skill level.

How do I prepare for automation tester? ›

Here are the steps that one should follow while implementing automation testing in general.
  1. Define the goals for automation testing.
  2. Define the scope of automation.
  3. Select the types of automation testing and cases to be performed.
  4. Build test scripts and test suits to check cases.
  5. Execute with automation tools.
Dec 7, 2023

What coding practices should you follow during automation? ›

7 Test Automation Best Practices
  • Decide which test suites to automate. ...
  • Use the right testing tool and framework. ...
  • Keep records of tests for analysis. ...
  • Set up a testing environment. ...
  • Divide and conquer testing efforts. ...
  • Use quality test data. ...
  • Create automated tests that are resistant to changes in the UI.
Apr 3, 2024

How much coding is required for test automation? ›

You can just know the JavaScript-CORE principles some OOP and such and you'll be good for test automation. It really depends on what you mean with "automation tester' - if you mean just writing some assertions, then this would be fine. But if you are going to edit/develop your own framework, more knowledge is required.

Is coding required for testing? ›

As a tester, it's important that you understand what programming code is, and the basics of how it operates. Testers, however, don't need to develop working code. So, while testers need an understanding of code, they don't need to be able to develop working code.

Does QA automation require coding? ›

Coding can be helpful in creating automated tests or performing technical tasks. Many other aspects of QA do not directly involve coding. Effective communication, problem-solving abilities, and a comprehensive understanding of the software development lifecycle are equally crucial for QA professionals.

Is automation testing job hard? ›

In most cases, yes. Test automation is hard to learn. The test automation learning curve can be really steep. The maintenance will be very high, especially with regular software changes that impact the robustness of your test cases.

Is Python required for automation testing? ›

Automated software testing with Python allows optimizing QA resources so the team can devote more time to complex tasks and functionalities that require a manual check.

How to learn coding for automation testing? ›

It doesn't matter what you pick as your first programming language: Java, JavaScript, Python, and even Ruby are all good candidates if you want to break into automated testing. Here's a quick rundown: Selenium WebDriver/Java is a favorite pairing for testing enterprise software, and a good all-around language to know.

How many test cases can be automated in a day? ›

This depends on the complexity of the test cases. You can easily automate 5-6 test cases (with limited complexity) each day. On the other hand, you can automate only 1-2 complex test cases in the same time.

Which programming language is most used in automation testing? ›

The top 3 programming languages for automation testing are Python, Java, and C#. These languages are popular among developers and automation testing companies for their ease of use and wide range of frameworks and libraries available for testing.

Which automation tool does not require coding? ›

Selenium IDE

Selenium IDE is one of the top codeless testing tools that allows you to automate web applications with everything that Selenium offers without needing to write codes. It uses the record & playback feature to support codeless automated testing. Selenium IDE can be extended with plugins.

Does selenium testing require coding? ›

Mastering Selenium requires a solid understanding of Java programming language. Selenium is a powerful tool for automating web browsers, and it is widely used for web application testing.

Is coding required for selenium automation testing? ›

Learning Selenium Automation without any coding knowledge is possible, but it may require more time, effort, and patience. So, take the time to familiarize yourself with the basics and practice what you have learned to become a Selenium expert!

Does an automation engineer require coding? ›

Most senior automation engineers are expected to have the following skills: Fluent in coding languages like JavaScript and Python. At least two years of experience using testing tools like Selenium and Appium. Experience with mobile and web testing.

Top Articles
Latest Posts
Article information

Author: Tyson Zemlak

Last Updated:

Views: 6445

Rating: 4.2 / 5 (63 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Tyson Zemlak

Birthday: 1992-03-17

Address: Apt. 662 96191 Quigley Dam, Kubview, MA 42013

Phone: +441678032891

Job: Community-Services Orchestrator

Hobby: Coffee roasting, Calligraphy, Metalworking, Fashion, Vehicle restoration, Shopping, Photography

Introduction: My name is Tyson Zemlak, I am a excited, light, sparkling, super, open, fair, magnificent person who loves writing and wants to share my knowledge and understanding with you.