TDD by Kent Beck

Acabei de assistir o vídeo de TDD que o Kent Beck gravou para os Pragmatic Programmers. Pra quem não conhece, o cara é a mente brilhante por trás de XP, TDD e Design Patterns.

No vídeo, Kent implementa um wrapper em Java para o Tokyo Tyrant, um servidor de banco de dados bem leve que serve como uma hashtable remota de bytes. O exemplo é inusitado.

Não há nada muito novo pra quem pratica TDD e/ou já leu o livro do mesmo Kent Beck sobre o assunto, o TDD by Example.

Uma idéia interessante é fazer Scaffolding Tests, algo como “Testes Andaime” em português. São testes que servem de suporte para você implementar uma funcionalidade e que, a princípio, expõe uma implementação interna da classe que você está desenvolvendo.  À medida que você avança na implementação, pode esconder essas implementações internas em métodos privados e remover os testes correspondentes. Os testes da API pública da classe já exercitarão esses métodos privados. Quem tem um pouco de experiência com TDD, acaba fazendo frequentemente.

Outra ideia legal é o que ele chama de TDD Games: brincar com a ordem das suas decisões de design, apagando código e seguindo novos rumos, pra aprender o efeito das decisões no rumo do design.

Kent chama a atenção para o fato de todo teste implementado é um custo a mais no projeto e cada teste não implementado é um potencial risco. Ao praticar TDD, é importante balancear entre esses dois fatores: custo x risco.

Para Kent Beck, cada teste deve ser uma pequena estória, com início, meio e fim. Tanto no nível da história, como de uma funcionalidade ou de um sistema, é mantido um ritmo semelhante:  definição do problema, desenvolvimento e limpeza do código. Esse ciclo se repete em vários níveis, desde minutos para implementar um história, como dias para implementar uma funcionalidade e semanas para implementar um sistema (ou sub-sistema). A limpeza do código serve como um fechamento do ciclo. É fácil saber quando você acabou uma etapa e o código se mantém limpo.

Assim, é atingido o objetivo: código limpo e que funciona.

Anúncios