A primeira empresa de software real em que trabalhei era toda sobre testes de unidade (NUnit). Não sei se éramos realmente defensores disso naquela época - não tenho ideia de como era nossa cobertura de código e estava escrevendo a maioria dos testes de unidade. Desde então, encontrei algumas empresas que fazem muitos testes, mas são testes de cadeira: depende da presença de uma pessoa, tem baixa repetibilidade e baixa chance de detectar bugs. A outra atitude é: era algo que eles queriam fazer "no futuro"; basicamente quando o dinheiro cai do céu.
Sinto falta dos testes de unidade - eles apenas tornam a vida mais fácil. Mas estou descobrindo que, quando procuro um novo emprego, o teste de unidade é algo que as empresas gostariam de "fazer" no futuro ou algo que elas não fazem de jeito nenhum (uhh, já existe há um tempo agora!). Eu diria que 60-75% das solicitações de trabalho que examinei nos últimos 2 anos não listaram nenhum teste de unidade. Só consigo pensar em um ou dois que tiveram experiência em testes de unidade como um requisito (para uma posição de desenvolvedor de nível médio).
Portanto, a questão é: o que está faltando ? Acho que torna as pessoas mais produtivas, mas isso só depois de passar uma boa quantidade de tempo realmente fazendo isso. Não existem bons estudos sobre a economia de custos dos testes de unidade? É o tipo de empresa que estou procurando?
Edit: embora o título seja um pouco defensor do demônio, me considero um proponente de testes de unidade.