Coding Dojo Floripa

Desenvolvimento Ágil

XP Checklist #2: Desenvolvimento Orientado a Testes

Posted by Ivan Sanchez em Quarta-feira, Maio 9, 2007

Visão geral do Desenvolvimento Orientado a Testes:

Para extrair o máximo dos testes durante o desenvolvimento, devemos pensar neles como uma ferramenta de comunicação e aprendizado contínuo. Portanto seu foco deve ir além da verificação e pautar o desenvolvimento como um todo.

Objetivo:

Ajudar o desenvolvimento e aumentar a confiança para fazer qualquer modificação no sistema.

Participantes:

  • Cliente
  • Equipe de Desenvolvimento

Pontos principais:

  • Todos os testes devem ser automatizados.
  • Os testes são escritos antes mesmo da funcionalidade existir
  • Uma User Story está pronta quando todos os Testes de Aceitação passam e não se consegue imaginar mais testes para ela
  • O desenvolvimento é feito em pequenos incrementos (“baby steps”)
  • O projeto da implementação deve favorecer a confecção de testes
  • O Cliente escreve testes de aceitação com ajuda da Equipe de Desenvolvimento. Se isso não é possível é interessante que ele ao menos valide o testes que a Equipe de Desenvolvimento criar
  • A depuração de código deve ser substituída por testes sempre que possível
  • Busca-se que todos os testes passem sempre. Se algo não está funcionando isto deve ser do conhecimento do Cliente.
  • Um novo teste deve ser escrito quando for preciso reproduzir um erro ou esclarecer melhor uma funcionalidade.

Resultados esperados:

  • O cliente terá maior confiança que as User Stories que ele definiu estão implementadas
  • A equipe terá maior confiança para fazer as mudanças que o cliente pedirá no futuro
  • Existirá sempre uma especificação atualizada, representada pelos testes
  • O design do software será favorecido pela simplicidade
  • A ocorrência de erros diminuirá

Atualização:
(11/05/2007) Novos itens foram adicionados nos Resultados Esperados (agradecimentos ao ViniciusAC)

3 Respostas to “XP Checklist #2: Desenvolvimento Orientado a Testes”

  1. Sem querer desmerecer o seu resumo dos resultados mais facilmente visíveis, nesse contexto, tá massa.
    Eu acrescentaria, entre os resultados esperados: melhor design; documentação boa e sempre sincronizada, representada nos próprios testes; maior produtividade e menos custos, por causa da diminuição drástica do tempo gasto com depuração e das vantagens de se trabalhar num código mais claro.

  2. […] Desenvolvimento Orientado a Testes […]

  3. Vinicius,

    Antes de mais nada, obrigado pelo feedback!

    Como eu digo no tópico de apresentação das checklists, o objetivo deste resumo é fornecer informação relevante para o dia-a-dia de quem está implementando as práticas de XP. Então, com relação aos itens que você sugeriu:

    Melhor Design
    Perfeito🙂

    Documentação boa e sempre sincronizada
    Correto, mas com uma ressalva. É correto dizer que TDD fornece uma especificação do sistema que estará sempre sincronizada com o código, porém vejo como arriscado considerar isso uma “boa” documentação. Por documentação pode-se entender até artefatos que são de uso dos usuários, e não cabe a TDD gerá-los.

    Maior produtividade e menos custos
    Este é o resultado esperado de todas as práticas de XP, assim como o de qualquer mudança que se faça na maneira de desenvolver software. Por isso preferi me prender apenas aos resultados específicos desta prática.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

 
%d bloggers like this: