Nothing killed it, it still exists, but it's being replaced by increasing automatic testing or (as you note) letting customers/users do it for us.<p>Automated testing is almost universally better, except that it misses out on the exploratory nature of manual testing. Many critical systems utilize automation + manual exploratory systems and convert discovered failures from manual testing into part of the regression test suite (which is increasingly moved towards automation over time).<p>And yes, the first two (users will report bugs or customers will test contract work) are definite signs of a lack of professionalism.<p>Notable: Manual tests are almost universally integration tests. They are not unit tests. The dogma in the 00s/10s was that unit tests were the best tests (fortunately this was not universally held and is dying down, unfortunately it's, in some circles, swinging the other way to oppose unit tests wholesale; baby with the bathwater). Unit tests are great tests, but they are not integration tests and it is the interaction between units where many issues arise. (This observation is not unique to software, it's true of most physical, electronic, and hybrid systems as well.) You need both kinds. Integration tests, manual ones especially, are expensive to execute and this discourages many companies/organizations from pursuing them even when they have a way to automate the regression test suite after the fact.