(48) 4052-9536 / 9540
 contato@qualister.com.br

• Terceirização de profissionais
• Consultoria de teste
• Avaliação de usabilidade
• Automação de testes
• Testes de performance
• Treinamentos




                                   Fundamentos
                                     Testes ágeis
  www.qualister.com.br
Direitos autorais




www.qualister.com.br
Instrutor

                       Cristiano Caetano
                       Email: cristiano.caetano@qualister.com.br
                       Apresentações: slideshare.net/cristianocaetano
                       Blog: cristianocaetano.wordpress.com
                       É certificado CBTS pela ALATS. Diretor técnico da Qualister com mais de 10 anos de experiência, já
                       trabalhou na área de qualidade e teste de software para grandes empresas como Zero G, DELL e HP Invent.
                       É colunista na área de Teste e Qualidade de software do site linhadecodigo.com.br e autor dos livros "CVS:
                       Controle de Versões e Desenvolvimento Colaborativo de Software" e "Automação e Gerenciamento de
                       Testes: Aumentando a Produtividade com as Principais Soluções Open Source e Gratuitas". Participante ativo
                       da comunidade de teste de software brasileira, é o criador e mantenedor do portal TestExpert: A sua
                       comunidade gratuita de teste e qualidade de software (www.testexpert.com.br).




www.qualister.com.br
Twitter




             twitter.com/c_caetano




www.qualister.com.br
Sobre a Qualister

•      Fundação: 2007.
•      Sobre a Qualister: A Qualister é uma empresa nacional, constituída a partir da união
       de profissionais qualificados e certificados na área de testes e qualidade de
       software, com o objetivo de integrar, implementar e implantar soluções com base nas
       melhores práticas do mercado e normas internacionais.
•      Colaboradores: A Qualister é composta por colaboradores pós-graduados e
       certificados na área de testes (CBTS, CSTE) com larga experiência na indústria de
       Tecnologia da Informação.
•      Área de atuação: A Qualister é uma empresa especializada em serviços de
       qualidade e teste de software. Tem como linhas de atuação consultoria em
       teste/qualidade de software, outsourcing (terceirização dos serviços através da
       alocação de profissionais) e treinamentos.
•      Localização: A Qualister está localizada em Biguaçu na Grande Florianópolis/SC e
       está instalada no CITEB – Centro de Inovação Tecnologia de Biguaçu no campus da
       universidade UNIVALI.




    www.qualister.com.br
Alguns clientes




www.qualister.com.br
Parcerias internacionais


                        Soluções para automação, profilling e gestão de testes




                       Soluções para testes de performance




                        Soluções de apoio a avaliação de usabilidade




www.qualister.com.br
Contato

• Email: contato@qualister.com.br
• Telefone: (48) 4052-9540 e (48) 4052-9536
• Endereço: Rua Patrício Antônio Teixeira, 317, Sala 406-A,
  Jardim Carandaí. Biguaçu/SC. CEP 88160-000




www.qualister.com.br
Tópico




                       • Introdução



www.qualister.com.br
Sopa de letrinhas


• Tópico 1
     – Sub tópico 1
            • Sub tópico 2




www.qualister.com.br
Manifesto Ágil


• Manifesto ágil - http://agilemanifesto.org
     – Princípios básicos
            • Indivíduos e interações são mais importantes que processos e
              ferramentas.
            • Software funcionando é mais importante do que documentação
              completa e detalhada.
            • Colaboração com o cliente é mais importante do que
              negociação de contratos.
            • Adaptação a mudanças é mais importante do que seguir
              estritamente um plano.




www.qualister.com.br
SCRUM




http://www.scrumalliance.org/
http://www.slideshare.net/adrianotavares/gesto-gil-de-projetos
http://www.slideshare.net/Ridlo/engenharia-de-software-100-agil-scrum-fdd-e-xp




 www.qualister.com.br
Extreme Programming




