When we think of test automation , there are tons of options that comes up and few of them like selenium, UFT , protractor , Cypress etc are popular.

So when we takes up test automation responsibility how will you tackle below challenges?

  • On what basis a tool and language is selected. ?

  • What will be the better option to use for UI testing ? Selenium ? Protractor ? Cypress ? Or any other, please provide the reason.

  • What will be the better option for API testing ? Robotframework, rest assured , postman or anyother? What would be the reason

  • What makes selenium-java , Selenium-python etc different , is the
    language opted depends solely on ones expertise with the language ?

3 Answers 3


I don't think there is one universal approach to tool selection, let alone to tool selection for test automation.

There are many areas and questions you need to consider before going for a particulat tool or set of tools:

  • How mature is the test tool? Is it available in a stable version, or is it still under heavy development?
  • How well can you use it? How well other testers can use it? If it's a great tool but nobody has an experience with it, it's probably not the best option since you and your team would spend additional time and money on learning the tool.
  • How big a community is there around the tool? The more people use the tool, the more support you can get when something doesn't work the way you expect. Some obscure tools will probably not be maintained much, so if there are some bugs, and there almost certainly are some, it'll be hard to get them repaired.
  • How much does it cost? Not all the tools are for free, do you have a budget for it?
  • How well can the tool work with your product? Some products might be specific and they need specific tools, sometimes even created in-house. Can you try out the tool first and decide later?
  • What is the future plan for the tool? Is it still widely used or do you see than other tools have been replacing it? You don't want to end up with something that nobody uses in half a year.

There're more and more questions, but if there's something you might take from my post, it's the fact that you should try out the tool. Give yourself some time to actually use the tool on a real project, ask other testers to use it as well. Then talk about how valuable the tool is to you and your project. Then you should have enough information for making a good decision.

  • Hi Could you just explain if there is any difference between using selenium-java,selenium-python etc
    – PDHide
    Commented Nov 6, 2019 at 11:41
  • 1
    @PDHide: I don't have much experience with Java (apart from having tested Java web applications). I've used Python in combination with Selenium and also Python, Robot Framework and Selenium. For me, it was more about the speed with which I can learn Python vs. Java. Java is more robust, but you'll most likely spend more time learning the language to a level where you can be effective with it. Since I want to be focused on testing and not playing around with a programming language, this was a decision I made.
    – pavelsaman
    Commented Nov 6, 2019 at 20:56

I don't think there is one universal approach to tool selection..

That is correct! I would like to explain which experience we made in our company.

Regarding the challenges:

  • Language: In our company we had e.g.business department, development center and e.g. some kind of testing centers for e.g. different departments. The problem is, that within the projects more than hundreds of people are working with the systems. For example, our development team was working with Saucelabs, and we as testing team, we unfortuantely had low budget for testing tools. so we firstly checked which tools the development team was using. We found out that they used Saucelabs. And we also got the information that Saucelabs is adaptable with Selenium, where Java as main programming language was used. So we decided to adapt our needs with the needs of the development team. And we used as common language Java. We had also the luck that the second testing center shifted to Selenium Java and moved away from HP ALM where UFT is used. In case that you are also working with hundreds of people (our company has a size more than >10.000 people) try at least to adapt the language. Sometimes you can transfer the test cases from one tool to another or at least made some low changes in test procedure.
  • Check the testers and company needs: In our case we mainly saw automated testing as a good help e.g. for doing the first step (e.g. SmokeTests). But as testers from the business department we also tested with exploratory testing methods. So here, no automation was helpful. This really depends on your testing requirements, e.g. if you just want to test layouts or smoke test, hence I would probably not decide for a costly testing tool. But you should also consider, whether this is just a "small" website where no future developing plans are given. Or it is really a complex system (website, app, connected car related topics etc.).
  • Future usage: For us it was also important using a tool, where the test cases e.g. can be transformed from tool A to tool B. With HP ALM UFT we made the lesson, that the testcases were written in UFT and there was no chance to transfer them e.g. in selenium or in saucelabs. So we had to write the test cases again, and this was a big challenge! I personaly would also try to made the decision for one common programming language like Java (or python)

This were the lessons which we made...hope it helps in your case.


First, determine the business objective

In order to answer the questions about what to use, first determine the business objectives such as:

  • What speed is needed for deploying changes ?
  • What is the cost of automation, especially people ?
  • What is the future budget for Quality Assurance ?
  • How fragile is the application code ?
  • What is the revenue from products being automated ?

At the end of the day

Testing is about adding value to the business in terms that are relevant to them

Writing tests is a means not an end

  • Of course there may be to and fro, i.e. conversation and negotiation on things like bugets, e.g. 'our budget is $50,000... that doesn't cover any QA people. ok we need $250,000 to actually hire people, ok (weeks later), your budget has been approved. Another example of course on why budgeting is usually anti-agile. and that can be fixed. google agile budgeting., Commented Nov 2, 2019 at 14:59
  • Could you explain the questions with the answer ?
    – PDHide
    Commented Nov 2, 2019 at 16:03
  • Like ok , we need it in 6 months and use only open. Source. How does these answers change the decision of tools
    – PDHide
    Commented Nov 2, 2019 at 16:04
  • @PDHide done for change. What we need is the business objectives. About the product, the service, the customers, the revenue, the SLAs. Then we talk testing Commented Nov 2, 2019 at 16:37
  • 3
    Asking more question is also a high quality approach to get at fundamental causes. See root cause analysis and 5 whys. Please don't be offended. Commented Nov 2, 2019 at 16:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.