Programação e Desenvolvimento Dirigidor por Testes
  • Programação e Desenvolvimento Dirigidor por Testes em Python
  • Autores e Agradecimentos
  • Uso do Livro
  • Contribua com o Livro
  • Licença
  • Organização do Livro
  • 1 Introdução
    • 1.1 Considerações Iniciais
    • 1.2 Configuração Inicial do Ambiente
    • 1.3 TDD Básico
      • 1.3.1 Exemplo Simples
    • 1.4 Considerações Finais
  • 2 TESTE DE SOFTWARE
    • 2.1 Considerações Iniciais
    • 2.2 Terminologia e Conceitos Básicos
    • 2.3 Fases de Teste
    • 2.4 Técnicas e Critérios de Teste
    • 2.5 Considerações Finais
  • 3 Desenvolvimento Dirigido por Teste
    • 3.1 Configuração do Ambiente
    • 3.2 Verificando o Ambiente com TDD
    • 3.3 Controle de Versão do Projeto
    • 3.4 Teste Funcional com UnitTest
    • 3.5 Teste de Unidade e a Evolução do Sistema
      • 3.5.1 Teste de Unidade de uma View
    • 3.6 Evoluindo o Teste Funcional
    • 3.7 Revisando o Processo do TDD
  • 4 TDD E BANCO DE DADOS
    • 4.1 Envio e Processamento de Requisição POST
    • 4.2 Banco de Dados no Django
  • 5 MELHORANDO E ORGANIZANDO OS CONJUNTOS DE TESTE
    • 5.1 Isolamento dos Testes Funcionais
    • 5.2 Esperas Implícitas, Explícitas e Time Sleeps
  • 6 ATACANDO O MAIOR DESAFIO DE FORMA INCREMANTAL
    • 6.1 Separando URL no Estilo REST
    • 6.2 Iterando para um Novo Design da Aplicação
    • 6.3 Refatorar Casos de Teste
    • 6.4 Separando Templates
    • 6.5 URL para Nova Lista
    • 6.6 Alterando Modelos
    • 6.7 URL Próprio para Cada Lista
Powered by GitBook
On this page

Was this helpful?

  1. 1 Introdução

1.3 TDD Básico

Previous1.2 Configuração Inicial do AmbienteNext1.3.1 Exemplo Simples

Last updated 10 months ago

Was this helpful?

Conforme definido por , o TDD nada mais é do que um estilo de desenvolvimento de software incremental. O ciclo do TDD consiste de:

  1. Escrever um teste (Vermelho). Imagine como a operação seria executada em sua mente em função de alguma entrada fornecida. Na terminologia de métodos ágeis, você deve pensar que está escrevendo uma história. Imagine qual interface seria necessária e inclua todos os elementos na história que seriam necessários para que a resposta fosse fornecida ao executar a interface imaginada. A analogia aqui com o ciclo Vermelho da figura abaixo, extraída de , ou seja, os testes ainda não passam por não ter código implementado que corresponda à funcionalidade idealizada.

  2. Fazer funcionar (Verde). A intenção nessa etapa é escrever o código necessário para fazer o teste passar. Se há uma solução simples e óbvia para isso, ótimo. Utilize-a. Por outro lado, se a solução é simples e óbvia, mas levará algum tempo até codificá-la, prefira fazer o teste passar mais rapidamente. Nem sempre essa mudança de mentalidade é fácil de ser seguida, principalmente por programadores experientes. Mas o importante aqui é fazer os testes passarem rapidamente. No passo seguinte, as melhorias irão ocorrer.

  3. Fazer a coisa certa (Roxo). Agora que o sistema se comporta conforme o esperado é o momento de refatorar o código, eliminando redundância e aplicando as boas práticas de engenharia de software.

Desse modo, observamos que o TDD enfatiza uma estratégia de desenvolvimento e integração botton-up, ou seja, de unidades menores para as maiores (). Essa estratégia minimiza, por exemplo, a necessidade de , facilitando o teste da aplicação no seu contexto.

Beck, 2003
Mock Objects
Kent Beck (2003)
Rocha (2013)
Ciclo TDD (Fonte: Rocha (2013))