After a period of time in my life when I was making it a point of my honor to reject all programming principles and patterns I finally came to the conclusion that I was indeed being arrogant and ignorant... so I'd do best to actually learn the best practices of this craft.
Given this, when tasked by my boss to write an app, I tried to finally write a comprehensive test suite that would cover as much as possible of the expected behavior of this app. Given that it was the first time in my life I attempted this, doing so was taking me a long time - still, I was pressing on, having had it hammered into my head by many people far more experienced than me that most companies would outright reject all code not having such a comprehensive test coverage for this reason alone.
Then my boss came. And said something opposite... He stressed I was supposed to stop writing tests!
It's not that he does not want any tests. On the contrary, he requires them. However, he elaborated, he only wants tests that check if the application is, in general, working; testing all edge cases is 'not what we do here'.
I am surprised by this as this is contrary to all I've been taught. According my current understanding, what my boss wants is... the worst of both worlds?!
To check if the app is, in general, working, it is enough to simply launch it! Automated tests are required, as far as I understand, precisely to check the edge conditions that would be awkward to check manually. Even though writing tests takes time, it is supposed to pay in the future.
Given what my boss wants, as it (possibly fallaciously) seems to me, we still have to pay the (although diminished) costs of tests - the time to write them - while reaping almost no benefits, since the edge cases are not tested. If anything, this gives the company a false sense of security. Thus, when writiting these simplistic and very general tests he wants I can't shake off the feeling I'm wasting time.
I am also not supposed to optimize the tests so that they run shortly. He says the test suite is only being run from time to time. But I was always being told that the test suite must be performant since it is supposed to be run very frequently, each time one is making any modification to the code, so it should take a few tens of seconds at most! According to my boss it is fine if the test suite takes 10mins to run. Again, he said that running the test suite each time one makes any minor modification to the code 'is not what we do here'.
What am I missing here? What am I failing to understand? I'm just confused at the moment; I feel I'm failing to grasp the principles and goals of automated testing at all.