What is Test Automation Framework?
I am a complete beginner in Test Automation and could not find a good answer on the web.
Some automation engineers use an underlying automation framework as a jar dependency in their selenium web driver project in eclipse. They, then use the framework to write functional scripting of the AUT.
I have started to learn scripting in webdriver and learning a bit about TestNG etc, but my colleagues suggest me to learn and create a fully functional - generic framework which any team can use?
What exactly is a framework? Are there any courses/books online to learn automation framework design in Java?
my colleagues suggest me to learn and create a fully functional - generic framework which any team can use?
I suggest you don't. Your coworkers suggest you to start over-engineering. It is fine to experiment.
Automate a test, automate another one. Maybe a reusable abstraction emerges. Maybe this becomes a reusable framework. Practise the YAGNI (You aren't gonna need it) principle and KISS (Keep it stupid simple).
I see a lot of testers make their goal to build a framework, but software testing is about understanding and safeguarding the behaviours of persona. Automation and frameworks are just a tool. So yes practise with tools, but do not make it your goal.