test first, tdd e outro bichos

68
[email protected] Kleitor Franklint Test First, TDD e outros Bichos BDD, ATDD at all

Upload: kleitor-franklint

Post on 09-Feb-2017

323 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Test First, TDD e outro Bichos

[email protected] Franklint

Test First, TDD

e outros Bichos

BDD, ATDD at all

Page 2: Test First, TDD e outro Bichos

KLEITOR

Entusiasta da Vida, Qualidade,

Colaborativos,Ágil,

Teste e Testes Ágeis.

[email protected]

br.linkedin.com/in/kfranklint

92-99416-0873

Page 3: Test First, TDD e outro Bichos

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

Page 4: Test First, TDD e outro Bichos

4

Um Road Map 1 Ágil no mundo real...

Testes de Aceitação

Orientação a Valor

O Universo “D”

A grande visão

Page 5: Test First, TDD e outro Bichos

5

Agile ALM - Jurgen Appelo

Repensando o saber.

Essencialmente todos os modelos estão errados, mas alguns são úteis

George E. P. Box

Page 6: Test First, TDD e outro Bichos

Ágil no mundo realUm pouco de contexto

Page 7: Test First, TDD e outro Bichos

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.

Page 8: Test First, TDD e outro Bichos

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?

Page 9: Test First, TDD e outro Bichos

É 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?

Page 10: Test First, TDD e outro Bichos

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/

Page 11: Test First, TDD e outro Bichos

11

Agile!Agile!!

Agile!!!Orientado a Test First

Page 12: Test First, TDD e outro Bichos

12

Pouco tempo, demanda maior que a capacidade de atendimento, dentre outros.

O Ágil pode ajudar a lidar ou eliminar esses cenários?

Page 13: Test First, TDD e outro Bichos

13

O que é “Ágil”, Afinal?

Agil não é metodologia, mas práticas úteis, principalmente comportamentais

Rapid Testing

Page 14: Test First, TDD e outro Bichos

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

Page 15: Test First, TDD e outro Bichos

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!!!

Page 16: Test First, TDD e outro Bichos

16

O que é “Ágil”, Afinal? É sobre

Produtividade

Entrega e integração contínua Código fácil de manter Aprendizagem...

Mais de 8 mil projetoshttp://www.deltamatrix.com/why-are-agile-teams-25-more-productive

Produtividade x velocidade

Page 17: Test First, TDD e outro Bichos

17

O que é “Ágil”, Afinal?

É sobre práticas para reduzir incertezas:

Qual o custo do desconhecido?

Page 18: Test First, TDD e outro Bichos

Requisitos de

negócios

Requisitos

funcionais

Suposições Hipóteses

18

É sobre Modelagem É sobre Modelagem Orientada a teste

O que é “Ágil”, Afinal?

Page 19: Test First, TDD e outro Bichos

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

Page 20: Test First, TDD e outro Bichos

20

É sobre qualidade: técnicas preventivas

Garantia da qualidade: prevenção xControle da qualidade: detecção

Kentô: planeje com cuidado execute com precisão

http://www.slideshare.net/barbaracabral/lean-software-testing

O que é “Ágil”, Afinal?

Page 21: Test First, TDD e outro Bichos

21

-É sobre Ritmo sustentável

O que é “Ágil”, Afinal?

Não é sobre o “quanto produz”, mas a qualidade da produção: vida e produto.

Page 22: Test First, TDD e outro Bichos

22

Cliente puxa a produção

O que é “Ágil”, Afinal?

MVPEntregar o

Mínimo produto viável

Não empurrar o produto que o cliente não quer

Orientado a valor.

Page 23: Test First, TDD e outro Bichos

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!!!

Page 24: Test First, TDD e outro Bichos

24

https://www.onlineexambuilder.com/universo-agil/exam-61863

Hora do Quiz.

Page 25: Test First, TDD e outro Bichos

25

Insanidade é fazer a mesma coisa repetidamente e esperar resultados diferentes.

Definição de insanidade por Albert Einstein

Repensando o fazer.

Page 26: Test First, TDD e outro Bichos

“D” de design, “D” desenvolvimento

BDD

TDD

ATDD

E os outros “D”?AMDDDDTTDDDTDDWD

O Universo “D”

Page 27: Test First, TDD e outro Bichos

BDD

TDD

ATDD

E os outros “D”?AMDDDDTTDDDTDDWD

O Universo “D”Melhora o Ágil Anêmico

Page 28: Test First, TDD e outro Bichos

Universo “D”: duas abordagensAutomatizada x Manual: qual a melhor?

Page 29: Test First, TDD e outro Bichos

Alguns conceitosTest 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.

Page 30: Test First, TDD e outro Bichos

ATDD ATDD ((Acceptance Test Driven Development)Acceptance Test Driven Development)

O núcleo de todas as O núcleo de todas as práticaspráticas

Teste de Teste de AceitaçãoAceitação

