SlideShare uma empresa Scribd logo
1 de 21
Processo de
  Desenvolvimento Ágil
com Qualidade Intrínseca
Teoria, Práticas e Ferramentas
Processo Típico
 Desenvolvimento-Teste Segregado

                           1 mês

Desenvolvimento   Testes           Desenvolvimento    Testes




   Bug                Bug                 Bug            Bug
   Introduzido        Detectado           Corrigido      Verificado




                           Ágil?
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
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
   –   ...
Testes, testes, testes...

Tradicional                      Intrínseca

                 Escrevendo                   Escrevendo
                 Automatizando                Automatizando
                 Executando                   Executando
                 Analisando                   Analisando




       Onde está o trabalho do
       analista de qualidade?
Meta: eliminar o trabalho de
    execução de testes
Teste manual é um imposto caro pago
   a cada ciclo de desenvolvimento
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
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)
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
Linguagem de
    Histórias e Cenários
http://dannorth.net/whats-in-a-story
Linguagem de Histórias
• Para que ...

• Eu, como ...

• Quero ...
Linguagem de Histórias
• Para que ... VALOR

• Eu, como ... PAPEL

• Quero ... FUNCIONALIDADE
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
Linguagem de Cenários
• Dado que ...
  – E ...


• Quando ...
  – E ...


• Então ...
  – E ...
Linguagem de Cenários
• Dado que ... CONTEXTO / PRÉ-CONDIÇÕES
  – E ...


• Quando ... EVENTO / ENTRADA
  – E ...


• Então ... EXPECTATIVA / SAÍDA
  – E ...
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
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
Automação de Cenários
    com Cucumber
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
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)
    }

}
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.”

Mais conteúdo relacionado

Destaque

21p, segredos da motivação
21p, segredos da motivação21p, segredos da motivação
21p, segredos da motivaçãoValentina Silva
 
Comparativo ncpc jun14
Comparativo ncpc jun14Comparativo ncpc jun14
Comparativo ncpc jun14Luiz Dellore
 
Depoimento de um aprovado
Depoimento de um aprovadoDepoimento de um aprovado
Depoimento de um aprovadoWagson Filho
 
A dois passos do paraíso - Professor Geraldo Furtado de Araújo Neto
A dois passos do paraíso - Professor Geraldo Furtado de Araújo NetoA dois passos do paraíso - Professor Geraldo Furtado de Araújo Neto
A dois passos do paraíso - Professor Geraldo Furtado de Araújo NetoWagson Filho
 
Acórdão do Tribunal de Justiça de Goiás
Acórdão do Tribunal de Justiça de GoiásAcórdão do Tribunal de Justiça de Goiás
Acórdão do Tribunal de Justiça de GoiásWagson Filho
 
Depoimento e dicas - Professor Luciano José de Oliveira
Depoimento e dicas - Professor Luciano José de OliveiraDepoimento e dicas - Professor Luciano José de Oliveira
Depoimento e dicas - Professor Luciano José de OliveiraWagson Filho
 
Sistema de responsabilidade civil vigente no Brasil
Sistema de responsabilidade civil vigente no BrasilSistema de responsabilidade civil vigente no Brasil
Sistema de responsabilidade civil vigente no BrasilWagson Filho
 
Recurso da prova objetiva - TRT8
Recurso da prova objetiva - TRT8Recurso da prova objetiva - TRT8
Recurso da prova objetiva - TRT8Wagson Filho
 
Texto motivacional - Glauco Bresciani
Texto motivacional - Glauco BrescianiTexto motivacional - Glauco Bresciani
Texto motivacional - Glauco BrescianiWagson Filho
 
Dicas para provas objetivas - Professor Glauco Bresciani
Dicas para provas objetivas - Professor Glauco BrescianiDicas para provas objetivas - Professor Glauco Bresciani
Dicas para provas objetivas - Professor Glauco BrescianiWagson Filho
 
Dicas para provas orais - Professor Acácio Garcia
Dicas para provas orais - Professor Acácio GarciaDicas para provas orais - Professor Acácio Garcia
Dicas para provas orais - Professor Acácio GarciaWagson Filho
 
Dicas para provas dissertativas
Dicas para provas dissertativasDicas para provas dissertativas
Dicas para provas dissertativasWagson Filho
 
Texto Argumentativo Conectores do Discurso (CLC)
Texto Argumentativo Conectores do Discurso (CLC)Texto Argumentativo Conectores do Discurso (CLC)
Texto Argumentativo Conectores do Discurso (CLC)efaesan
 
