One answers "Does the code work as I intended?" For that, I write unit tests, integration tests, or end-to-end tests as needed.
The other answers "Is this product useful?" For that, we do things like user tests, A/B tests, and landing page tests.
I think you need both. If you do too much programmer-focused testing, then you can end up with something that's well-built and useless. If you do too much user testing and iteration, you end up with something that people like, but that is buggy and hard to evolve.
One answers "Does the code work as I intended?" For that, I write unit tests, integration tests, or end-to-end tests as needed.
The other answers "Is this product useful?" For that, we do things like user tests, A/B tests, and landing page tests.
I think you need both. If you do too much programmer-focused testing, then you can end up with something that's well-built and useless. If you do too much user testing and iteration, you end up with something that people like, but that is buggy and hard to evolve.