Page 31: Test First, TDD e outro Bichos

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

Page 32: Test First, TDD e outro Bichos

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 Design

orientadoorientado

Page 33: Test First, TDD e outro Bichos

33

ATDD: ATDD: Técnicas de Técnicas de designdesign

BDDBDD

TDDTDD

CARD e ExploratóriosCARD e Exploratórios

Desenhando testes de aceitaçãoDesenhando testes de aceitação

Page 34: Test First, TDD e outro Bichos

Test Driven Development Test 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.

Page 35: Test First, TDD e outro Bichos

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 Development Test Driven Development (TDD)(TDD)

Page 36: Test First, TDD e outro Bichos

TDD

36

Um pouco de demonstração prática ...

Bem por cima

Page 37: Test First, TDD e outro Bichos

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

Page 38: Test First, TDD e outro Bichos

38

Debug x Test First: Debug x Test First: reativoreativo x x 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

Page 39: Test First, TDD e outro Bichos

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 TDD Gestão de Falha x TDD -Modelo proativo, dinâmico e vivo de gerir falhas

TDD

Page 40: Test First, TDD e outro Bichos

TDD: Frameworks

40

Natural: NUnit

PHP: PHP UnitJava: Junit, Test NG

Page 41: Test First, TDD e outro Bichos

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

Page 42: Test First, TDD e outro Bichos

42

E no começo só havia desenvolvedores

… e então surgiram analistas, testadores, cliente e stakeholders

Quem precisa de

BDD?

Page 43: Test First, TDD e outro Bichos

43

Como modelar a necessidade do cliente?

Dois universos… “dos dados e informações” e “bug zero”

Quem precisa de BDD?

Page 44: Test First, TDD e outro Bichos

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

Page 45: Test First, TDD e outro Bichos

45

Quem precisa de BDD?Como modelar a árvore de diferentes

pontos de vista?

-Usando Exemplos-Usando Linguaguem Universal

Page 46: Test First, TDD e outro Bichos

46

BDD BDD critério de aceitaçãocritério de aceitação

Desafio: expressões individualizadas do critério

Specification-By-Example with Gherkin, CHRISTIAN HASSA

Page 47: Test First, TDD e outro Bichos

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“

Page 48: Test First, TDD e outro Bichos

BDD BDD em nível de implementação em nível de implementação tem tem duas partesduas partes Visão

viva do cliente

Visão Técnic

a

Page 49: Test First, TDD e outro Bichos

BDD

49

Um pouco de demonstração prática ...

Bem por cima

Page 50: Test First, TDD e outro Bichos

BDD: Frameworks

50

Ruby: Cucumber

Java: JBehave, at all

PHP: Behat, at all.

Page 51: Test First, TDD e outro Bichos

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

Page 52: Test First, TDD e outro Bichos

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 Facilita a aprendizagem ( engenharia do

conhecimento)conhecimento) Documentação viva (Basta rodar e aprender)Documentação viva (Basta rodar e aprender)

BDD

Page 53: Test First, TDD e outro Bichos

BDD, TDD, ATDD

O que faz valer à pena?

53

Orientando a Valor…

Page 54: Test First, TDD e outro Bichos

54

10 anos fazendo BDD totalmente errado

Liz Keoghhttps://www.youtube.com/watch?v=2EM4itu7j7I

O que faz valer à pena?

Page 55: Test First, TDD e outro Bichos

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

Page 56: Test First, TDD e outro Bichos

56

Qual o valor da automação se…

-Não atende a necessidade do cliente?-Não torna o time mais produtivo?

Page 57: Test First, TDD e outro Bichos

57

Desenvolvimento orientado a valor como proposta.

Mas… o que é valor?

-Necessidade gera valor!

-Cliente puxa a produção Plan driven x client driven

Page 58: Test First, TDD e outro Bichos

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

Page 59: Test First, TDD e outro Bichos

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

Page 60: Test First, TDD e outro Bichos

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

Page 61: Test First, TDD e outro Bichos

Universo “D”: duas abordagensAutomatizada x Manual: qual a melhor?

Page 62: Test First, TDD e outro Bichos

62

Quem precisa de Quem precisa de ExploratóriosExploratórios??

Page 63: Test First, TDD e outro Bichos

63

Quem precisa de Quem precisa de ExploratóriosExploratórios??

Page 64: Test First, TDD e outro Bichos

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

Page 65: Test First, TDD e outro Bichos

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

ATDD

Page 66: Test First, TDD e outro Bichos

66Driving Development with Tests:ATDD and TDD, Elisabeth Hendrickson

Todo o time explora e modelaTime

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

Page 67: Test First, TDD e outro Bichos

POSSO COLABORAR COM POSSO COLABORAR COM MAIS RESPOSTAS?MAIS RESPOSTAS?

67

[email protected]

br.linkedin.com/in/kfranklint

92-99416-0873

Page 68: Test First, TDD e outro Bichos

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