Here is what Google translated me when I searched the meaning of the word Framework
an essential supporting structure of a building, vehicle, or object.
a basic structure underlying a system, concept, or text.
This is precisely what Test Automation Frameworks are all about in Software Testing also. I assume you know what automation means and so I'm not gonna go into that. Coming directly on your questions :
I want to know all about test automation frameworks? what are they?
Framework can be defined as a set of guidelines which when followed produce beneficial results. When speaking in terms of Software testing, these can be set of guidelines like coding standards , test-data handling , object repository treatment etc. which when followed during automation scripting produce beneficial outcomes like increase code re-usage , higher portability , reduced script maintenance cost.
Some of the most commonly used frameworks are :
- Module based framework
- Library Architecture
- Data Driven
- Keyword Driven
- Hybrid
- Behavior Driven
You can easily find definitions of these on web. Here is a detailed description of all of these
Some other to read about Test Frameworks are these :
what are some good practices to implement a framework
While implementing a test framework you might want to consider quite a few things like cost and budget, resource, expectations. Here is a detailed description in my blog.
How to use design patterns in a framework?
I think this depends on how and which framework are you going to use. For example, POM (Page Object Model) seems to be a popular choice with frameworks having Selenium as automation tool.
Good books :
I think the links mentioned above should serve well for other purposes.