Test First, TDD e outro Bichos

296 visualizações

Publicada em

Encontro sobre desenvolvimento orientado a Test First e Àgil

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
296
No SlideShare
0
A partir de incorporações
0
Número de incorporações
9
Ações
Compartilhamentos
0
Downloads
5
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Test First, TDD e outro Bichos

  1. 1. kleitor.franklint@gmail.com Kleitor Franklint Test First, TDD e outros Bichos BDD, ATDD at all
  2. 2. KLEITOR Entusiasta da Vida, Qualidade, Colaborativos, Ágil, Teste e Testes Ágeis. kleitor.franklint@gmail.com br.linkedin.com/in/kfranklint 92-99416-0873
  3. 3. Relaxe um pouco... O Porquê da apresentação -Visão geral de ATDD: treinamentos -Não indica que serão jogados no Ágil -Movimento dentro FAP Sobre a apresentação -Não é sobre livros ou Internet -Não é sobre blá, blá, blá -Nem lavagem cerebral sobre o Agil ou Teste -É sobre chão de fábrica -É sobre trabalhar com mais qualidade -É sobre cliente satisfeito -É sobre pontos de vista
  4. 4. 4 Um Road Map 1 Ágil no mundo real... Testes de Aceitação Orientação a Valor O Universo “D” A grande visão
  5. 5. 5 Agile ALM - Jurgen Appelo Repensando o saber. Essencialmente todos os modelos estão errados, mas alguns são úteis George E. P. Box
  6. 6. Ágil no mundo real Um pouco de contexto
  7. 7. Não é sobre um novo “big bang” Ágil no mundo real É só sobre uma forma simples e prática de criar produtos orientada a testes.
  8. 8. Que perguntas queremos responder? Como reduzir custos da incerteza? Porque projetos “orientados a plano” falham? É possível testar primeiro se o produto não foi construído? Que valores sustentam o Test First? Que práticas sustentam Test First? Boas ferramentas bastam para criar bons produtos?
  9. 9. É possível aprender sobre o produto sem ter manuais? Como trabalhar com menos stress e respostas mais rápidas? O que há de errado com a gestão de Falhas? Como saber se estou fazendo certo? Como saber se há valor no que estou fazendo? O que eu ganho com Ágil e Test First? Que perguntas queremos responder?
  10. 10. Usar Scrum leva a empresa ao sucesso? "...estamos surpreendidos quando, por exemplo, a complexidade reafirma-se, e fazendo toda a nossa organização a adotar o Scrum, na verdade não nos permite fornecer software como nós pensávamos que seria“ Liz Keogh, lunivore http://lizkeogh.com/
  11. 11. 11 Agile! Agile!! Agile!!! Orientado a Test First
  12. 12. 12 Pouco tempo, demanda maior que a capacidade de atendimento, dentre outros.  O Ágil pode ajudar a lidar ou eliminar esses cenários?
  13. 13. 13 O que é “Ágil”, Afinal?  Agil não é metodologia, mas práticas úteis, principalmente comportamentais Rapid Testing
  14. 14. 14 O que é “Ágil”, Afinal?  O Rápido atrasa o ágil: é sobre fazer melhor! Velocidade como consequência da qualidade no fluxo de desenvolvimento. Valor: KAIZEN
  15. 15. 15 O que é “Ágil”, Afinal?  É sobre design proativo: paradigmas do modelo reativo.  Em que parte do código está ocorrendo o erro?  Existe vida além de debug e breakpoints? http://www.deltamatrix.com/why-are-agile-teams-25-more-productive The BUG is on the table!!!
  16. 16. 16 O que é “Ágil”, Afinal? É sobre Produtividade  Entrega e integração contínua  Código fácil de manter  Aprendizagem... Mais de 8 mil projetos http://www.deltamatrix.com/why-are-agile-teams-25-more-productive Produtividade x velocidade
  17. 17. 17 O que é “Ágil”, Afinal?  É sobre práticas para reduzir incertezas:  Qual o custo do desconhecido?
  18. 18. Requisitos de negócios Requisitos funcionais Suposições Hipóteses 18 É sobre ModelagemÉ sobre Modelagem Orientada a teste O que é “Ágil”, Afinal?
  19. 19. 19 O que é Ágil, Afinal?  É sobre feedback: para gerar ROI e produzir melhor Lean Software Testing, Bárbara Cabral, at: http://pt.slideshare.net/barbaracabral/lean-software-testing  Qual o custo da falta de comunicação? Times, artefatos, código
  20. 20. 20 É sobre qualidade: técnicas preventivas Garantia da qualidade: prevenção x Controle da qualidade: detecção Kentô: planeje com cuidado execute com precisão http://www.slideshare.net/barbaracabral/lean-software-testing O que é “Ágil”, Afinal?
  21. 21. 21 -É sobre Ritmo sustentável O que é “Ágil”, Afinal? Não é sobre o “quanto produz”, mas a qualidade da produção: vida e produto.
  22. 22. 22 Cliente puxa a produção O que é “Ágil”, Afinal? MVP Entregar o Mínimo produto viável Não empurrar o produto que o cliente não quer Orientado a valor.
  23. 23. 23 KISS - Keep It Simple, Stupid -Fazer a coisa mais simples possível no planejamento e design -Se quiser inventar que seja pra simplificar. DRY: “Don’t Repeat Yourself”: -Não repita pedaços de código. - AntiPattern = WET Write Everything Twice ou We Enjoy Typing. YAGNI(XP) E se no futuro... “You Aren’t Gonna Need It” O que é “Ágil”, Afinal? É sobre simplicidade. Menos é mais!!!
  24. 24. 24 https://www.onlineexambuilder.com/universo-agil/exam-61863 Hora do Quiz.
  25. 25. 25 Insanidade é fazer a mesma coisa repetidamente e esperar resultados diferentes. Definição de insanidade por Albert Einstein Repensando o fazer.
  26. 26. “D” de design, “D” desenvolvimento BDD TDD ATDD E os outros “D”? AMDD DDT TDDD TDDWD O Universo “D”
  27. 27. BDD TDD ATDD E os outros “D”? AMDD DDT TDDD TDDWD O Universo “D” Melhora o Ágil Anêmico
  28. 28. Universo “D”: duas abordagens Automatizada x Manual: qual a melhor?
  29. 29. Alguns conceitos Test First Qualquer técnica de construir produtos onde o teste vem primeiro: -Testar antes de escrever os casos de uso, estórias, diagramas, etc. -Testar antes de codificar.
  30. 30. ATDDATDD ((Acceptance Test Driven Development)Acceptance Test Driven Development) O núcleo de todas asO núcleo de todas as práticaspráticas Teste deTeste de AceitaçãoAceitação
  31. 31. 31 Alguns pontos de vista -Aceitação do cliente como base; -Só como pré-entrega do produto é subutilizar a inteligência produtiva da empresa: muito gasto pouco ROI -No Ágil é executado em todo o ciclo de vida do produto ATDD: teste..ATDD: teste.. Design orientadoDesign orientado
  32. 32. 32 Alguns pontos de vista -Aproxima o produto da necessidade do cliente no teste de aceitação final ( UAT ). Reduz incertezas -Agrega muito valor ao produto -Gera padrão pra desenvolvedores ATDD: teste..ATDD: teste.. Design orientadoDesign orientado
  33. 33. 33 ATDD:ATDD: Técnicas de designTécnicas de design BDDBDD TDDTDD CARD e ExploratóriosCARD e Exploratórios Desenhando testes de aceitaçãoDesenhando testes de aceitação
  34. 34. Test Driven DevelopmentTest Driven Development (TDD)(TDD) 34Figura: Acceptance Test Driven Development, Naresh Jain  O que é? -Neste nível é sobre automação de teste. Criar (mas não só) testes unitários seguidos do código. Seu ciclo: -Criar um teste que reprove, escrever o código para aprovar, refatorar o código.
  35. 35. 35 Então não é a mesma coisa que um teste unitário? A compra pode ser paga com cartão de crédito Nota: aceitar Visa, Master Card. Considere explorar. Não, “testes unitários” focam na lógica do código, TDD foca no negócio. Test Driven DevelopmentTest Driven Development (TDD)(TDD)
  36. 36. TDD 36 Um pouco de demonstração prática ... Bem por cima
  37. 37. ManutenibilidadeManutenibilidade -Mais fácil manutenção: menor injeção de dependências -Melhoria continua do design Orientado a valorOrientado a valor -Valida o código do ponto de vista do negócio Facilita a aprendizagemFacilita a aprendizagem -Auxilia time a entender o código e aprender mais rapidamente; -Minimiza intermediários 37 TDD
  38. 38. 38  Debug x Test First:Debug x Test First: reativoreativo xx proativoproativo -Localização do bug mais rápida pela execução da suite de teste  Entrega e integração contínuaEntrega e integração contínua -Produz teste de aceitação, integração e regressão  Documentação vivaDocumentação viva -Mantem a documentação sobre o código atualizada -Agente estratégico na engenharia de conhecimento -Basta rodar e aprender TDD
  39. 39. 39  Melhora produtividadeMelhora produtividade -Agente colaborador de produtividade -Auxilia a promover ritmo sustentável -Integra o time  Ferramenta de apoio a comunicaçãoFerramenta de apoio a comunicação -Experimentar e ganhar feedback -Risk First  Gestão de Falha x TDDGestão de Falha x TDD -Modelo proativo, dinâmico e vivo de gerir falhas TDD
  40. 40. TDD: Frameworks 40 Natural: NUnit PHP: PHP Unit Java: Junit, Test NG
  41. 41. 41 Teste de aceitação comTeste de aceitação com Fonte da imagem: http://istqbexamcertification.com/what-are-the-different-agile-testing-methodology-test-driven-development-behavior-driven-development/ BDDBDD -Behavior Driven Development -Behavior Driven Design É sobre automação… mas é só? Não… logo conversamos mais
  42. 42. 42 E no começo só havia desenvolvedores … e então surgiram analistas, testadores, cliente e stakeholders Quem precisa de BDD?
  43. 43. 43 Como modelar a necessidade do cliente? Dois universos… “dos dados e informações” e “bug zero” Quem precisa de BDD?
  44. 44. 44 Quem precisa de BDD? É sobre modelar a árvore de diferentes pontos de vista Não é mais sobre desenvolver sistemas… é sobre o sistema que o cliente quer é sobre ser produtivo na produção
  45. 45. 45 Quem precisa de BDD? Como modelar a árvore de diferentes pontos de vista? -Usando Exemplos -Usando Linguaguem Universal
  46. 46. 46 BDDBDD critério de aceitaçãocritério de aceitação Desafio: expressões individualizadas do critério Specification-By-Example with Gherkin, CHRISTIAN HASSA
  47. 47. 47 O que éO que é BDDBDD ((Behavior driven design) • Prática onde a comunicação se faz por um vocabulário comum encorajando a colaboração entre todo o time. • Forma de escrever teste de aceitação ( ATDD ) com exemplos DBE ( design by example).  Foca nas razões pelas quais o código deve ser criado, e não em detalhes técnicos  Em vez do termo "testes" , preferimos “cenário" e "especificação“
  48. 48. BDDBDD em nível de implementaçãoem nível de implementação temtem duas partesduas partes Visão viva do cliente Visão viva do cliente Visão Técnica Visão Técnica
  49. 49. BDD 49 Um pouco de demonstração prática ... Bem por cima
  50. 50. BDD: Frameworks 50 Ruby: Cucumber Java: JBehave, at all PHP: Behat, at all.
  51. 51. 51  Melhora a captura da necessidade do clienteMelhora a captura da necessidade do cliente - Ilustra comportamento com exemplos vivos - Usar exemplos concretos quando se discute requisitos; - Útil para finanças porque não intrínseco; - Valida e roda o produto ao mesmo tempo: Responde: Como modelar a aceitação em tempo de demonstração?  Melhora a comunicaçãoMelhora a comunicação - Promove linguagem universal entre times e envolvidos - Permite Experimentar e ganhar feedback BDD
  52. 52. 52  Entrega e integração contínua  Produz teste de aceitação, integração e testes de regressão  Gestão de Falha x BDD: mais proativo  Melhora produtividade: - quando o processo está maduro - Produz colaboração: negócio x técnico  Pode ser orientado a Riscos  Facilita a aprendizagem ( engenharia do conhecimento)Facilita a aprendizagem ( engenharia do conhecimento)  Documentação viva (Basta rodar e aprender)Documentação viva (Basta rodar e aprender) BDD
  53. 53. BDD, TDD, ATDD O que faz valer à pena? 53 Orientando a Valor…
  54. 54. 54 10 anos fazendo BDD totalmente errado Liz Keogh https://www.youtube.com/watch?v=2EM4itu7j7I O que faz valer à pena?
  55. 55. 55 BDD e TDD, (também) são sobre automação. Mas… Qual o valor da automação? “I made a lipstick robot” https://www.youtube.com/watch?v=WcW70-6eQcY
  56. 56. 56 Qual o valor da automação se… -Não atende a necessidade do cliente? -Não torna o time mais produtivo?
  57. 57. 57 Desenvolvimento orientado a valor como proposta. Mas… o que é valor? -Necessidade gera valor! -Cliente puxa a produção Plan driven x client driven
  58. 58. 58  Como modelar necessidade? -Como você quiser! Casos de uso, diagramas, estórias, Design Thinking…at all  Como descobrir e validar necessidades? Hum!!! Eis a grande pergunta! Test First
  59. 59. Teste continuo+entregas frequentes + Restropectivas+ muito feedback+ envolva o time+time+ valores ágeis 59 Como descobrir e validar necessidades? Ou Ágil , BDD e TDD anêmicos
  60. 60. 60 Use Testes exploratórios -Orientado a valor -Testar: um olhar profundo sobre o produto sobre amplas perspectivas Automação -Só checa: olha a superfície rasa -Depende do Exploratório para ter valor Como descobrir e validar necessidades? SÃO COMPLEMENTARES
  61. 61. Universo “D”: duas abordagens Automatizada x Manual: qual a melhor?
  62. 62. 62 Quem precisa deQuem precisa de ExploratóriosExploratórios??
  63. 63. 63 Quem precisa deQuem precisa de ExploratóriosExploratórios??
  64. 64. 64 Técnicas Exploratórias- Como explorar Jogos de catástrofes Modelos de estado, Técnica de relações, CRUD, QQC, Comportamento padrão Técnica de turismo Session Based e de Reconhecimento Persona Não são sequenciais
  65. 65. 65 Como escrever casos de uso, estórias, diagramas, etc usando test first? UC, Estórias, etc BDD TDD Card Teste do requisito Exploratórios ATD D
  66. 66. 66 Driving Development with Tests:ATDD and TDD, Elisabeth Hendrickson Todo o time explora e modela Time explora e remodela testes de aceitação Time apoia e modela testes de aceitação Teste de aceitação:Teste de aceitação: ATDDATDD Testers, Dev, Analistas modelam testes de aceitação
  67. 67. POSSO COLABORAR COMPOSSO COLABORAR COM MAIS RESPOSTAS?MAIS RESPOSTAS? 67 kleitor.franklint@gmail.com br.linkedin.com/in/kfranklint 92-99416-0873
  68. 68. 68 Figuras Parque: http://sweetclipart.com/cute-colorful-amusement-park-53 Zoo: http://ohlsd.org/blogs/elearning/2012/02/14/columbus-zoo-distance-learning/ Menino foto: http://agoraaquiamanhanaosesabe.blogspot.com.br/2010/05/coisas-simples.html Capoeira: http://cncapoeira.info/ Benficios: http://www.vph-institute.org/news/vphi-benefit-package-find-out-what-we-have-for-you.html http://www.ebpwb.co.uk/business-benefits/ Evolução: http://ovnihoje.com/2015/08/10/espaco-do-leitor-caminhos-da-evolucao-tecnologica/ Perguntas imagens: http://www.encontresuafranquia.com.br/franquias/perguntas-para-fazer-ao-franqueador-antes-de-fechar- Melhoria: http://caetanodeoliveira.com.br/category/melhoria_continua/ Tdd: http://singlepageappbook.com/single-page.html Programador: http://pleasantprogrammer.com/archive.html

×