I've met with two approaches for test automation in the companies I've worked for:
- Frameworks: providing unified format for test reports, same syntax for writing all tests, and other tools, maintained in one repo and delivered as one artifact.
- Libraries, each library doing exactly one thing that teams or even single tester can pick up and combine together with other libraries. Libraries are maintained separately.
What factors would you consider when choosing between a framework and a set of libraries when building test automation for your company?
Here are my initial observations:
I've found frameworks to be good to enforce certain conventions: format for tests and test reports. It seemed to work better in the teams that test similar products or better, same product.
I've found libraries to be better for more diverse products and teams working in different ways, where one solution does not suit everyone.
Such teams needs to have more programming experience, because they need to pick up and combine libraries themselves
Teams that are using libraries are less that constrained than teams using a framework.
Finally, I've found libraries easier to maintain than frameworks.