To me automation means the creation of scripts which allow for repetitive actions to be run again and a again.
If I want to ensure business features continue to work as new features are introduced then I might write Selenium automation to test things and use a gherkin based tool to express the business features (Cucumber, JBehave, etc.). As new features are created, my UI Test Automation will ensure older features continue to work.
I can also use automation to run unit tests. Run static analysis tools on the code. There is also automated code coverage, performance testing, code complexity analysis, etc.
We can create automation to prompt the developer to add comments (provide them with a helpful template) when checking in code and even require them to include a ticket number to cross reference it to the story or defect report.
Setting up of the data before we start testing can be automated. SQL scripts to load a database. This can be from scratch or we could take production data, modify it to hide sensitive information then load it into a test environment.
If we are deploying the software to a cluster of machines, I can use automation to ensure all the machines were deployed correctly. I write a script to check 1 machine then make it loop to check 300 machines.
Current client has APIs to query product, province, language, etc. If I want to check all possible combinations this is definitely a candidate for automation. If it is Soap or REST calls I could use a tool like SoupUI to test everything.
Any time I feel Iām testing the same thing (at any stage of development) multiple times or on current body with multiple parameters then I think about how can I automate that.
A shell script to check for magic numbers or magic strings is a quick automation I can use. If I know how to use Perl or Python, I might whip together a quick Per hack to see of there is an issue with the current code base (e.g. we should never use the number 0002000544 as this is a deprecated account; find src/ -name ā*ā -type f -exec grep -H ā0002000544ā {} ā;ā ).
The list of things I automate is endless. Some is just short lived to test a theory or check some data. Other is something Iāll run over and over for each check in or each release.