test first, tdd e outro bichos

Post on 09-Feb-2017

326 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

kleitor.franklint@gmail.comKleitor Franklint

Test First, TDD

e outros Bichos

BDD, ATDD at all

KLEITOR

Entusiasta da Vida, Qualidade,

Colaborativos,Ágil,

Teste e Testes Ágeis.

kleitor.franklint@gmail.com

br.linkedin.com/in/kfranklint

92-99416-0873

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

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

Testes de Aceitação

Orientação a Valor

O Universo “D”

A grande visão

5

Agile ALM - Jurgen Appelo

Repensando o saber.

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

George E. P. Box

Ágil no mundo realUm pouco de contexto

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.

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?

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

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

Agile!Agile!!

Agile!!!Orientado a Test First

12

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

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

13

O que é “Ágil”, Afinal?

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

Rapid Testing

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

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

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

17

O que é “Ágil”, Afinal?

É sobre práticas para reduzir incertezas:

Qual o custo do desconhecido?

Requisitos de

negócios

Requisitos

funcionais

Suposições Hipóteses

18

É sobre Modelagem É sobre Modelagem Orientada a teste

O que é “Ágil”, Afinal?

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

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

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

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.

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

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

Hora do Quiz.

25

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

Definição de insanidade por Albert Einstein

Repensando o fazer.

“D” de design, “D” desenvolvimento

BDD

TDD

ATDD

E os outros “D”?AMDDDDTTDDDTDDWD

O Universo “D”

BDD

TDD

ATDD

E os outros “D”?AMDDDDTTDDDTDDWD

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

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

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.

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

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

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

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

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.

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)

TDD

36

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

Bem por cima

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

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

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

TDD: Frameworks

40

Natural: NUnit

PHP: PHP UnitJava: Junit, Test NG

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

E no começo só havia desenvolvedores

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

Quem precisa de

BDD?

43

Como modelar a necessidade do cliente?

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

Quem precisa de BDD?

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

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

pontos de vista?

-Usando Exemplos-Usando Linguaguem Universal

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

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“

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

BDD

49

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

Bem por cima

BDD: Frameworks

50

Ruby: Cucumber

Java: JBehave, at all

PHP: Behat, at all.

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

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

BDD, TDD, ATDD

O que faz valer à pena?

53

Orientando a Valor…

54

10 anos fazendo BDD totalmente errado

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

O que faz valer à pena?

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

Qual o valor da automação se…

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

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

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

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

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

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

62

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

63

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

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

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

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

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

67

kleitor.franklint@gmail.com

br.linkedin.com/in/kfranklint

92-99416-0873

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

top related