Test Automation in general is:
• dynamically set up preconditions
• produce test data
• execute test procedures
• compare actual results with expected results
Test Automation covers several levels of testing from unit tests, component tests to acceptance tests, functional tests on a UI level as well as performance tests etc.
Whereas low level unit tests and component tests are strongly driven by developers, acceptance tests are mainly driven by Test Engineers. There is no doubt that developers per se have a good knowledge of coding and scripting.
However what about Test Engineers? How much coding and scripting skills does a Tester need to do efficient Test Automation?
These questions are legitimate and hard to answer. Nevertheless, coding only covers a small part of the big Test Automation picture which will be covered in its own blog post.
There are more Non-technical questions to be answered when introducing a proper Test Automation strategy.
What technologies will be used
It is very important to think about technologies/tools and whether to use an Open Source Tool or buy a licensed testing tool.
Test result and Quality reporting
This is another point that needs big attention. Test automation can produce good outputs. To structure these outputs and make it visible to the audience is the tricky part.
A stack trace for example might be of interest for a developer but does not mean anything to the business unit.
Test Environments and Continuous Integration
When it comes to test environments (Live, Beta, Test, etc.) it is relevant to think about hardware, virtual machines as well as how to deploy to each instance.
What to automate and what not
If you are doing test automation you will also have to think about what is worth automating and what is not e.g. visual things like icons and colors.
As a conclusion my opinion is that test automation is a big part of todays agile methodologies and crucial for Quality Assurance. Nevertheless you will have to carefully think of your strategy and get a balance between the technical and non-technical aspects of Test Automation.