Valores             Princípios                  Práticas primárias                 Práticas corolárias
• Comunicação       • Auto-semelhança           • Ambiente Informativo             •Análise da Raiz do Problema
• Coragem           • Benefício Mútuo           • Build de Dez Minutos             • Base de Código Unificada
• Feedback          • Diversidade               • Ciclo Semanal                    • Código Coletivo
• Respeito          • Economia                  • Ciclo Trimestral                 • Código e Testes
• Simplicidade      • Falha                     • Desenvolvimento Orientado a      • Continuidade da Equipe
                    • Fluidez                   Testes                             • Contrato de Escopo
                    • Humanismo                 • Design Incremental               Negociável
                    • Melhoria                  • Equipe Integral                  • Envolvimento do Cliente Real
                    • Oportunidade              • Folga                            • Equipes que Encolhem
                    • Passos de Bebê            • Histórias                        • Implantação Diária
                    • Qualidade                 • Integração Contínua              • Implantação Incremental
                    • Redundância               • Programação em Par               • Pagar Por Uso
                    • Reflexão                  • Sentar-se Junto
                    • Responsabilidade Aceita   • Trabalho Energizado


                              http://www.extremeprogramming.org/map/project.html
 www.qualister.com.br
Características do teste de software tradicional


                                                                            BOEHM, Barry. Software Engineering
                                                                            Economics. Prentice Hall PTR, 1981




                       CRAIG, R.D., JASKIEL, S. P., “Systematic Software Testing”, Artech House Publishers, Boston, 2002.

www.qualister.com.br
Características do teste de software tradicional

•   É uma fase separada do desenvolvimento
•   É realizado por um equipe independente
•   Manual
•   Informal
•   Superficial
•   Enfoque apenas na interface gráfica
•   Ocorre no final de uma liberação ou no final do projeto
•   Última (ou única) peneira da qualidade
•   Os programadores desenvolvem e os testadores testam




www.qualister.com.br
Características do teste de software tradicional


   Cultura: Nós X Eles




www.qualister.com.br
Características do teste de software ágil


• Teste faz parte do processo de desenvolvimento
• Teste usado para complementar a documentação
• Teste usado para compartilhar o conhecimento
• Testes em todas as camadas da arquitetura (de
  dentro para fora e de fora para dentro)
• Os programadores testam, os testadores testam,
  os usuários testam (Test-Infected)




www.qualister.com.br
Características do teste de software ágil

• Cultura: A qualidade é responsabilidade de todos




                                             www.motivatedphotos.com
www.qualister.com.br
Qualidade e teste de software sob a perspectiva ágil


• Práticas/Princípios mais relevantes:
     – Desenvolvimento orientado a testes
     – Refactoring
     – Testes unitários
     – TDD
     – BDD
     – Programação em par
     – Integração contínua
     – Testes de aceitação


www.qualister.com.br
Tópico




             O papel do testador em
              projetos ágeis



www.qualister.com.br
Papel do testador em projetos ágeis

• As metodologias ágeis foram criadas sob a perspectiva do
  desenvolvimento.

• As práticas de testes são todas sob a perspectiva do
  desenvolvimento:
     –   Testes unitários
     –   Programação em par
     –   Integração continua
     –   Etc


O papel do testador não é claramente definido


www.qualister.com.br
Papel do testador em projetos ágeis

• As principais atividades desempenhadas por um
  testador num projeto ágil:

     – Clarificar estórias e esclarecer suposições;
     – Apoiar na escrita dos testes de aceitação;
     – Prover estimativas para as atividades de testes;
     – Automatizar os testes funcionais;
     – Planejar//Executar testes avançados (performance, segurança,
       usabilidade, etc);
     – Prover feedback contínuo sobre os níveis de qualidade.




                       XP Testing Without XP: Taking Advantage of Agile Testing Practices
www.qualister.com.br
Desafios do testador ágil

