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