But the 'automation framework' means a lot more than that. Back in the day, we had to think about:
- Where the source was
- How we got it built, including all variants
- Branching including which tests against which branches
- Strategic prioritization of test implementation (eg, which tests are most important to implement first; what combinatorics; what mix of api, ui, performance and stress testing; etc)
- Automated test management
- Automated test data management (eg, preset database images to test against, data for data set tests)
- Coding standards
- Training of new staff
- Design reviews
- Code reviews
- Portability, internationalization and localization
- Automated test execution
- Automated bug reporting
- Artifact aging and control
- Hardware resource allocation and maintenance
- Crisis management
- And QA Evangelizing
These days, it's a lot simpler, but it's still more than just libraries. In my current gig:
- Where the source was -- Github
- How we got it built, including all variants -- Jenkins
- Branching including which tests against which branches -- Still managing this by hand
- Strategic prioritization of test implementation -- Still managing this by hand
- Automated test management -- Nose and Python's unittest library
- Automated test data management -- fixtures help, but mostly Still managing this by hand
- Coding standards -- PEP8 + Our own standards
- Training for new staff -- Still managing this by hand
- Design reviews -- Still managing this by hand
- Code reviews -- Github
- Portability, internationalization and localization -- Honestly, I haven't run into that in my current gig
- Automated test execution -- Nose and Jenkins
- Automated bug reporting -- Jenkins
- Artifact aging and control -- Still managing this by hand
- Hardware resource allocation and maintenance -- SauceLabs and various cloud services like Amazon or Google.
- Crisis management -- Still managing this by hand
- And QA Evangelizing -- I have to admit, at my current gig, this hasn't been an issue.
While there are now systems to handle these things, they still need to be orchestrated. And as a Test Automation Architect, seeing to those systems and how they serve the delivery of useful results is still in my purview. But it sure is nice not to have to build all of it by hand.
This note has been percolating in my head for some time. It's in response to this: http://www.softwaretestinghelp.com/test-automation-frameworks-selenium-tutorial-20/