Toolset for Test Automation Professional

The most often asked question by those who are willing to enter into Test Automation domain is:

Q: What skills a test automation professional should have?

Q: Where to start to develop skills to become a test automation developer?

Q: What tools I should use to automate applications?

There are so many technologies available in the market so it is very easy to get lost. But, don’t get overwhelmed…You can’t be a master of everything. So, the most important question is what you want to achieve?

Your choice of tool will depend on what objective you want to achieve.

Automation testing can be performed on different type of applications:

  1. Desktop application
  2. Web Application
  3. API / Web Services
  4. Mobile Applications

You first need to focus on one set of skill (say automating web applications). Once you develop necessary skills for your chosen interest area, you can go ahead and move on to next domain. By exploring latest automation technologies available in the market, you will be able to have more breadth & depth and choose best available option to automate ANY application.

What should be your action plan?

You can’t learn everything at once. To develop required technical skills you better have a phased plan:

Phase 1: Developing basic programming & automation skills by choosing a language & some automation technology.

Suggested: Java OR Python with Selenium Webdriver.

Note: You can start with Selenium IDE (records clicks and replay) – it is a great tool for complete beginners to have an idea about Selenium. User can record clicks and then export recorded actions as scripts to one of the many languages (python, ruby, Java) and learn from them. Only recommended as an interim step before moving to Selenium Webdriver.

Phase 2: Develop understanding about DevOps and start using some build management tool plus continuos integration tool.

Suggested: Maven, Jenkins

Phase 3: Learn about concepts like TDD, ATDD and BDD. Explore some tool that supports BDD

Suggested: Cucumber

Phase 4: Learn about Web Services & API’s and technologies like XML, JSON, SOAP and start exploring some tool that helps perform API & web services automation

Suggested: REST Assured, Postman, JMockit, WireMock, Groovy, Scala

Note: Groovy and Scala are programming languages & both have some built-in support for XML and JSON and provide various ways for building web services.)

Phase 5: Mobile Application Automation. Learn about technologies behind mobile apps. Learn about mobile operating systems such as Android. At this stage you can also start exploring Apple devices & technologies like iOS, Xcode, Swift.

What you can do as Automation developer?

1. Automate applications that have scenarios with repetitive task. (usually your assigned project.)

2. Create utilities/tools to help automate all repetitive & boring stuff that consumes lots of time & effort during your automation tasks (i.e during your assigned project).

E.g. During my recent project I was needed to analyze & merge 10 different excel data sheets . Each sheet had 30+ tabs & each tab with 30+ data columns. I designed a python script that can grab information about all work sheets available in excel workbook. After determining sheets info, it pulls all column names from all sheets. This script can pull required information within minutes that otherwise would have taken hours.

Caution: When performing such task always keep an eye on ROI (Return on investment). The time you spent on automating is valuable. So, only automate any task that is really requires and provides you benefit in terms of time & money.

3. Improve Automated Testing Efforts

Step 1 – Identify processes/practices that should be improved to allow automation team to work more effectively & efficiently.

Step 2 – Identify approaches that can be used to improve identified problems.

Step 3 – Share your knowledge with the team to be able to see the results of your suggested improvements.

Remember: All the times you must be patient, diligent, and curious, to be successful. 

Toolset for Test Automation Professional:

Programming languages:

Java, Python, VB.NET/C#

Scala, Groovy

Automation Tools:

Supporting both Desktop & Web Application: QTP (Now known as HP Unified Functional Test)

Web Applications: Selenium,

AngularJS applications: Protractor

Performance: jMeter

API / Web Services: SOAPUI, SOATest, REST Assured (Java Library), Postman, JMockit,WireMock

Behavior Driven Development Tools: 

Cucumber, JBehave, Serenity

Mobile Automation Tools:

Appium, Espresso, XCUITest, Perfecto, SeeTest

Mobile Apps Background:

Apple: iOS, Xcode

Android: Android OS ,Android Studio

Popular Automation Frameworks:

Robot framework, Serenity, RedwoodHQ, Sahi, Galen framework, Gauge

Test bench tools: JIRA, Zephyr

Version Control: Git, GitHub, BitBucket

Unit testing frameworks/tools:  JUnit, TestNG


Concepts/Technologies:

There are also some basic concepts/technologies that are MUST to know for any automation developer:

HTML – Defines web page contents. Learn about HTML structure, page elements, DOM, Tags and attributes

CSS – Responsible for Look & Feel of the web page, Learn about classes and how it specify element size, position, colour, borders, etc.

JavaScript – A popular scripting language.

Bootstrap – A popular HTML, CSS and JavaScript framework for developing responsive websites. You can download it for free.

XML / JSON – Used for storing and transporting data.

SOAP / REST – SOAP uses services interfaces to expose the business logic. REST uses URI to expose business logic.

DevOps – Set of practices that emphasize on the collaboration and communication of everyone involved in software development.

Browser Developer Tools – Developer tools offered by Firefix, Chrome & IE that help identify page locators.

Design Patterns – Design patterns such as Page Object Model (POM), Page Factory, Screenplay, Observer, MVC, DSL, Actors.

Virtualization – This is about creating virtual version of anything. Learn about virtualization and how it can help in test automation.

Agile Development & Management Practices – Get familiar with Agile methodology and know how it fits in with test Automation.

Regular Expressions  – Learn to compose and analyze regex patterns. By using regular expressions, you can perform certain tasks very easily that will otherwise require lots of coding.


Recommended Books:

Java: A Beginner’s Guide by Herbert Schildt

Selenium Testing Tools Cookbook by Unmesh Gundecha

BDD in Action by John Ferguson Smart

Cucumber Cookbook by Shankar Garg, Packt Publishing

Automate the boring Stuff with Python by Al Sweigart (https://automatetheboringstuff.com/)

Clean Code by Robert Cecil Martin


Additional Resources:

https://en.wikipedia.org/wiki/Comparison_of_GUI_testing_tools

http://www.techbeamers.com/seven-steps-successful-test-automation-developer/

Article written by

  1. Saran
    Saran at | | Reply

    An excellent article, full of meaningful information, well organised and very useful!
    Thank you so much for sharing it. Appreciate your efforts and passion for technology! Keep it up:)

Please comment with your real name using good manners.

Leave a Reply