Introdução ao desenvolvimento orientado a testes
Um desenvolvedor profissional precisa usar ferramentas e métodos profissionais. O TDD é um método de desenvolvimento que produz código de qualidade e excelentes baterias de teste automatizado quando praticado corretamente.
TDD é uma prática do método XP (eXtremeProgramming). Práticas não têm sentido se os valores e princípios que elas promovem não são compreendidos. Portanto, este é realmente um curso introdutório de XP. Além de praticar TDD, praticamos PairProgramming e até CollectiveCodeOwnership.
OBJETIVOS
A maneira de ministrar o curso é programar quase o tempo todo com a supervisão e orientação do especialista. A diferença na leitura de livros ou na exibição de vídeos é que existe um especialista ao seu lado para corrigir seus erros e acelerar o processo de aprendizado, minimizando os riscos ao colocar o método em prática no dia-a-dia.
Dirigido a
Este é um curso para pessoas que sabem como programar. Principalmente programadores, mas também testadores que desejam saber mais sobre a qualidade do código e os testes automáticos. O que é necessário é vir com desejo e uma mente aberta. Se você nunca experimentou o TDD antes, ficará surpreso.
Cada aluno deve participar do curso com seu laptop e as ferramentas de desenvolvimento que eles usam regularmente, já instaladas. Se possível, você também tem o Git ou Mercurial ou ambos instalados.
Como funciona em pares, é uma boa ideia criar um novo usuário para o curso, para que você possa alternar de uma máquina para outra sem se preocupar com a privacidade da conta.
Agenda do curso
CAPÍTULO 1 INTRODUÇÃO
- Introdução ao XP: Valores, Princípios e Práticas
- Introdução aos testes de unidade
- Refatoração
- Nomeação e duplicação
- Princípio Menos Surpresa e princípios de design do SOLID
- DesignPatterns
- Introdução ao TDD Agil, etc.
CAPÍTULO 2 METRICS DE SOFTWARE
- Praticando TDD com validação baseada em estado
- Arquitetura e design emergentes
- Testes de integração
- Zombar de objetos, stubs de teste, espiões de teste
- Praticando TDD com testes baseados em interação
- Estruturas de teste duplas
- Testes de ponta a ponta
- Conclusões