• Papel não
  reconhecido

• Tentar usar as
  práticas tradicionais
  de testes em projetos
  ágeis

• Dificuldade em
  interagir ou colaborar
  com um time
  multifuncional


www.qualister.com.br
Tópico




                   • Testes manuais em
                     projetos ágeis



www.qualister.com.br
Testes manuais em projetos ágeis




         Não existe
www.qualister.com.br
As duas faces do teste ágil

                                          Testes confirmatórios


                                             Testes unitários
                                   Testes de aceitação automatizados
                                           Integração contínua




                                        Testes exploratórios
                               Testes de cenários/transações de uso
                              Usabilidade/Performance/Segurança/Etc



                                           Testes investigativos
                       Adaptado de: Agile Testing and Quality Strategies: Discipline Over Rhetoric por Scott W. Ambler
                       Adaptado de: Agile testing quadrants por Brian Marick
www.qualister.com.br
Testes exploratórios

• O teste exploratório é, na sua definição mais
  básica, a criação e a execução ao mesmo
  tempo de um teste. Quando se realiza um teste
  exploratório, normalmente o testador não tem
  informações detalhadas sobre o que vai testar e
  como vai testar. O testador se baseia na sua
  experiência, assim como no conhecimento que ele
  vai adquirindo sobre o aplicativo durante a
  execução do teste exploratório. A partir dessa
  perspectiva, podemos afirmar que o teste
  exploratório é uma atividade iterativa e empírica
  de exploração que exige idas e vindas num
  processo de investigação contínuo onde a
  intuição, a criatividade e a experiência do testador
  são indispensáveis para garantir a eficiência do
  teste.

                       Cristiano Caetano: Testes exploratórios de A a Z
                       http://www.linhadecodigo.com.br/artigo/1102/Testes-Explorat%C3%B3rios-de-A-a-Z.aspx
www.qualister.com.br
Tópico




               • Automação de testes em
                 projetos ágeis



www.qualister.com.br
Teste de software ágil: Cedo, freqüente e automatizado

  “Cada minuto entre,
       quando um
  programador achar
 que uma estória está
terminada e realmente
 provar que a estória
   está terminada de
 verdade por meio de
testes de aceitação, é
 um minuto em que o
  projeto está fora de
        controle”
      Ron Jeffries
    (tradução livre)




                       http://www.extremeprogramming.org/map/loops.html
www.qualister.com.br
Teste de software ágil: Cedo, freqüente e automatizado



   Teste é mais do que uma fase separada, é uma atividade
    que se integra ao desenvolvimento. Teste contínuo é a
        única maneira de garantir progresso contínuo.
                       Wikipédia sobre Agile Testing
                              Tradução Livre




www.qualister.com.br
Pirâmide dos testes tradicionais


                                                              Testes funcionais manuais
                                                               Foco na interface gráfica
                                                           Baseado no modelo V ou Cascata



                                                               Testes automatizados
                                                             Foco na interface gráfica via
                                                                  capture/playback




                                                           Testes unitários e de integracão
                                                                Poucos ou inexistentes




                       Baseado em: Mike Cohn - Test Automation Pyramid
www.qualister.com.br
Pirâmide dos testes ágeis



                                                                Testes funcionais manuais
                                                                    Poucos ou nenhum



                                                                  Testes automatizados
                                                                  Foco em testes de API
                                                                Poucos testes baseados na
                                                                     interface gráfica


                                                            Testes unitários e de integracão
                                                            Abundantes (100% de cobertura)
                                                             Criados pelos desenvolvedores



                       Baseado em: Mike Cohn - Test Automation Pyramid
www.qualister.com.br
Testando em camadas diferentes


• Testando camadas diferentes




www.qualister.com.br
Testando em camadas diferentes

• Testes em todas as camadas da arquitetura (de dentro para
  fora e de fora para dentro)


                                    Código

                                       API

                       Interface gráfica
