Test Driven Development por Johann Gomes e Thaís Moura

  • View
    105

  • Download
    0

Embed Size (px)

Text of Test Driven Development por Johann Gomes e Thaís Moura

  • Slide 1
  • Test Driven Development por Johann Gomes e Thas Moura
  • Slide 2
  • * Atualmente, as falhas de software so grandes responsveis por custos e tempo no processo de desenvolvimento de software.
  • Slide 3
  • * Evitar falhas (fault-avoidance) * economicamente impraticvel * Com atividades apropriadas de especificao, projeto, implementao e manuteno sempre visando evitar falhas em primeiro lugar. * Inclui o uso de mtodos de construo de software avanados, mtodos formais e reuso de blocos de software confiveis.
  • Slide 4
  • * Eliminar falhas (fault- elimination) * Compensao analtica de erros cometidos durante a especificao, * Projeto e implementao. Inclui verificao, validao e teste.
  • Slide 5
  • * Tolerar falhas (fault-tolerance) * Compensao em tempo real de problemas residuais como mudanas fora da especificao no ambiente operacional, erros de usurio, etc. * Tratamento de excees
  • Slide 6
  • * Curiosidade: as falhas de software custam cerca de 60 bilhes de dlares economia norteamericana a cada ano [NIST 2002]
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • * Criado por Kent Beck em 1999, o mesmo criador da metodologia eXtreme Programming (metodologia para lidar com requisitos vagos e em constante mudana) * Segundo ele, o TDD encoraja designs simples e inspira confiana
  • Slide 11
  • Crie um teste para a funcionalidade Esse teste deve ser criado antes de implementar a funcionalidade Por conta disso, o teste dever FALHAR Se no falhar, porque h algo de errado com a funcionalidade 1. ADICIONE UM TESTE
  • Slide 12
  • 2. TESTE TODOS OS TESTES
  • Slide 13
  • Escrever o cdigo que dever fazer o teste passar O cdigo escrito aqui no precisa estar perfeito, o OBJETIVO apenas PASSAR NO TESTE 3. IMPLEMENTE O CDIGO PARA CADA TESTE FUNCIONAR
  • Slide 14
  • 4. REFATORE/OTIMIZE O CDIGO
  • Slide 15
  • 1. ADICIONE UM TESTE 2. TESTE TODOS OS TESTES 3. IMPLEMENTE O CDIGO PARA CADA TESTE FUNCIONAR 4. REFATORE/OTIMIZE O CDIGO 5. REPITA TUDO
  • Slide 16
  • * Uma vantagem significativa do TDD que ele permite que voc tome pequenos passos quando estiver escrevendo um software * Encoraja o refactoring (otimizao de cdigo, deixando ele mais legvel e eficaz) * Diminui a quantidade de erros por linha de cdigo * Facilidade de manuteno
  • Slide 17
  • falso senso de segurana menor * O alto nmero de testes de unidades pode trazer um falso senso de segurana, resultando em menor nvel de de atividades de garantia de qualidade, como testes de integrao e aceitao
  • Slide 18
  • Slide 19
  • Slide 20
  • O grupo que desenvolveu com TDD escreveu os casos de teste antes de comear a implementao. J o grupo da programao tradicional escreveu os testes depois de completar o cdigo.
  • Slide 21
  • Slide 22
  • * Wikipdia: http://pt.wikipedia.org/wiki/Test_Driven_Dev elopment http://pt.wikipedia.org/wiki/Test_Driven_Dev elopment * Java Free, artigo Test-Driven Developmento escrito por Dalton de Camargo: http://javafree.uol.com.br/artigo/869918/Tes tDriven-Development-TDD.html http://javafree.uol.com.br/artigo/869918/Tes tDriven-Development-TDD.html * Ebah!: http://www.ebah.com.br/content/ABAAABNfU AG/conceitos-beneficios-tdd http://www.ebah.com.br/content/ABAAABNfU AG/conceitos-beneficios-tdd