Why automation?

Over the years I heard frequently the statement ‘We need automation’, but the reason why it is needed differ most of the time

Some of the reason I heard why we need automation of tests

is for replacing the tester

is for coverage of functionality

is for speed test execution

When you want to automate your tests, you need to have a vision. My vision is to have automation of tests in place that provides feedback where needed as early as possible. That means that automation must be useful. It must have a target, a purpose. A target can be an API call being created based on a certain input, this can be covered with an unit test. Another target can be successfully adding a credit card to you accounts overview of your mobile banking app, which can be covered with a integration test (set of actions where you interact with the credit card company to obtain information and the authorize the request). Both of these automated test have value, because they have a target. They cover a certain risk.

As you see, these two examples of automated tests give feedback, but on a different moment in the development lifecycle. One on unit test level. One on integration test level (several UI involved and interaction with back end systems).

In general you can have automation on various levels. I like to mention three in the context of this blog, but there can be more. The three level of automation I have in mind are unit test, UI test and integration test. All these automated test can be created by a tester in close corporation with the developer. Most of the time a developer will come up with unit tests by himself. A tester will create the automated integration test. The UI test is something that can be negotiated who will do the coding work. A developer can setup the base and a tester will continue to code the rest of the UI tests. All these test are automated with a purpose. To provide feedback about the target your are investigating. That is why you need to automate your tests.