Thought Leadership
June 09, 2017
The Polyglot Tester
Arvindraj A
Tags: technology

Who is a Polyglot Tester?

In the context of application development, a polyglot programmer is anyone who is able to use a combination of different programming languages to develop applications. A polyglot programmer is adept in selecting and mixing tools/packages that use different programming languages, to build systems that can perform the intended task.

Now the question is – who is a Polyglot tester?

Limitations of the tool to cater to specific needs of the organization often involved “work arounds” that, more often than not, required manual effort and intervention. With increased adoption of Continuous Testing practices, it is becoming imperative to move towards Zero Touch Test Automation (where no manual intervention is required) and there is an immediate need to move from monolithic test automation tools and architecture to a modular structure. Hence the need for testers to be ready for this transformation.

Polyglot Tester- an example

Let us consider that you are an automation tester who uses a test automation tool, which in turn utilizes vbscript to create the test scripts. Your test execution requires manually creating the required test data before every execution. You have been entrusted with the responsibility of moving towards Zero Touch Test Automation to improve the test efficiency .

You determine that your current test automation tool has limited or no capability to perform the intended functions, however you could find open source alternatives that can help achieve the goals. But the challenge is that these tools use another programming language, say Java. Being a polyglot tester, you decide to use a fake data generator package written in java, and your custom Java program exports the generated data to an excel format that is compatible with your existing test automation data set. You also orchestrate these 2 activities – test data generation and test execution – using a CI tool, say Jenkins. It should be quite evident by now that by acquiring a few additional programming language skills and knowledge on tools, an effective solution can be easily built without reinventing the wheel.

How can you become a Polyglot Tester?

Listed below are a few guidelines that can help you develop your skills as a polyglot tester.

  • Start by learning any language that supports object oriented programming. Learning Java or Python would be a good start, especially given the ecosystems around these tools. There may be a good chance that a package that you require is already built in these programming languages
  • Once you are adept in at least one programming language, understanding and extending the core concepts and learning any other programming language should be fairly straightforward
  • Use shell scripting skills for windows, mac or linux to help script and automate manual tasks, such as setting the environment, copying/renaming/moving files, invoking programs, etc. Task runners, such as Gulp or Grunt, may also be useful in certain scenarios. Using these, along with a CI Tool, should help you to seamlessly manage your testing workflow
  • Learn to use a dependency management system such as maven or gradle for Java, NPM for nodejs, pip for python, etc., which will be extremely useful as you develop your skills.