O documento apresenta um resumo de três frases ou menos:
1. O documento discute práticas ágeis como Test First, TDD, BDD e ATDD e como aplicá-las no mundo real de forma simples e orientada a teste para criar produtos de melhor qualidade.
2. É apresentado o "Universo D" que engloba técnicas como TDD, BDD e ATDD e discute as vantagens da abordagem automatizada versus manual destas técnicas.
3. O documento argumenta que exploratórios e validação de necess
1. Test First, TDD
e outros Bichos
BDD, ATDD at all
KLEITOR Lean SS Black Belt certified
Kanban Coach certified
Scrum Coach certified
Lean expert and QA
specialist
kleitor.franklint@gmail.com
br.linkedin.com/in/kfranklint
2. 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
3. 3
Um Road Map
1 Ágil no mundo real...
Testes de Aceitação
3
4
Orientação a
Valor
O Universo “D”
2
5
4. 4
Agile ALM - Jurgen Appelo
Repensando o saber.
Essencialmente todos os modelos estão errados,
mas alguns são úteis
George E. P. Box
6. 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.
7. 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?
8. É 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?
9. 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
Pouco tempo, demanda maior que a capacidade
de atendimento, dentre outros.
O Ágil pode ajudar a lidar ou eliminar esses cenários?
12. 12
O que é “Ágil”, Afinal?
Agil não é metodologia, mas práticas
úteis, principalmente comportamentais
Rapid Testing
13. 13
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
14. 14
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!!!
15. 15
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
16. 16
O que é “Ágil”, Afinal?
É sobre práticas para reduzir
incertezas:
Qual o custo do desconhecido?
17. Ciclo de vida de projeto orientado a Alice
Ciclo de vida orientado à incerteza
Requisitos de
negócios
Requisitos
funcionais
desenvolvimento Entrega
Suposições Hipóteses Experimentos Validação
17
É sobre Modelagem Orientada a teste
O que é “Ágil”, Afinal?
18. 18
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
19. 19
É 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?
20. 20
-É sobre Ritmo
sustentável
O que é “Ágil”, Afinal?
Não é sobre o “quanto
produz”, mas a qualidade
da produção: vida e
produto.
21. 21
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.
22. 22
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!!!
28. Alguns conceitos
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.
29. ATDD (Acceptance Test Driven Development)
O núcleo de todas as
práticas
Teste de
Aceitação
30. 30
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.. Design orientado
31. 31
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..
Design orientado
32. 32
ATDD: Técnicas de design
BDD
TDD
CARD e Exploratórios
Desenhando testes de aceitação
33. Test Driven Development (TDD)
33Figura: 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.
34. 34
Então não é a mesma coisa que um teste unitário?
Não, “testes unitários” focam na lógica do código, TDD foca
no negócio.
Test Driven Development (TDD)
36. Manutenibilidade
-Mais fácil manutenção: menor injeção de dependências
-Melhoria continua do design
Orientado a valor
-Valida o código do ponto de vista do negócio
Facilita a aprendizagem
-Auxilia time a entender o código e aprender mais rapidamente;
-Minimiza intermediários
36
TDD
37. 37
Debug x Test First: reativo x proativo
-Localização do bug mais rápida pela execução da suite de teste
Entrega e integração contínua
-Produz teste de aceitação, integração e regressão
Documentação viva
-Mantem a documentação sobre o código atualizada
-Agente estratégico na engenharia de conhecimento
-Basta rodar e aprender
TDD
38. 38
Melhora produtividade
-Agente colaborador de produtividade
-Auxilia a promover ritmo sustentável
-Integra o time
Ferramenta de apoio a comunicação
-Experimentar e ganhar feedback
-Risk First
Gestão de Falha x TDD
-Modelo proativo, dinâmico e vivo de gerir falhas
TDD
40. 40
Teste de aceitação com
Fonte da imagem: http://istqbexamcertification.com/what-are-the-different-agile-testing-methodology-test-driven-development-behavior-driven-development/
BDD
-Behavior Driven Development
-Behavior Driven Design
É sobre automação… mas é só?
Não… logo conversamos mais
41. 41
E no começo só havia desenvolvedores
… e então surgiram analistas, testadores, cliente e stakeholders
Quem precisa
de BDD?
42. 42
Como modelar a necessidade do cliente?
Dois universos…
“dos dados e informações” e “bug zero”
Quem precisa de BDD?
43. 43
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
44. 44
Quem precisa de BDD?
Como modelar a árvore de diferentes
pontos de vista?
-Usando Exemplos
-Usando Linguaguem Universal
45. 45
BDD critério de aceitação
Desafio: expressões individualizadas do critério
Specification-By-Example with Gherkin, CHRISTIAN HASSA
46. 46
O que é
BDD (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“
47. BDD em nível de implementação tem
duas partes Visão
viva do
cliente
50. 50
Melhora 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ção
- Promove linguagem universal entre times e envolvidos
- Permite Experimentar e ganhar feedback
BDD
51. 51
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)
Documentação viva (Basta rodar e aprender)
BDD
53. 53
10 anos fazendo BDD
totalmente errado
Liz Keogh
https://www.youtube.com/watch?v=2EM4itu7j7I
O que faz valer à pena?
54. 54
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
55. 55
Qual o valor
da automação se…
-Não atende a necessidade do cliente?
-Não torna o time mais produtivo?
56. 56
Desenvolvimento orientado a valor como proposta.
Mas… o que é valor?
-Necessidade gera valor!
-Cliente puxa a produção
Plan driven x client driven
57. 57
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
58. Teste continuo+entregas frequentes +
Restropectivas+ muito feedback+
envolva o time+ valores ágeis
58
Como descobrir e validar necessidades?
Ou Ágil , BDD e TDD anêmicos
59. 59
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
63. 63
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
64. 64
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
65. 65
Driving 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: ATDD
Testers, Dev,
Analistas
modelam
testes de
aceitação
66. POSSO COLABORAR COM
MAIS RESPOSTAS?
66
kleitor.franklint@gmail.com
br.linkedin.com/in/kfranklint
92-99416-0873