Monday, June 9, 2014

WHICH IS THE BEST AND EASIEST LANGUAGE TO LEARN FOR SOFTWARE TESTER/TESTING

Which Programming/Scripting Language Software Tester should Learn?

Whenever some one wants to make(or switch) career in automated software testing, following question comes in his mind:
  • Which is the easiest programming /scripting language, a tester can learn quickly?
  • Which language may help a tester to get job quickly?
  • Which language may help a tester to work on multiple testing tools?
  • Which language may help a tester to survive in the job market for a longer term?
  • Which language may help a tester to get best salary package?
  • What are the languages mostly adopted by software(IT) industry for automation testing?
  • Will a QA personal be able to sustain with the languages , (s)he is aware of?
  • Which are the emerging programming/scripting languages for test automation?


Here are the major languages used by different software testing tools(automation):
  1. Java Script
  2. VB Script
  3. Java
  4. C#
  5. Python
  6. Ruby
  7. TCL
  8. Perl
  9. PHP
  10. Objective C
  11. C++
  12. R
  13. Groovy
  14. Clojure
  15. Gosu
  16. Lua
  17. Delphi Script
Let's see the below statistics collected from different community, job portal and blogs:





easiest programming language for software automated testing
Different Scripting/Programming Language used for Software Testing Comparison Chart
So its a tie between "Java" and "VB Script" for the first position ,followed by "C#" and "Python"  for second and third position successively. These stats are purely based on current market trends though every programming language has its own significance and it totally depends on culture , need and situation to adopt that language for test automation. for an example , if a company is using Microsoft .Net Framework package for developing its applications and products so eventually C# with VSTS and MTM will be their first choice for Test Automation, similarly if a company is into Telecom vertical so TCL/Python may be their preferred scripting language for test automation. Moreover, sometimes QA personal has to go with market trends and job availability rather than their own choice and favorite language. Let's see the below stats showing the % of Market Capture and Job Availability language wise:


% Of Market Share of Programming/Scripting Language used by different Automation Tools
% Of Market Share of Programming/Scripting Language used by different Automation Tools





% Of Job Market Share by Different Programming /Scripting Language used for Test Automation
% Of Job Market Share by Different Programming /Scripting Language used for Test Automation




Let's analyze each of the Test Automation Programming /Scripting Language in detail:

Java Script:- Java Script is dynamic server and client side language used to develop web, desktop and Mobile application. Because of its easy syntax and modular approach JS can be embedded easily to a web application. JS can be used with different contemporary automation tools like Selenium, Sahi, Watir, QUnit , Jasmine, Protactor etc.There are plenty of JS online tutorial and course available on internet for free. Codecademy, W3Schools, ALISON, Udacity, Microsoft Virtual Academy(MVA) are few of them. If you open the Devloper Tools(Press F12 in your browser) and Run the following command in Console widow : var str = "Hello World, How are you !";var pos = str.indexOf("are");var count = str.length;console.log(count+pos);window.alert(pos);
You will get output as 17 and 43 i.e. Index of string "are"=17, string length=26 and Total of both the value=17+26=43.

JS is easy and good scripting language for novice to move towards automation testing
JS is easy and good scripting language for novice to move towards automation testing



VB Script:- VB Script is one of the easiest language to learn for a novice tester.With the strong market capture by QTP(UFT) and Test Complete, VB Script is one of the most popular language for software testing.If you have chosen software testing as your career then VB Script is a must language to learn because of large job market captured by QTP(UFT).

JAVA:- Whenever it comes to Automate Web Based Application, Java stands first among all its competitor. Because of its robust OOPs structure and light weight, JAVA is language of millennium.
Here are few reasons why a software tester should use JAVA for Test Automation:
  1. JAVA is being used by most of the Test Automation Tools.
  2. JAVA is one of the most secured programming language.
  3. JAVA is strongly Typed programming language.
  4. JAVA is one of the fasted programming language.
  5. JAVA is cross platform programming language and is used to Test and Automate mobile/web applications.
  6. JAVA has strong support community and forum.
  7. JAVA is most widely language used for software testing and automation.
  8. Most of the IDE like Eclipse...etc. support JAVA libraries.
  9. Last but not the least...:) JAVA has maximum opportunity in the Job Market for Software Tester.
In the recent years languages like Python ,Ruby and other languages are also in demand though JAVA is best in its CLASS and will continue to grow.

The Testing Tools using JAVA are Selenium,Abbot, SOAPUI, Sikuli, Robot Framework ...etc.

C#:- C# is widely used language for software development. With its perfect combination with microsoft .NET framework,C# has also emerged stronger for Automation Framework development.Those were the days when VSTS2008 was not fully featured enabled, Now if we look at the new VSTS2015, there is huge difference since then.Not only because of VSTS Coded UI but also there are many more reasons to use C# for software automation testing.

  1. C# is recommended language if QA team is using MTM/VSTS(Coded UI)/TFS for Test Automation.
  2. C# is one of the best OOPs supported language.
  3. Not only for Web based but also for Windows based/Mobile application, C# is perfect language for Test Automation.
  4. C# supports all kind of Testing i.e. Unit,Functional, Load, Performance,DB ,API and Web Services Testing.
C# supported Testing tools are Selenium, VSTS(Coded UI),AutoComplete, Cucumber, RenoRex, Gauge,Test Studio....etc.

Python:-  Current era is of Big Data and Data Scientist. With the advent of  terms "Machine Learning", "Hadoop", "BI","SIP(Session Initiation Protocol)" and "Web Scraping", Python has become choice for every one, Whether you are a Developer, Administrator, Analyst, QA Analyst or any other IT professional , python has made a significant contribution to each role. Here are few reasons why a software tester should use PYTHON for Test Automation:


  1. Python is one of the easiest language because of its easy syntax and structure.
  2. Python is free and open source scripting language.
  3. Variety of Testing tools,support python to automate Web/UI/API/Load/DB/Performance,Web Service and telecom(protocol) application(s).
  4. Python has rich list of libraries to be  called as per need of situation and application.
Python supported Testing tools are Selenium, Robot Framework, Pytest, Nose, Behave, FitNesse, Lettuce, Automa , SIKULI....etc.

Ruby:- Whenever it comes to automate Web Application with "WATIR" or "CUCUMBER", Ruby stands first among all its competitor language. Ruby is also one of the easiest language from syntax and structure standpoint.

Conclusion:- Whether you would like to learn JAVA,Python,Ruby,C# ,VB Script or any other programming language, its totally your choice though one thing for sure is important over here is , one must have strong grip over a programming language because whatever language is in demand from job /tool perspective if your basic is clear and you know  how to define a Test Automation Framework , you can easily pick and adopt any programming language as per need of Test Automation.

Here is the list of video(s) shared on youtube to get better understanding and comparison among different programming language.


No comments:

Post a Comment