

Tests can be messed up just like anything else can be messed up. Doesn’t mean that the concept itself is flawed.
If you only do things that people cannot mess up, then you’ll quickly end up not doing anything at all.
The biggest benefit to me that testing has is when refactoring. If I have decent test coverage and I change something major, tests help me to see if I accidentally broke something on the way, which is especially helpful if I am touching ancient code written by someone who left the company years ago.
It’s hard to test the whole system with all special tests manually. At least if your project is more than a static website or something similarly trivial.
That’s why auto tests are there to increase your testing coverage, so that one change won’t break your system in unexpected ways, especially if you do system-wide changes like upgrading your framework or core systems to a new version.