Do really testers need to learn programming languages? Our job is to test, test, and test. There is no place for testers where they can write code, debug, and unit test the code. But it is not completely true. Testing is an earth where manual testing is an ocean; rest of the world is occupied by other types of testing where the programming knowledge is required.
Let me explain with the statistics. I searched with two terms in indeed.com: tester and tester with programming. Below screenshot is for the keyword tester where you can see there are 17378 jobs got listed with the salary estimate up to $120,000+ in United States.
Here is the catch. I searched with the second term: tester with programming where you can see there are only 2093 jobs listed but if you notice the salary estimate it is $140,000+ in United States.
It is not just about the salary that I am talking, testers with development skills have more attention and it will get added more value to your resume. In this article, you are to going to learn must know programming languages for software testers.
Long ago, not so long ago (about 15 years), there was a craze about C programming language. It was the stint, where the state governments of India started introducing Computer subject in the education field. And there were subjects about C, C++, Database, HTML and Java. Still I can smell the aroma of my computer books as fresh as apple. <HTML></HTML>, printf, system.out.println was the famous code snippets of all time.
Whatever you learnt, it was the basics and now it got faded out when you joined your first company as a software tester. If you are a developer, still you will be writing the logics (this article is not applicable to you).
What manual or systems testers do is, execute the test steps which are mentioned in the test plan and enter the results. There is no coding involved in manual testing unless testers are creating any productivity improvement tools.
What about other types of testing?
It is clear that manual testers have less or no footprint in coding or scripting. But other types of testers such as test automation engineers, performance testers, and security testers must have to write scripting or coding to test the software.
Those specialized testing service requires programming knowledge to validate the functional and non-functional aspects of the system. E.g. HP Unified Functional Tester (formerly known as QuickTest Pro) uses VB Script (by default), HP LoadRunner uses C like programming language, and Apache JMeter uses Java and so on. I recommend the following languages which are must know to any tester. There is no particular order I followed in below list.
Microsoft VB Script or VBA
VB Script or Excel VBA is very easy to learn where you can develop productivity tools quickly. All you need is an idea (where there is a need, there is an idea – quote from the animated movie Robots (2005)) to implement to save the effort and expedite the process.
Test Automation Engineers must know VB Script language to work with HP Unified Functional Testing. It helps you to automate mobile apps, GUI, and APIs.
If you are going-to-be a performance tester, it is time to start searching your school books to refresh # include <stdio.h> code snippets. C like programming language is must to know in performance testing arena. Mostly you would be working on HP products like HP LoadRunner, Performance Center, and StormRunner.
Open Source, Robust, Portability and so on. For any testers, it is essential to learn at least one open source tool and commercial tool. If you are still working on HP LoadRunner, it is time to learn Apache JMeter which uses Java.
For scripting in JMeter, it is must to know Java language. Not just JMeter, if you are working on web services performance testing using CA DevTest (formerly known as CA LISA or iTKO LISA), it is good to know about Java language.
Python is a widely used high-level programming language. You can develop a tool by writing couple of line of codes, instead Java or C++ might takes more number of lines. It supports object-oriented, imperative, and procedural styles. If you are planning to get hired by Apple, Google like companies, it is must to know Python language.
Without test data, it is not possible to test any code. SQL queries help us to extract the information that we want in a fast and reliable way from the complex databases. Especially if you are working ETL (Extract, Transform, and Load) testing, it is must to know about SQL queries where you need to extract data from multiple databases. Also, in performance testing as well, you need to validate the database records before and after test execution.
Above list is just my opinion, there is no hard and fast rule to learn only above languages. From my experience, above list has majority presence in software testing. Also, there is no harm in learning programming languages even if you are doing manual testing. If you start developing simple tools or macros, it will create interest within you and motivates you to learn new stuffs.
Happy Learning, Coding, and Testing!
If you like my article, please do share in your favorite social media. Please do not forget to subscribe to my weekly newsletter, it is FREE.