www.qualister.com.br
Automação de testes


• Tipos de testes automatizados
     – Record-Playback testing
     – Data-driven testing
     – Picture-driven testing
     – Model based-driven testing
     – Keyword-driven testing
     – Behavior-driven testing



www.qualister.com.br
Dúvidas?


• Contato:
     – Email: cristiano.caetano@qualister.com.br
     – Telefone: (48) 3285 5615 / 9645 5506
     – Endereço: Rua Patrício Antônio Teixeira, 317, Sala 406-
       A, Jardim Carandaí. Biguaçu/SC. CEP 88160-000




www.qualister.com.br

Testes em métodos ágeis

  • 1.
    (48) 4052-9536 /9540 contato@qualister.com.br • Terceirização de profissionais • Consultoria de teste • Avaliação de usabilidade • Automação de testes • Testes de performance • Treinamentos Fundamentos Testes ágeis www.qualister.com.br
  • 2.
  • 3.
    Instrutor Cristiano Caetano Email: cristiano.caetano@qualister.com.br Apresentações: slideshare.net/cristianocaetano Blog: cristianocaetano.wordpress.com É certificado CBTS pela ALATS. Diretor técnico da Qualister com mais de 10 anos de experiência, já trabalhou na área de qualidade e teste de software para grandes empresas como Zero G, DELL e HP Invent. É colunista na área de Teste e Qualidade de software do site linhadecodigo.com.br e autor dos livros "CVS: Controle de Versões e Desenvolvimento Colaborativo de Software" e "Automação e Gerenciamento de Testes: Aumentando a Produtividade com as Principais Soluções Open Source e Gratuitas". Participante ativo da comunidade de teste de software brasileira, é o criador e mantenedor do portal TestExpert: A sua comunidade gratuita de teste e qualidade de software (www.testexpert.com.br). www.qualister.com.br
  • 4.
    Twitter twitter.com/c_caetano www.qualister.com.br
  • 5.
    Sobre a Qualister • Fundação: 2007. • Sobre a Qualister: A Qualister é uma empresa nacional, constituída a partir da união de profissionais qualificados e certificados na área de testes e qualidade de software, com o objetivo de integrar, implementar e implantar soluções com base nas melhores práticas do mercado e normas internacionais. • Colaboradores: A Qualister é composta por colaboradores pós-graduados e certificados na área de testes (CBTS, CSTE) com larga experiência na indústria de Tecnologia da Informação. • Área de atuação: A Qualister é uma empresa especializada em serviços de qualidade e teste de software. Tem como linhas de atuação consultoria em teste/qualidade de software, outsourcing (terceirização dos serviços através da alocação de profissionais) e treinamentos. • Localização: A Qualister está localizada em Biguaçu na Grande Florianópolis/SC e está instalada no CITEB – Centro de Inovação Tecnologia de Biguaçu no campus da universidade UNIVALI. www.qualister.com.br
  • 6.
  • 7.
    Parcerias internacionais Soluções para automação, profilling e gestão de testes Soluções para testes de performance Soluções de apoio a avaliação de usabilidade www.qualister.com.br
  • 8.
    Contato • Email: contato@qualister.com.br •Telefone: (48) 4052-9540 e (48) 4052-9536 • Endereço: Rua Patrício Antônio Teixeira, 317, Sala 406-A, Jardim Carandaí. Biguaçu/SC. CEP 88160-000 www.qualister.com.br
  • 9.
    Tópico • Introdução www.qualister.com.br
  • 10.
    Sopa de letrinhas •Tópico 1 – Sub tópico 1 • Sub tópico 2 www.qualister.com.br
  • 11.
    Manifesto Ágil • Manifestoágil - http://agilemanifesto.org – Princípios básicos • Indivíduos e interações são mais importantes que processos e ferramentas. • Software funcionando é mais importante do que documentação completa e detalhada. • Colaboração com o cliente é mais importante do que negociação de contratos. • Adaptação a mudanças é mais importante do que seguir estritamente um plano. www.qualister.com.br
  • 12.
  • 13.
    Extreme Programming Valores Princípios Práticas primárias Práticas corolárias • Comunicação • Auto-semelhança • Ambiente Informativo •Análise da Raiz do Problema • Coragem • Benefício Mútuo • Build de Dez Minutos • Base de Código Unificada • Feedback • Diversidade • Ciclo Semanal • Código Coletivo • Respeito • Economia • Ciclo Trimestral • Código e Testes • Simplicidade • Falha • Desenvolvimento Orientado a • Continuidade da Equipe • Fluidez Testes • Contrato de Escopo • Humanismo • Design Incremental Negociável • Melhoria • Equipe Integral • Envolvimento do Cliente Real • Oportunidade • Folga • Equipes que Encolhem • Passos de Bebê • Histórias • Implantação Diária • Qualidade • Integração Contínua • Implantação Incremental • Redundância • Programação em Par • Pagar Por Uso • Reflexão • Sentar-se Junto • Responsabilidade Aceita • Trabalho Energizado http://www.extremeprogramming.org/map/project.html www.qualister.com.br
  • 14.
    Características do testede software tradicional BOEHM, Barry. Software Engineering Economics. Prentice Hall PTR, 1981 CRAIG, R.D., JASKIEL, S. P., “Systematic Software Testing”, Artech House Publishers, Boston, 2002. www.qualister.com.br
  • 15.
    Características do testede software tradicional • É uma fase separada do desenvolvimento • É realizado por um equipe independente • Manual • Informal • Superficial • Enfoque apenas na interface gráfica • Ocorre no final de uma liberação ou no final do projeto • Última (ou única) peneira da qualidade • Os programadores desenvolvem e os testadores testam www.qualister.com.br
  • 16.
    Características do testede software tradicional Cultura: Nós X Eles www.qualister.com.br
  • 17.
    Características do testede software ágil • Teste faz parte do processo de desenvolvimento • Teste usado para complementar a documentação • Teste usado para compartilhar o conhecimento • Testes em todas as camadas da arquitetura (de dentro para fora e de fora para dentro) • Os programadores testam, os testadores testam, os usuários testam (Test-Infected) www.qualister.com.br
  • 18.
    Características do testede software ágil • Cultura: A qualidade é responsabilidade de todos www.motivatedphotos.com www.qualister.com.br
  • 19.
    Qualidade e testede software sob a perspectiva ágil • Práticas/Princípios mais relevantes: – Desenvolvimento orientado a testes – Refactoring – Testes unitários – TDD – BDD – Programação em par – Integração contínua – Testes de aceitação www.qualister.com.br
  • 20.
    Tópico O papel do testador em projetos ágeis www.qualister.com.br
  • 21.
    Papel do testadorem projetos ágeis • As metodologias ágeis foram criadas sob a perspectiva do desenvolvimento. • As práticas de testes são todas sob a perspectiva do desenvolvimento: – Testes unitários – Programação em par – Integração continua – Etc O papel do testador não é claramente definido www.qualister.com.br
  • 22.
    Papel do testadorem projetos ágeis • As principais atividades desempenhadas por um testador num projeto ágil: – Clarificar estórias e esclarecer suposições; – Apoiar na escrita dos testes de aceitação; – Prover estimativas para as atividades de testes; – Automatizar os testes funcionais; – Planejar//Executar testes avançados (performance, segurança, usabilidade, etc); – Prover feedback contínuo sobre os níveis de qualidade. XP Testing Without XP: Taking Advantage of Agile Testing Practices www.qualister.com.br
  • 23.
    Desafios do testadorágil • Papel não reconhecido • Tentar usar as práticas tradicionais de testes em projetos ágeis • Dificuldade em interagir ou colaborar com um time multifuncional www.qualister.com.br
  • 24.
    Tópico • Testes manuais em projetos ágeis www.qualister.com.br
  • 25.
    Testes manuais emprojetos ágeis Não existe www.qualister.com.br
  • 26.
    As duas facesdo teste ágil Testes confirmatórios Testes unitários Testes de aceitação automatizados Integração contínua Testes exploratórios Testes de cenários/transações de uso Usabilidade/Performance/Segurança/Etc Testes investigativos Adaptado de: Agile Testing and Quality Strategies: Discipline Over Rhetoric por Scott W. Ambler Adaptado de: Agile testing quadrants por Brian Marick www.qualister.com.br
  • 27.
    Testes exploratórios • Oteste exploratório é, na sua definição mais básica, a criação e a execução ao mesmo tempo de um teste. Quando se realiza um teste exploratório, normalmente o testador não tem informações detalhadas sobre o que vai testar e como vai testar. O testador se baseia na sua experiência, assim como no conhecimento que ele vai adquirindo sobre o aplicativo durante a execução do teste exploratório. A partir dessa perspectiva, podemos afirmar que o teste exploratório é uma atividade iterativa e empírica de exploração que exige idas e vindas num processo de investigação contínuo onde a intuição, a criatividade e a experiência do testador são indispensáveis para garantir a eficiência do teste. Cristiano Caetano: Testes exploratórios de A a Z http://www.linhadecodigo.com.br/artigo/1102/Testes-Explorat%C3%B3rios-de-A-a-Z.aspx www.qualister.com.br
  • 28.
    Tópico • Automação de testes em projetos ágeis www.qualister.com.br
  • 29.
    Teste de softwareágil: Cedo, freqüente e automatizado “Cada minuto entre, quando um programador achar que uma estória está terminada e realmente provar que a estória está terminada de verdade por meio de testes de aceitação, é um minuto em que o projeto está fora de controle” Ron Jeffries (tradução livre) http://www.extremeprogramming.org/map/loops.html www.qualister.com.br
  • 30.
    Teste de softwareágil: Cedo, freqüente e automatizado Teste é mais do que uma fase separada, é uma atividade que se integra ao desenvolvimento. Teste contínuo é a única maneira de garantir progresso contínuo. Wikipédia sobre Agile Testing Tradução Livre www.qualister.com.br
  • 31.
    Pirâmide dos testestradicionais Testes funcionais manuais Foco na interface gráfica Baseado no modelo V ou Cascata Testes automatizados Foco na interface gráfica via capture/playback Testes unitários e de integracão Poucos ou inexistentes Baseado em: Mike Cohn - Test Automation Pyramid www.qualister.com.br
  • 32.
    Pirâmide dos testeságeis Testes funcionais manuais Poucos ou nenhum Testes automatizados Foco em testes de API Poucos testes baseados na interface gráfica Testes unitários e de integracão Abundantes (100% de cobertura) Criados pelos desenvolvedores Baseado em: Mike Cohn - Test Automation Pyramid www.qualister.com.br
  • 33.
    Testando em camadasdiferentes • Testando camadas diferentes www.qualister.com.br
  • 34.
    Testando em camadasdiferentes • Testes em todas as camadas da arquitetura (de dentro para fora e de fora para dentro) Código API Interface gráfica www.qualister.com.br
  • 35.
    Automação de testes •Tipos de testes automatizados – Record-Playback testing – Data-driven testing – Picture-driven testing – Model based-driven testing – Keyword-driven testing – Behavior-driven testing www.qualister.com.br
  • 36.
    Dúvidas? • Contato: – Email: cristiano.caetano@qualister.com.br – Telefone: (48) 3285 5615 / 9645 5506 – Endereço: Rua Patrício Antônio Teixeira, 317, Sala 406- A, Jardim Carandaí. Biguaçu/SC. CEP 88160-000 www.qualister.com.br