Automation brings several key advantages to your development environment and you should use it wherever possible.
Some of these benefits are:
- It increases speed and reduces the likelyhood of an error.
- Automated processes can be tested, just like the code that's written by developers.
- It can be version controlled. Each change is recorded in the version control along with comments as to why that change needed to happen; with manual steps there's no such history.
- It lets testers and developers spend more time on adding or fixing functionality instead of monotonous tasks.
- Something that is automated can be verified and thus can be trusted.
Tasks that are great for automation:
- Build of the system under design
- Deployment of the system under design
- Execution and report generation of:
- Unit tests
- Code coverage
- Functional testing
- Load testing
- Code quality metrics and conventions
- Health check of systems
Check out O'Reilly's The Environment Is Automated in the Code and Tests Done in Code, Not by a QA Department for more information and various tools for implementation.