Since you are just getting started with your test automation journey, imagine you are given an application and some test scenarios to automate. You use your knowledge of Selenium and TestNG and you start creating few Classes and Methods to perform operations on the UI controls as per your test cases.
Using TestNG you manage to execute those tests and you ...
As a shorter way, Its a base structer or the foundation to write automation test scripts for different componets (web, mobile ... etc).
A good framework will provide solutions for some of below limitations or the issues.
Handling scripts and data separately.
Creation of libraries.
I would not go for any long answer here as I know during your struggling phase you would have come across multiple stuff like that. I will simply suggest a short solution that worked for me and further landed me in a product based MNC company with an awesome package. I understand you have limited knowledge but don't worry. IT employees with limited coding ...
I think you are missing out the definition of "Framework"
A framework is comprised of a combination of practices and tools that are designed to help QA professionals test more efficiently.
These guidelines could include coding standards, test-data handling
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'...
Are there any courses/books online to learn automation framework design in Java?
In my case, I started learning with online videos about Java (focus in selenium). In my case, it was more helpful (and to be honest more convenient to learn via online video tool) I started with the link from Angie Jones Courses. There you will find good online videos. Also ...
I think the first sentence on Wikipedia says it clearly enough:
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software.
[ https://en.wikipedia.org/wiki/Software_framework ]
To say it in ...