Coding Dojo Floripa

Desenvolvimento Ágil

XP Checklist #2: Desenvolvimento Orientado a Testes

Publicado por 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 para “XP Checklist #2: Desenvolvimento Orientado a Testes”

  1. Vinicius AC disse

    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. Ivan Sanchez disse

    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.

Deixar uma Resposta

XHTML: Pode utilizar estas tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>