Mostrando postagens com marcador TDD. Mostrar todas as postagens
Mostrando postagens com marcador TDD. Mostrar todas as postagens

março 15, 2011

TDD na prática

Java Magazine 89

Escrevi um artigo sobre TDD, para a Java Magazine deste mês.

Nele, eu mostro o desenvolvimento de uma aplicação utilizando a técnica de Test-Driven Development (TDD).

Para conferir, basta acessar:

http://www.devmedia.com.br/post-20154-TDD-na-pratica.html

agosto 02, 2010

TDD... eu recomendo!

Chega a requisição, de uma nova funcionalidade, para um dos sistemas em que estou envolvido.

O sistema em questão, gerencia a vida do aluno no programa de pós-graduação, stricto sensu, da UERJ. A requisição era algo do tipo:

"Os cursos de pós-graduação, devem poder lançar as notas dos alunos inscritos em suas turmas no semestre."

Meu caminho natural, para começar a atender este pedido, seria: (i) configurar os xmls do STRUTS, (ii) criar actions e (iii) criar telas do sistema. Basicamente, eu trabalharia primeiro as camadas de apresentação, controle e provavelmente de infraestrutura, para abrir caminho até a camada de modelo e a partir daí, iniciar a programação das regras de negócio.

Mas neste dia, decidi testar uma nova abordagem. Eu já tinha lido à respeito, ouvido falar e até aplicado em projetos acadêmicos, a técnica de Test Driven Development ou TDD.

Ao ler a requisição que me foi passada, percebi três funcionalidades principais que precisaria desenvolver: (i) listar para o usuário as turmas do semestre, (ii) listar os alunos da turma selecionada e (iii) permitir o lançamento das notas.

As três funcionalidades descritas acima, tornaram-se meus casos de teste e eu iniciei o desenvolvimento dos testes unitários utilizando as bibliotecas do JUnit.

Por mais que estivesse acostumado a fazer da forma antiga, enxerguei grandes vantagens utilizando o TDD:

  1. Trabalhei diretamente na camada de modelo.
  2. Pude focar meus esforços nos casos de teste, isoladamente, sem me preocupar com as outras funcionalidades a serem desenvolvidas.
  3. Quando parti para as camadas de apresentação e controle, já tinha certeza de que minhas regras de negócio estavam 100% funcionais e sem erros, tive apenas que lidar com erros técnicos (configurações do struts por exemplo) e de camada de apresentação (jsp's).
  4. Os teste unitários, passam a fazer parte do sistema e são artefatos valiosos para a detecção de possíveis bugs futuros.
  5. O desenvolvimento, pelo menos no meu caso, foi mais rápido.

Ao avaliar as vantagens obtidas utilizando o TDD, neste projeto, com certeza aplicarei a técnica em projetos futuros.