KLEITOR
Entusiasta da Vida, Qualidade,
Colaborativos,Ágil,
Teste e Testes Ágeis.
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
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