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

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Modificar )

Imagem do Twitter

You are commenting using your Twitter account. Log Out / Modificar )

Facebook photo

You are commenting using your Facebook account. Log Out / Modificar )

Connecting to %s

 
Seguir

Get every new post delivered to your Inbox.