Desenvolvimento Ágil de Software com Qualidade Intrínseca

1.454 visualizações

Publicada em

This is a little presentation to make absolutely clear why test automation and test driven development are key to any software development process that strives for high quality and high productivity. Brazilian portuguese.

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.454
No SlideShare
0
A partir de incorporações
0
Número de incorporações
8
Ações
Compartilhamentos
0
Downloads
34
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desenvolvimento Ágil de Software com Qualidade Intrínseca

  1. 1. Processo de Desenvolvimento Ágil com Qualidade Intrínseca Teoria, Práticas e Ferramentas
  2. 2. Processo Típico Desenvolvimento-Teste Segregado 1 mês Desenvolvimento Testes Desenvolvimento Testes Bug Bug Bug Bug Introduzido Detectado Corrigido Verificado Ágil?
  3. 3. Processo “Pull” Visão Analista de Clientes e Suporte Valor Usuários Código Funcionalidades Desenvolvedor Analista de Negócio Cenários e Critérios de Histórias Aceitação Analista de Qualidade
  4. 4. Como? • Competências – Linguagem de Histórias e Cenários – Automação de Cenários – Desenvolvimento de Software • Práticas – AATDD – Automated Acceptance Test Driven-Development – BDD & TDD – Behaviour & Test Driven-Development • Ferramentas – RFT – Selenium – Watir – Jemmy – Cucumber – Twist – Junit – Java – Ruby – ...
  5. 5. Testes, testes, testes... Tradicional Intrínseca Escrevendo Escrevendo Automatizando Automatizando Executando Executando Analisando Analisando Onde está o trabalho do analista de qualidade?
  6. 6. Meta: eliminar o trabalho de execução de testes Teste manual é um imposto caro pago a cada ciclo de desenvolvimento
  7. 7. Qualidade Tradicional x Ágil Tradicional Intrínseca • Manual • Automatizada • Desmotivante • Divertida • Lenta • Rápida • Falha • Sistemática, abrangente • Baixa competência • Alta competência • Baixo valor agregado • Alto valor agregado • Reativa • Proativa • Defensiva • Direcionadora • Segregada • Integrada
  8. 8. Próximo Nível de Qualidade Qualidade Intrínseca (Automatizada) Desenvolvedor Automação de Testes A. de Testes Linguagem de Cenários A. de Negócios Qualidade por Inspeção (Manual)
  9. 9. 5 razões para amar testes ágeis 1. Sempre existe tempo para testes, pois os testes são a primeira coisa que é feita 2. Chega de testes manuais 3. Os resultados dos testes aparecem várias vezes por dia 4. O clima é de “time jogando junto” 5. O testador pode consertar bugs
  10. 10. Linguagem de Histórias e Cenários http://dannorth.net/whats-in-a-story
  11. 11. Linguagem de Histórias • Para que ... • Eu, como ... • Quero ...
  12. 12. Linguagem de Histórias • Para que ... VALOR • Eu, como ... PAPEL • Quero ... FUNCIONALIDADE
  13. 13. Linguagem de Histórias • Para que se possa decidir sobre ações numa emergência • Eu, como gerente de recursos materiais, • Quero consultar que materiais de um determinado tipo estão disponíveis para potencial uso na resposta a emergência
  14. 14. Linguagem de Cenários • Dado que ... – E ... • Quando ... – E ... • Então ... – E ...
  15. 15. Linguagem de Cenários • Dado que ... CONTEXTO / PRÉ-CONDIÇÕES – E ... • Quando ... EVENTO / ENTRADA – E ... • Então ... EXPECTATIVA / SAÍDA – E ...
  16. 16. Linguagem de Cenários • Dado que estou acompanhando uma emergência em andamento na fábrica • Quando eu entrar no módulo de Consultas – E clicar em “Recursos Materiais” na árvore de classes – E buscar por tipo “Barreiras” • Então eu devo ver uma lista de objetos do tipo “Barreiras” – E eu devo ver a quantidade disponível de cada recurso para minha unidade – E eu devo ver a distância de cada recurso para minha unidade – E eu devo ver o status de expiração para cada recurso – E eu devo ver um link “Solicitar” para cada recurso
  17. 17. Automação de Cenários • Dado que estou acompanhando uma emergência em Código andamento na fábrica executável • Quando eu entrar no módulo de Consultas Código – E clicar em “Recursos Materiais” na árvore de classes executável – E buscar por tipo “Barreiras” • Então eu devo ver uma lista de objetos do tipo “Barreiras” – E eu devo ver a quantidade disponível de cada recurso para minha unidade Código – E eu devo ver a distância de cada recurso para minha unidade executável – E eu devo ver o status de expiração para cada recurso – E eu devo ver um link “Solicitar” para cada recurso
  18. 18. Automação de Cenários com Cucumber
  19. 19. Automação de Cenários com Cucumber When /clicar em “(.*)” na árvore de classes/ do |classe| arvore = browser.current_page.arvore_de_classes arvore.click(classe) end Then /eu devo ver uma lista de objetos do tipo “(.*)”/ do |tipo| pagina = browser.current_page assert_true(pagina.contains_text?(“Resultado”)) assert_true(pagina.contains_text?(“ encontrados”)) assert_true(pagina.contains_text?(tipo)) end
  20. 20. Automação de Cenários com Cucumber-Java public class ArvoreSteps { @When(“clicar em “(.*)” na árvore de classes”) public void clicarEmClasse(String classe) { arvore = new ArvoreClasses(browser().getCurrentPage()) arvore.click(classe) } }
  21. 21. THE END Moral da história: “Teste de regressão manual é uma prática totalmente inviável e inaceitável.” ”Use os testes de aceitação automatizados para direcionar o desenvolvimento.”

×