We have a requirement to automate Test Cases for a Web based application.

We have to use only open source tools.

Total Test Cases would be around 600-700.

  • 2
    What JavaScript framework is Web app using? Are there unit tests? Are the integration tests? Are there REST API tests?
    – dzieciou
    Commented Jun 25, 2019 at 11:08
  • What skills your team has? Who Will be maintaining tests? Devs as well?
    – dzieciou
    Commented Jun 25, 2019 at 11:28
  • 1
    No only Testers will be maintaining the tests. And I will have to train them first on Core Java for using Selenium. So its like we are starting from scratch here. I will get back to you on your first question. Commented Jun 25, 2019 at 11:40
  • Excellent question.
    – dzieciou
    Commented Jun 25, 2019 at 12:01
  • 1
    @dzieciou jQuery 2.1.3 is used. , there are REST API Tests.. we used POSTMAN to test those. Dev will be responsible for Unit Tests. Integration Tests will be there in form of functional black box testing. Commented Jun 25, 2019 at 12:24

6 Answers 6


As you have the Web Application so going with Selenium and TestNg is a better approach as there are lot or reference points available over the internet for same. Also since you have mentioned you have 600-700 test cases then i am assuming you must be doing some sought Data Driven Testing as well. You can design your framework with below approach :

  1. Design a Data driven Selenium TestNg framework.
  2. For Test data you can use Excel and Apache POI.
  3. For Test Scenarios you can use Cucumber and Feature File concepts since its user friendly and you can pass the same feature file to management for showing the coverage.
  4. Selenium TestNg will be good as this gives you a huge scope creating good Test Reports as well like ExtentReport.

Since you team is not expert and you will be training them hence Cucumber Feature file writing is something to start with and then you can gradually introduce them to coding concepts.

Try to use Page Object Model while designing the framework as its separates the logical implementation with the functional implementation.

  • Thank you for elaborate answer, this will give us a headstart to begin our automation. Thanks a lot. Commented Jun 27, 2019 at 6:00

How can you know in advance the amount of test cases you have to automate? Of course you can use selenium and testng if you’re targeting only ui tests but you should start at a lower layer instead, trying to validate the logic layer for example. UI can easily change and thus break.


Pedantic Answer: Using Selenium and Test NG is an approach. It is not possible to say what is the best approach.

Practical Answer: Hell yes. Use what everyone else uses to automate basic web applications. Code isn't complicated. Plenty of documentation, help, and examples around - especially on stackoverflow.


Selenium and Test NG is a good approach, you might consider spending some more time to consider Automation Testing Design Pattern. Here is link to a good overview: 4 Top Automation Testing Design Patterns

From our experience we when from Page Object Design Pattern to Screenplay Pattern. Again, here is link to good discussion of both options: Screen Play vs Page Object pattern

Our final solution is Selenium, Cucumber & TestNG.

  • Selenium and TestNG are frameworks that can be used to automate your test cases. When it comes to open source technologies, Selenium and TestNG have a huge community and it will be easier for you to tackle problems you face while Automating your test cases.
  • I assume these 600 test cases are AUTOMATABLE in the first place. If you haven’t decided it yet please take expert technical guidance and advice.
  • As you have mentioned Approaches, I assume You have followed test design techniques as well.

Selenium is Puppeteer and cypress are also good candidates. If your team is familiar with Javascript, then consider them, too. I've learning Java, selenium, testNG for a half of year. But If it were not for teamwork which using Java, I would try cypress.

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