The issue is that some individuals don't understand that automation is not "easy" nor is it "fast".
I don't agree with your premise here.
I am a big proponent of automated testing, no matter if it is unit testing, integration testing or UI testing. There are a lot of great tools available to implement automated tests.
Let's compare automated testing vs. manual testing based on the following example:
In a web application, test the "Change Password" functionality of an existing user using a browser.
- Start the webapplication
- Open the browser
- Damn, there is an error. Why? Oh, I forgot to start the database!
- Okay, shut down the webapplication
- Start the database
- Start the webapplication
- Refresh the browser
- Hmm, what was the password of our test-user again?
- Taking a look at the database
- Oh, users table is empty! I have to create a new user.
- Register a new user in the webapplication: Inputting username, password, email-address
- Why can't I login with my new user? Oh, I need to click the confirmation link in the email!
- Well, I have given the user an email like "[email protected]". Let's go to the database and set the "active" column to "Yes".
- Login. This time it works!
- Hmm, what did I want to test again...?
Easy? Not really. There are a lot of possible pitfalls in the process.
Fast? No. Manual work takes time.
Now, lets try to write an automated test:
- We need to find tools for our programming language to automatically start the database and the web server. Research and implementing takes time.
- Database needs to be in a clean state when the test starts. Creating the scripts takes time.
- We need to write the test. Since we need a user, we also need to register a new one for our test. Takes time.
- Finally, we can write what we want to test: Changing the password of the user. With our Browser-testing-tool, this is done fairly quick compared to the previous tasks.
Easy? No! We needed to research the tools, implement them, fix some bugs in our tests.
Fast? No! It takes even longer than doing a manual test.
But, there is a big difference here: For future tests, you only need to write the test itself, the last bullet point in the list - which was done comparable fast. All research and init-scripts do not need to be done for further tests.
And after you have written the test, you can start it easy. In a few seconds (or maybe minutes, if starting of the database and webapplication takes long) you see if the "Change password" routine works or works not. If there is a bug, fix it, and run the test again - you will immediately see if the bug is fixed. Fast and easy.
Writing automated tests is neither easy nor fast in the first place, but executing them is.
And this is the point where the invested time comes back.