Test-Driven Development (TDD) - MSP Coding Day

238 views

Published on

Slides de apresentação realizada durante o MSP Coding Day, evento realizado em Santos-SP no dia 23/07/2016.

Tópicos abordados:
- Motivos que contribuem para a falta de testes
- Quais os impactos da falta de testes?
- Visão geral dos diferentes tipos de testes na área de software
- Testes unitários e a plataforma .NET
- TDD: conceitos gerais
- Implementação de um exemplo prático

Tópicos abordados:

Published in: Software
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
238
On SlideShare
0
From Embeds
0
Number of Embeds
120
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Test-Driven Development (TDD) - MSP Coding Day

  1. 1. Renato Groffe Julho/2016
  2. 2.  Mais de 15 anos de experiência na área de Tecnologia  Pós-graduação em Engenharia de Software – ênfase em SOA  Cursando MBA em Business Intelligence (FIAP)  Graduação em Sistemas de Informação  Técnico em Processamento de Dados  MCP, Microsoft Specialist, MCTS, OCA, ITIL, COBIT
  3. 3.  Página no Facebook https://www.facebook.com/RenatoGroffeSW  Perfil no Facebook https://www.facebook.com/renatogroff  LinkedIn http://br.linkedin.com/in/renatogroffe
  4. 4.  Visual Studio 2015 Update 3  Visual Studio Unit Testing Framework (também conhecido como MS Test)
  5. 5.  Motivos que contribuem para a falta de testes  Quais os impactos da falta de testes?  Visão geral dos diferentes tipos de testes na área de software  Testes de unidade e a plataforma .NET  TDD: conceitos gerais  Implementação de um exemplo prático
  6. 6.  A realização de testes é muitas vezes negligenciada: ◦ Falta de planejamento ◦ Tempo escasso ◦ Equipes reduzidas e sobrecarregadas ◦ Falta de hábito ◦ Excesso de confiança de alguns profissionais
  7. 7.  Retrabalho  Custos que excedem o orçamento  Conflitos entre membros de uma equipe técnica ou junto à área de negócios  Prejuízos à imagem da equipe ou empresa responsável por um projeto
  8. 8.  Garantir que o produto atende aquilo que foi especificado para o projeto ◦ Verificação do correto funcionamento de uma aplicação ◦ Detecção de falhas e defeitos que poderiam passar em branco até a subida em Produção
  9. 9.  Teste de unidade  Teste de integração  Teste de sistema  Teste de aceitação  Teste de regressão
  10. 10. ◦ São automatizados e repetíveis ◦ Podem ser implementados facilmente ◦ Uma vez escritos, os testes devem ser mantidos para reuso futuro ◦ Qualquer profissional de software deve ser capaz de executá-los ◦ Facilmente acionáveis ◦ Rapidez na execução
  11. 11.  .NET Framework conta com diversas alternativas: ◦ Visual Studio Unit Testing Framework (MS Test) ◦ NUnit (http://www.nunit.org/) ◦ xUnit.net (https://github.com/xunit)  É possível integrar a utilização destes frameworks ao processo de build de uma aplicação (VSTS, por exemplo)
  12. 12.  Desenvolvimento baseado na codificação de testes de unidade  Abordagem que tem “início” em 2002, com a publicação do livro “Test-Driven Development: By Example” por Kent Beck (“pai” do XP - Extreme Programming)  SUT (“System Under Test”) ou CUT (“Class Under Test” ou “Code Under Test”) → alguns termos comuns dentro de TDD
  13. 13.  Construção de soluções de uma maneira que facilite a execução de testes de unidade  Codificação de testes antes mesmo da implementação → evitando assim a elaboração de testes “viciados”
  14. 14.  Ciclo Red-Green-Refactor (com a execução dos testes de unidade em todos os estágios)
  15. 15.  Código mais claro  Uma forma de se documentar o código  Um rápido feedback  Uma maior cobertura de diferentes trechos de código  Falhas são apontadas durante o desenvolvimento
  16. 16.  A adoção de TDD acaba por favorecer uma melhor assimilação de boas práticas: ◦ Separação de Responsabilidades ◦ Maior coesão (evitando classes “faz-tudo”) ◦ Menor acoplamento
  17. 17.  Cálculo de juros compostos (arredondar para 2 casas decimais): Total a ser Pago = Vl. Empréstimo * ((1 + Taxa Juros Mensal) ^ Núm. Meses)  Casos de teste:  Classe a ser criada:
  18. 18.  Link da solução de exemplo: https://github.com/renatogroffe/TDD_MSPCodingDay2
  19. 19.  Quando aplicar TDD? ◦ Testando todas as funcionalidades da aplicação, sem exceções? ◦ Considerando apenas funcionalidades mais significativas do ponto de vista do negócio?
  20. 20. Dúvidas???
  21. 21.  Testes de Unidade no Visual Studio http://www.devmedia.com.br/testes-unitarios-no-visual-studio- 2012/27215  Test-Driven Development http://martinfowler.com/bliki/TestDrivenDevelopment.html  Unit Test http://martinfowler.com/bliki/UnitTest.html
  22. 22. Obrigado!!!

×