Arquivos de Categorias: Desenvolvimento de Software

Sobre desenvolvimento guiado por testes (test driven development)

Para quem trabalha com desenvolvimento de software, com programação, segue uma dica preciosíssima. Conheça as técnicas de testes de unidade e comece a fazer software guiado por testes, em inglês Test Driven Development — TDD. Certamente que fazer software com qualidade e sem erros é uma arte, mas há várias técnicas e processos que ajudam, e muito, na conquista desses objetivos de qualidade.
Um dos grandes benefícios da adoção da prática do TDD é que essa prática faz parte das metodologias, ou processos, de desenvolvimento ágil de software. Há várias metodologias de desenvolvimento ágil, como SCRUM, eXtreme Programming e Unified Process. Hoje em dia se associa às metodologias ágeis as práticas oriundas do sistema Toyota de produção, o Lean Manufacturing ou manufatura enxuta.
O fato é que os benefícios da TDD são imediatos mesmo para um programador individual que não venha a usar metodologias ágeis de desenvolvimento. Isoladamente o uso de testes de unidade já fornece um grande ganho de produtividade, aumento da qualidade e redução de erros.
Para programadores Java a combinação Eclipse/JUnit é imbatível. É um prazer ver como os testes direcionam naturalmente o desenvolvimento de software, especialmente como os testes contribuem para construir uma API sólida e fácil de compreender. Outro benefício dos testes de unidade é que eles contribuem muito para a legibilidade e documentação do software, facilitando o trabalho em equipe.
Para conhecer melhor do que se trata o desenvolvimento ágil de software, recomendo o livro The Art of Lean Software Development: A Practical and Incremental Approach. Para começar a programar com testes de unidade e buscar o TDD, recomendo estes livros Unit Test Frameworks: Tools for High-Quality Software Development, Mastering Unit Testing Using Mockito and JUnit e Test-Driven Development with Mockito, nessa ordem. São livros curtos, diretos ao ponto e com muita mão na massa, ou no teclado, com vários exemplos.