I have started learning selenium webdriver using java to increase my skill set as a blackbox tester. I have been practicing a lot about JUnit, Test NG, Page object model etc.

However, I am not progressing any further and am confused what tools will be useful for me in a real-scenario automation projects in 2018. I know about CI tools like Jenkins but dont know if experts use these for automation.

Therefore, please refer some link or help me in knowing that what is a Structure/Framework for a typical live selenium 3.0 project and what all tools should i learn?

  • 2
    Are you asking in a context of looking for a new job or in a context of doing your current job?
    – Embedded
    Commented Mar 23, 2018 at 9:49
  • Start creating selenium frameworks for real time websites and start learning to connect Jenkins with selenium tools To maintain quality of software you should learn to structure the project with all possible technology and latest plugins available in the Market Commented Mar 23, 2018 at 10:42

2 Answers 2


A partial answer to your many questions:

Jenkins - yes, Jenkins is used by many organizations for their CI pipeline, including UI automation like Selenium scripts.

Typical Selenium Project - there is no such thing, any more than there is a typical website. The best you are going to get is broad guidelines such as:

  • Don't Repeat Yourself (DRY) - If you find yourself continually writing almost the same code (or copying code and pasting it elsewhere), turn it into a library method that gets called from different places.
  • Single Responsibility - Each method should do only one thing. It should be provided with all the information it needs to do that thing. Similarly, each test should test and assert against only one thing. A lot of short tests are better than a few long, complicated tests.
  • Keep It Simple, Stupid (KISS) - Each module of code should be as simple and stupid as you can make it. Complicated code is hard to read and hard to maintain.
  • Independent Tests - Each test should be independent of other tests, so the failure of test 1 does not cause all the other tests to fail as well.

That said, the way these guidelines are handled varies depending on the needs of the project. If you learn to code - there are many good, free tutorials - and practice a lot, you will improve.

  • "Keep It Simple, Stupid (KISS)". Funny. I have never met such the conception before. It sounds pretty odd to me since "simple and stupid" code is often harder to maintain that the complex one. Of course if the complexity introduces architectural benefits.
    – Alexey R.
    Commented Mar 23, 2018 at 12:47
  • 1
    @AlexeyR you realize the comma completely changes the meaning of that statement. The KISS principle is quite old I've been coding for over 35 years and it goes way back to my early days. I'm only guessing by your name that you might be mistaking the comma in this phrase with "and." Apologies if I made the wrong assumption. Commented Mar 26, 2018 at 14:08
  • @BillHileman I was mostly talking about the description Kate provided "Each module of code should be as simple and stupid as you can make it. Complicated code is hard to read and hard to maintain.". Not about what KISS acronym stands for.
    – Alexey R.
    Commented Mar 27, 2018 at 11:34

I have started learning selenium webdriver using java

How many years of experience do you have?

I highly recommend book Pragmatic Thinking and Learning: Refactor Your Wetware, which uses Dreyfus model of skill acquisition to explain learning new skill. And other books from "Pragmatic" series.

You likely advanced from "novice" to "advanced beginner", and have noticed that learning is harder now (it takes more effort to advance). Persist, and you will advance to "competent" and maybe farther.