Inglês instrumental aula 5
Inglês instrumental aula 5Inglês instrumental aula 5
Inglês instrumental aula 5Robson Ferreira
 

Destaque (18)

21p, segredos da motivação
21p, segredos da motivação21p, segredos da motivação
21p, segredos da motivação
 
Manual jef compiladocr
Manual jef compiladocrManual jef compiladocr
Manual jef compiladocr
 
Comparativo ncpc jun14
Comparativo ncpc jun14Comparativo ncpc jun14
Comparativo ncpc jun14
 
Depoimento de um aprovado
Depoimento de um aprovadoDepoimento de um aprovado
Depoimento de um aprovado
 
A dois passos do paraíso - Professor Geraldo Furtado de Araújo Neto
A dois passos do paraíso - Professor Geraldo Furtado de Araújo NetoA dois passos do paraíso - Professor Geraldo Furtado de Araújo Neto
A dois passos do paraíso - Professor Geraldo Furtado de Araújo Neto
 
Acórdão do Tribunal de Justiça de Goiás
Acórdão do Tribunal de Justiça de GoiásAcórdão do Tribunal de Justiça de Goiás
Acórdão do Tribunal de Justiça de Goiás
 
Depoimento e dicas - Professor Luciano José de Oliveira
Depoimento e dicas - Professor Luciano José de OliveiraDepoimento e dicas - Professor Luciano José de Oliveira
Depoimento e dicas - Professor Luciano José de Oliveira
 
Sistema de responsabilidade civil vigente no Brasil
Sistema de responsabilidade civil vigente no BrasilSistema de responsabilidade civil vigente no Brasil
Sistema de responsabilidade civil vigente no Brasil
 
Scrum Checklist
Scrum ChecklistScrum Checklist
Scrum Checklist
 
Recurso da prova objetiva - TRT8
Recurso da prova objetiva - TRT8Recurso da prova objetiva - TRT8
Recurso da prova objetiva - TRT8
 
Texto motivacional - Glauco Bresciani
Texto motivacional - Glauco BrescianiTexto motivacional - Glauco Bresciani
Texto motivacional - Glauco Bresciani
 
Dicas para provas objetivas - Professor Glauco Bresciani
Dicas para provas objetivas - Professor Glauco BrescianiDicas para provas objetivas - Professor Glauco Bresciani
Dicas para provas objetivas - Professor Glauco Bresciani
 
Dicas para provas orais - Professor Acácio Garcia
Dicas para provas orais - Professor Acácio GarciaDicas para provas orais - Professor Acácio Garcia
Dicas para provas orais - Professor Acácio Garcia
 
Dicas para provas dissertativas
Dicas para provas dissertativasDicas para provas dissertativas
Dicas para provas dissertativas
 
W23 Conectores
W23 ConectoresW23 Conectores
W23 Conectores
 
Texto Argumentativo Conectores do Discurso (CLC)
Texto Argumentativo Conectores do Discurso (CLC)Texto Argumentativo Conectores do Discurso (CLC)
Texto Argumentativo Conectores do Discurso (CLC)
 
Inglês instrumental aula 5
Inglês instrumental aula 5Inglês instrumental aula 5
Inglês instrumental aula 5
 
Conectores
ConectoresConectores
Conectores
 

Semelhante a Desenvolvimento Ágil de Software com Qualidade Intrínseca

Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
 
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...Daniel Wildt
 
Automação de Teste - BRATESTE 2010
Automação de Teste - BRATESTE 2010Automação de Teste - BRATESTE 2010
Automação de Teste - BRATESTE 2010Elias Nogueira
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMAdriano Bertucci
 
Estratégias e Técnicas de Testes - Parte1
Estratégias e Técnicas de Testes - Parte1Estratégias e Técnicas de Testes - Parte1
Estratégias e Técnicas de Testes - Parte1Lorena Caldas
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareMarcelo Fleury
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
 
Testes em métodos ágeis
Testes em métodos ágeisTestes em métodos ágeis
Testes em métodos ágeisQualister
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Tchelinux
 
Melhorando a qualidade do software com testes de ponta a-ponta
Melhorando a qualidade do software com testes de ponta a-pontaMelhorando a qualidade do software com testes de ponta a-ponta
Melhorando a qualidade do software com testes de ponta a-pontaGuilherme Cardoso
 
Automação de testes: Teoria e Prática (SENAI) - Qualister
Automação de testes: Teoria e Prática (SENAI) - QualisterAutomação de testes: Teoria e Prática (SENAI) - Qualister
Automação de testes: Teoria e Prática (SENAI) - QualisterCristiano Caetano
 
Desenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosDesenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosVitor Silva
 
Introdução a Testes de Software
Introdução a Testes de SoftwareIntrodução a Testes de Software
Introdução a Testes de SoftwareIgor Takenami
 
Automação de Testes de Software (Campus Party)
Automação de Testes de Software (Campus Party)Automação de Testes de Software (Campus Party)
Automação de Testes de Software (Campus Party)Eduardo Souza
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwareGTS-CE
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de SoftwareQualister
 
Qualidade de Software - Desenvolvimento dirigido por testes
Qualidade de Software - Desenvolvimento dirigido por testesQualidade de Software - Desenvolvimento dirigido por testes
Qualidade de Software - Desenvolvimento dirigido por testesJoaquim Lopes Júnior
 

Semelhante a Desenvolvimento Ágil de Software com Qualidade Intrínseca (20)

Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
Agile official
Agile officialAgile official
Agile official
 
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
 
Automação de Teste - BRATESTE 2010
Automação de Teste - BRATESTE 2010Automação de Teste - BRATESTE 2010
Automação de Teste - BRATESTE 2010
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
 
Estratégias e Técnicas de Testes - Parte1
Estratégias e Técnicas de Testes - Parte1Estratégias e Técnicas de Testes - Parte1
Estratégias e Técnicas de Testes - Parte1
 
Testing sucks
Testing sucksTesting sucks
Testing sucks
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de Software
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
Testes em métodos ágeis
Testes em métodos ágeisTestes em métodos ágeis
Testes em métodos ágeis
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes.
 
Melhorando a qualidade do software com testes de ponta a-ponta
Melhorando a qualidade do software com testes de ponta a-pontaMelhorando a qualidade do software com testes de ponta a-ponta
Melhorando a qualidade do software com testes de ponta a-ponta
 
Automação de testes: Teoria e Prática (SENAI) - Qualister
Automação de testes: Teoria e Prática (SENAI) - QualisterAutomação de testes: Teoria e Prática (SENAI) - Qualister
Automação de testes: Teoria e Prática (SENAI) - Qualister
 
Desenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosDesenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes Unitários
 
Introdução a Testes de Software
Introdução a Testes de SoftwareIntrodução a Testes de Software
Introdução a Testes de Software
 
Automação de Testes de Software (Campus Party)
Automação de Testes de Software (Campus Party)Automação de Testes de Software (Campus Party)
Automação de Testes de Software (Campus Party)
 
Papéis em teste e qualidade de software
Papéis em teste e qualidade de softwarePapéis em teste e qualidade de software
Papéis em teste e qualidade de software
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Qualidade de Software - Desenvolvimento dirigido por testes
Qualidade de Software - Desenvolvimento dirigido por testesQualidade de Software - Desenvolvimento dirigido por testes
Qualidade de Software - Desenvolvimento dirigido por testes
 

Desenvolvimento Ágil de Software com Qualidade Intrínseca

  • 1. Processo de Desenvolvimento Ágil com Qualidade Intrínseca Teoria, Práticas e Ferramentas
  • 2. Processo Típico Desenvolvimento-Teste Segregado 1 mês Desenvolvimento Testes Desenvolvimento Testes Bug Bug Bug Bug Introduzido Detectado Corrigido Verificado Ágil?
  • 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. 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. Testes, testes, testes... Tradicional Intrínseca Escrevendo Escrevendo Automatizando Automatizando Executando Executando Analisando Analisando Onde está o trabalho do analista de qualidade?
  • 6. Meta: eliminar o trabalho de execução de testes Teste manual é um imposto caro pago a cada ciclo de desenvolvimento
  • 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. 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. 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. Linguagem de Histórias e Cenários http://dannorth.net/whats-in-a-story
  • 11. Linguagem de Histórias • Para que ... • Eu, como ... • Quero ...
  • 12. Linguagem de Histórias • Para que ... VALOR • Eu, como ... PAPEL • Quero ... FUNCIONALIDADE
  • 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. Linguagem de Cenários • Dado que ... – E ... • Quando ... – E ... • Então ... – E ...
  • 15. Linguagem de Cenários • Dado que ... CONTEXTO / PRÉ-CONDIÇÕES – E ... • Quando ... EVENTO / ENTRADA – E ... • Então ... EXPECTATIVA / SAÍDA – E ...
  • 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. 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. Automação de Cenários com Cucumber
  • 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. 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. 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.”