A manager once asked me to "automate the testing" before a release. He expected the automated tests to find the bugs in the new feature. They found nothing. The feature was broken, and every test passed.
Nothing was wrong with the tests. I had misunderstood what automation does, and so had he.
Here is the honest description.
An automated test is a recorded expectation. You write down something the app should do. A machine checks that it still does it, over and over, faster than any person could.
That is powerful, and it is narrower than most people expect.
Automation is very good at noticing change. You wrote a test for the login form in March. In August someone edits a shared component and the login form breaks. The test fails within minutes. Nobody had to remember that login existed. This is called regression testing, which means checking that things that used to work still work.
Automation is bad at finding new bugs. A test only checks what you told it to check. It cannot look at a screen and think "that button is in a strange place" or "this error message would confuse a customer". A person notices those in seconds.
So the useful split is this:
- People find new problems. They explore, they get confused, they notice what feels wrong. This is called exploratory testing.
- Machines guard what people already found. They repeat the same checks forever without getting bored or skipping one on a Friday afternoon.
A test suite is not a bug detector. It is an alarm. It tells you the moment something that used to be true stopped being true.
Two things follow from this, and both matter in interviews.
A test that has never failed has told you nothing yet. It might be perfectly written. It might also be checking nothing at all. You only learn which when the app breaks. This is why we break the app on purpose here before we trust a test.
Automating everything is a bad goal. Every test costs time to write and time to maintain forever. A test on a screen nobody uses costs you money every week and protects nothing.
Remember this: automation protects what already works. People find what does not.
Next: the types of testing, so you know which kind you are being asked to write.