Se você não possui testes, como você sabe que seu código funciona?
Edit: a afirmação de que os testes não podem provar que o código funciona falha ao definir um termo crucial, ou seja, funciona . O que significa para um programa funcionar? Se você mantiver esse termo vago, não há como provar ou garantir que algum programa funcione. Sempre.
Por outro lado, você pode definir trabalhos como "se comporta de acordo com uma especificação". Agora você pode não apenas usar testes para mostrar que o código funciona, mas os próprios testes podem servir como uma especificação executável do comportamento do seu código. Em outras palavras, um conjunto de testes bem escrito define o que funciona significa.
Essa maneira de pensar também obriga a reexaminar o significado de um bug . Se o seu código passar em todos os testes, não haverá bugs no código. Se, apesar disso, o sistema não se comportar como deveria, então seu comportamento não será especificado corretamente. I. e. o bug está na especificação, definida por testes.
Essa abordagem ao desenvolvimento de software dissocia a especificação funcional de um sistema de sua implementação, o que, de acordo com todos os livros de engenharia de software do mundo, é uma coisa muito boa. Ao mesmo tempo, essa abordagem garante que sua implementação sempre corresponda à especificação funcional.