Existe um grande e crescente movimento de desenvolvimento chamado Test Driven Development ou TDD. Eu não pretendo ser um especialista e realmente lutei para resolver esse método por padrão, mas a essência é que o desenvolvedor primeiro escreve um teste com falha e depois escreve o código para passar nesse teste.
O conceito tem muitos pontos fortes. Uma é que você tem um ótimo conjunto de testes. Outra é que, como isso é feito em muitos pequenos incrementos, você sabe imediatamente se quebra alguma coisa. Uma das coisas que eu já vi com esse método e outros "mandatos" de testar tudo é que você não faz com que os desenvolvedores andem por aí colocando recursos extras porque são legais ou legais. Sempre há um custo para um recurso e, muitas vezes, um desenvolvedor não vê ou sente esse custo. Com o TDD, eles fazem, desde que você escreve um caso de teste antes de escrever o código.
Existem extensões nessa teoria, além de levar a gravação do teste à fonte de requisitos, onde o especialista em negócios escreve um conjunto de testes funcionais que compõem as especificações e, em seguida, os desenvolvedores desenvolvem esse conjunto de casos de teste.
Portanto, com o TDD, o desenvolvedor escreve muitos testes, alguns defendem uma proporção de 1: 1 para linhas de código de teste e linhas de código.