Key elements of a test automation stack: test framework, interface driver
Automation interfaces: GUI, API and others
Approaches to organising autotests: data-driven, keyword-driven, behavior-driven and others
Infrastructure elements: logging system, setting up test environments, test data generation, and autorun tests
Integration of automated tests with group work systems: continuous integration server, bug-tracker, test management system
Choosing the technology: programming language, automation tools, infrastructure solutions
Planning the implementation and development of automated testing
Calculating labor costs for automation and maintenance of autotests
Organizing automated testing and data transfer in large teams
Metrics for evaluating automated testing