SlideShare uma empresa Scribd logo
(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
                                            Palestra
                                   Automação de testes de aceitação
                                      com BDD (Behavior Driven
                                   Development) e ATDD (Acceptance
                                       Test Driven Development)



  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
Facebook




facebook.com/ccristiano.caetano



www.qualister.com.br
Apresentação




www.slideshare.net/cristianocaetano




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
Parcerias internacionais


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




                       Soluções para testes de performance




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




www.qualister.com.br
Tópico




                       Testes unitários e TDD
                          (Desenvolvimento
                         dirigido por testes)



www.qualister.com.br
Testes unitários




                                  Classe                               Setup

  Mocks/Stubs                                                         Exercise
                                        Método(a, b, c): d
                                                                       Verify

                                                                      Teardown




                  http://xunitpatterns.com/Four%20Phase%20Test.html
www.qualister.com.br
Testes unitários




www.qualister.com.br
Test Driven Development (Desenvolvimento dirigido por testes)

• Test Driven Development é uma prática de desenvolvimento de
  software em que os testes unitários automatizados são escritos antes do
  código.




www.qualister.com.br
Tópico




                   BDD (Desenvolvimento
                        dirigido por
                      comportamento)



www.qualister.com.br
Behavior Driven Development (Desenvolvimento dirigido por comportamento)


              •        Dan North, criador do BDD (Desenvolvimento dirigido por
                       comportamento) percebeu que os testes deveriam ser descritos em
                       sentenças/frases representando o comportamento esperado pelo
                       sistema ao invés de nomes de métodos




                  Testes descritos em nomes de métodos

                  TestComprarPassagemPromocionalSomenteIdaParaUmAdultoVooDisponivel
                  TestComprarPassagemPromocionalIdaEVoltaParaUmAdultoVooDisponivel
                  TestComprarPassagemFlexSomenteIdaParaUmAdultoVooDisponivel




www.qualister.com.br
Behavior Driven Development (Desenvolvimento dirigido por comportamento)


Estória: Compra de passagem via WEB
Como um (As a)
  Profissional da área de testes
Eu quero (I want to)
 Ir de avião para Florianópolis
Para que (So that)
 Eu possa participar de um evento sobre testes

                                  Teste de aceitação: Comprar passagem com sucesso
                                  Dado que (Given)
                                     Existem voos disponíveis para o trecho POA/FLN
                                     Existem assentos disponíveis nos voos
                                  Quando (When)
                                    Eu escolho a origem igual a Porto Alegre
                                   Eu escolho o destino igual a Florianópolis
                                   (...)
                                  Então (Then)
                                   A compra é realizada com sucesso
                                   O assento escolhido é reservado
 www.qualister.com.br
Behavior Driven Development (Desenvolvimento dirigido por comportamento)




                         • Como transformar os
                           testes escritos em
                           linguagem natural em
                           testes/especificação
                           automatizados?




www.qualister.com.br
Behavior Driven Development (Desenvolvimento dirigido por comportamento)



• No BDD, os testes de aceitação são descritos em
  linguagens naturais próximas do domínio do negócio
  usando DSL´s.
    – DSL (Domain Specific Language) – Linguagens
      específicas de um domínio.

• Exemplo em terminologia náutica:
   – Proa = extremidade frontal do navio
   – Popa = extremidade posterior do navio
   – Bombordo = lado esquerdo do navio
   – Estibordo = lado direito do navio


www.qualister.com.br
Behavior Driven Development (Desenvolvimento dirigido por comportamento)



•      SQL (Structured Query Language) é um exemplo clássico de DSL:


         – SELECT * FROM clientes WHERE codigo < 100

         – UPDATE clientes SET id = 51 WHERE nome = „José da Silva‟

         – SELECT * FROM clientes WHERE nome LIKE „%José%'




    www.qualister.com.br
Behavior Driven Development (Desenvolvimento dirigido por comportamento)



• Para testes de aceitação usamos DSTL (Domain Specific Test
  Language) – Linguagens específicas de teste de um domínio.




www.qualister.com.br
Behavior Driven Development (Desenvolvimento dirigido por comportamento)



• Para testes de aceitação usamos DSTL (Domain Specific Test
  Language) – Linguagens específicas de teste de um domínio.




www.qualister.com.br
Behavior Driven Development (Desenvolvimento dirigido por comportamento)



•      Os testes descritos em linguagem natural são interpretados por ferramentas
       especializadas que, por sua vez, exercitam o código/API do sistema para
       demonstrar se o comportamento foi atendido.




                                                                        Código


                                                                          API

                                                                       Interface
                                                                        gráfica
                                         Codigo de suporte
              Testes de aceitação           “fixture” que
                em linguagem                 encapsula a
              natural na filosofia       implementação da
                                                                         Etc...
                      BDD                 ação descrita em
                                         linguagem natural




    www.qualister.com.br
Behavior Driven Development (Desenvolvimento dirigido por comportamento)


                                                                                 2
                                                             Codigo de suporte
                                                                “fixture” que
                                                                 encapsula a
                                                             implementação da
                                                              ação descrita em
                                                             linguagem natural




 1
      Testes de aceitação
        em linguagem
      natural na filosofia
              BDD
                                                                   3
                                         Código/API do sistema
                                          sendo exercitado para
                                       validar um comportamento

www.qualister.com.br
Behavior Driven Development (Desenvolvimento dirigido por comportamento)


• Existem dezenas de ferramentas que implementam a filosofia BDD no
  nível da unidade/código




                       http://en.wikipedia.org/wiki/Behavior_Driven_Development
                       http://blog.dannorth.net/introducing-bdd/
www.qualister.com.br
Behavior Driven Development (Desenvolvimento dirigido por comportamento)




                       http://cukes.info/
www.qualister.com.br
Behavior Driven Development (Desenvolvimento dirigido por comportamento)




                       http://www.concordion.org/
www.qualister.com.br
Behavior Driven Development (Desenvolvimento dirigido por comportamento)




www.qualister.com.br
                         http://jbehave.org/
Behavior Driven Development (Desenvolvimento dirigido por comportamento)




                       http://storyq.codeplex.com/
www.qualister.com.br
Behavior Driven Development (Desenvolvimento dirigido por comportamento)




                       http://www.thoughtworks-studios.com/agile-test-automation/features-benefits
www.qualister.com.br
Tópico




                       ATDD



www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)



• O ATDD é uma abordagem ágil de desenvolvimento onde a
  construção do software é guiada pelos testes de aceitação.

• Nesta técnica, os testes de aceitação são criados de maneira
  colaborativa e descritos em uma linguagem comum a todos os
  membros da equipe. Dessa forma, toda a equipe compartilha o
  mesmo entendimento do que deve ser feito, as restrições e as
  definições de "Pronto".

• Os testes são descritos em uma linguagem natural similar a
  linguagem do negócio e deve ser facilmente entendida pelo cliente.

• Os testes (critérios de aceitação) devem ser executáveis




www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)




• Etapas do ATDD:
     – Discutir (Discuss)
     – Refinar (Distill)
     – Desenvolver (Develop)




www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)



     – Discutir (Discuss)
            • Discutir colaborativamente com a equipe as restrições, assunções,
              premissas, expectativas, etc para definir os critérios de aceitação

     E se não houver
         assentos
      disponíveis no
           voo?



                                                                      Devemos exibir
                                                                      uma mensagem
                                                                      de alerta para o
                                                                         usuário?

                        Como vamos
                          validar os
                       mecanismos de
                         segurança?
www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)



     – Refinar (Distill)
            • Refinar os critérios de aceitação em um conjunto concreto de
              cenários/exemplos de uso descrevendo o comportamento esperado da
              aplicação em uma linguagem comum a todos os membros da equipe


                       Teste de aceitação: Comprar passagem com sucesso
                       Dado que (Given)
                          Existem voos disponíveis para o trecho POA/FLN
                          Existem assentos disponíveis nos voos
                       Quando (When)
                         Eu escolho a origem igual a Porto Alegre
                        Eu escolho o destino igual a Florianópolis
                        (...)
                       Então (Then)
                        A compra é realizada com sucesso
                        O assento escolhido é reservado



www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)



     – Desenvolver (Develop)
            • Transformar os testes de aceitação (descrevendo o comportamento
              esperado do software) em testes/especificação automatizados




                  Testes de aceitação
                    em linguagem
                  natural na filosofia
                          BDD

                                                          Testes
                                                      automatizados

www.qualister.com.br
Principais vantagens



                                                Cenários de
                                                   uso


                                                                       Exemplos
                          Expectativas
                                                                        de uso




                       Assunções                                           Limitações

                                         Linguagem Ubíqua



                                    Premissas                 Restrições

www.qualister.com.br
Principais vantagens




            Teste = Requisito
            Requisito = Teste

www.qualister.com.br
Principais vantagens



•      Testes de aceitação automatizados são usados como medida de progresso e
       indicador dos níveis de qualidade




                            Funcionalidade




    www.qualister.com.br
Tópico




                       Case



www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)



• O problema
     – Sistema desenvolvido em tecnologia legada
     – Falta de arquitetura (OO, Frameworks, etc)
     – Equipe de testes sem experiência em programação


• A solução proposta
     – Testes na filosofia BDD/ATDD
     – Criação de um Framework de testes sob medida para permitir a criação
       de testes BDD/ATDD em um sistema com tecnologia legada




www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)


•      Ferramentas de desenvolvimento dirigido por testes normalmente executam testes de comportamento no nível da
       unidade/código.

•      Para que os testes escritos em linguagem natural possam ser executados, é necessário que os programadores
       codifiquem “fixtures”, ou seja, o código de suporte que implementa nos métodos das classes do software as ações
       descritas em linguagem natural.




                                                                                                   Código


                                                                                                     API

                                                                                                  Interface
                                                                                                   gráfica
                                                       Codigo de suporte
              Testes de aceitação
                                                          “fixture” que
                em linguagem
              natural na filosofia
                                                      implementa a ação                             Etc...
                                                           descrita em
                      BDD
                                                       linguagem natural



    www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)


•      Ferramentas de desenvolvimento dirigido por testes normalmente executam testes de comportamento no nível da
       unidade/código.

•      Para que os testes escritos em linguagem natural possam ser executados, é necessário que os programadores
       codifiquem “fixtures”, ou seja, o código de suporte que implementa nos métodos das classes do software as ações
       descritas em linguagem natural.




                                                                                                   Código


                                                                                                     API
                                                                    Sistemas
                                                                             Interface

              Testes de aceitação
                                                                    Legados gráfica
                                                       Codigo de suporte
                                                          “fixture” que
                em linguagem
              natural na filosofia
                                                      implementa a ação                             Etc...
                                                           descrita em
                      BDD
                                                       linguagem natural



    www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)




         Testes de aceitação
           em linguagem                                            Interface gráfica do
         natural na filosofia                                            sistema
                 BDD




www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)




                                        Framework
                                           BDD




                                      Framework BDD que                     Localiza
          Testes de aceitação        utiliza o TestComplete           dinamicamente os
            em linguagem                como meio para               objetos da Interface
          natural na filosofia           interagir com a             gráfica do sistema e
                  BDD                 Interface Gráfica do          executa ações e valida
                                              sistema                    os resultados
                                                                          esperados




www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)


•      O Framework ATDD foi desenvolvido em VBScript usando orientação a objetos.
•      É possível usar o Framework ATDD para testar outras plataformas (.NET, WEB, Delphi, etc) com
       pequenos ajustes.
•      O Framework ATDD encapsula toda a complexidade da automação. O usuário/testador/
       programador/etc escreve os testes apenas usando a DSTL (Domain Specific Test Language).




    www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)



•      Foi embutida no Framework uma DSTL (Domain Specific Test Language) –
       Linguagens específicas de teste de um domínio com foco em ações
       imperativas de interação com a interface gráfica. Abaixo alguns exemplos:

No processo "NomeDoProcesso"
Na janela "NomeDaJanela"
Eu vejo o texto "Texto" no rótulo "NomeDoRotulo"
Eu clico na caixa de verificação "NomeDaCaixaDeVerificação"
Eu escolho a opção "Opção" na caixa de seleção "NomeDaCaixaDeSeleção"
Eu digito "Texto" na caixa de seleção "NomeDaCaixaDeSeleção"
Eu clico no menu "Menu"
Eu vejo o texto "Texto" no campo "NomeDoCampo"
Eu preencho "Texto" no campo "NomeDoCampo"
Eu clico no botao "NomeDoBotão"
Eu executo a consulta sql "ExpressãoSQL" e vejo o resultado "Resultado" no campo "Campo"
Eu armazeno o valor do objeto "NomeDoObjeto" na variavel "NomeDaVariavel"




    www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)



• Os testes de aceitação são organizados em pastas de acordo com os
  grupos de testes similares (suítes ou roteiros de testes)




www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)



• Os testes de aceitação são escritos em formato texto puro.




www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)




www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)




www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)




www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)



•      No TestComplete os testes são organizados e executados em suítes ou em
       regressões completas conforme a necessidade do testador/usuário.




    www.qualister.com.br
Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)



•      Relatórios de execução são gerados automaticamente pelo TestComplete




    www.qualister.com.br
Dúvidas?


• Dúvidas
     – Email: cristiano.caetano@qualister.com.br
     – Telefone: (48) 3285 5615 / 9645 5506




www.qualister.com.br

Mais conteúdo relacionado

PDF
Automação de testes funcionais com selenium webdriver
PDF
Dev ops Introduction
PDF
ADFS で実現する OpenID Connect の実装
PDF
Questionario CTFL - Foundation Level
PDF
ELB와 EBS의 아키텍터로 생각해보는 사용상 주의할 점들
PDF
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
PDF
20200212 AWS Black Belt Online Seminar AWS Systems Manager
PDF
고객 경험을 통한 AWS 클라우드 이전을 위한 지름길 - 김효정 (AWS 솔루션즈 아키텍트)
Automação de testes funcionais com selenium webdriver
Dev ops Introduction
ADFS で実現する OpenID Connect の実装
Questionario CTFL - Foundation Level
ELB와 EBS의 아키텍터로 생각해보는 사용상 주의할 점들
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
20200212 AWS Black Belt Online Seminar AWS Systems Manager
고객 경험을 통한 AWS 클라우드 이전을 위한 지름길 - 김효정 (AWS 솔루션즈 아키텍트)

Destaque (20)

PDF
Curso de verificação e Revisão e Inspeção de artefatos
PDF
Testes ágeis
PDF
Testes de usabilidade com uma pitada de lean ux
PDF
Testando a integração com APIs - RSonRails/11
PDF
Palestra Rest-Assured com Maven e JUnit
PPTX
Docker e suas tecnologias
PDF
Testes performance nuvem com j meter e blazemeter
PDF
Testes de segurança desafios e oportunidades
PDF
BRATESTE 2013 - Automação de testes de dispositivos móveis na nuvem
PDF
Teste software metodos metodologia ageis agil agile testing
PDF
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
PPTX
Agile testing
PPTX
ALM - Testes Exploratórios
PDF
Perspectivas em teste de software
PDF
Testes em métodos ágeis
PDF
Tendências em teste de software
PDF
Changing Your Testing Mindset, Booster Conference, Bergen, Norway, 2014
PDF
Juntando para multiplicar
PDF
Automacao de testes com keyword driven
PDF
Palestra sobre Automação de Testes com Rest-Assured
Curso de verificação e Revisão e Inspeção de artefatos
Testes ágeis
Testes de usabilidade com uma pitada de lean ux
Testando a integração com APIs - RSonRails/11
Palestra Rest-Assured com Maven e JUnit
Docker e suas tecnologias
Testes performance nuvem com j meter e blazemeter
Testes de segurança desafios e oportunidades
BRATESTE 2013 - Automação de testes de dispositivos móveis na nuvem
Teste software metodos metodologia ageis agil agile testing
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
Agile testing
ALM - Testes Exploratórios
Perspectivas em teste de software
Testes em métodos ágeis
Tendências em teste de software
Changing Your Testing Mindset, Booster Conference, Bergen, Norway, 2014
Juntando para multiplicar
Automacao de testes com keyword driven
Palestra sobre Automação de Testes com Rest-Assured
Anúncio

Semelhante a Automação de testes BDD e ATDD (20)

PDF
Test day 2012
PDF
Agile Testing - entregando valor do início a fim
PPTX
Agile Testing
PDF
Mini curso Testes de software ágil leves enxutos Computer on the Beach 2013
PPTX
Todas as abordagens de testes dentro do ágil
PPTX
Palestra teste de software Univel
PPTX
Teste e Qualidade de Software
KEY
Bdd e ci
PDF
Automação de Testes Mitos e Verdades
PPTX
Perspectivas do profissional de qualidade e testes de software
PPT
Testes Ágeis: 1° Seminário Paranaense de Qualidade de Software
PDF
Mini curso de testes ágeis
PPTX
Introdução a TDD
PDF
Test First, TDD e outros Bichos
PDF
Perspectivas do profissional de teste e qualidade de software
PDF
Perspectivas do profissional de qualidade e testes de software
PDF
Qualidade de Software
PDF
Teste sua aplicação antes que ela teste você
PPTX
Desenvolvimento Ágil de Software com Qualidade Intrínseca
Test day 2012
Agile Testing - entregando valor do início a fim
Agile Testing
Mini curso Testes de software ágil leves enxutos Computer on the Beach 2013
Todas as abordagens de testes dentro do ágil
Palestra teste de software Univel
Teste e Qualidade de Software
Bdd e ci
Automação de Testes Mitos e Verdades
Perspectivas do profissional de qualidade e testes de software
Testes Ágeis: 1° Seminário Paranaense de Qualidade de Software
Mini curso de testes ágeis
Introdução a TDD
Test First, TDD e outros Bichos
Perspectivas do profissional de teste e qualidade de software
Perspectivas do profissional de qualidade e testes de software
Qualidade de Software
Teste sua aplicação antes que ela teste você
Desenvolvimento Ágil de Software com Qualidade Intrínseca
Anúncio

Mais de Qualister (12)

PDF
Testes para dispositivos móveis
PDF
DEV-OPS para teste de software
PDF
Caipira agil automacao front end selenium
PDF
Gestão de defeitos e testes com Jira
PDF
Testes em Web Services - conceitos e ferramentas
PDF
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014
PPT
Como testar aplicativos ios e android
PDF
Free-ebook-rex-black advanced-software-testing
PDF
Galileo computing software testing
PDF
Testes de segurança
PDF
Curso Teste de performance, carga e stress JMeter
PDF
Curso testes avaliação Usabilidade
Testes para dispositivos móveis
DEV-OPS para teste de software
Caipira agil automacao front end selenium
Gestão de defeitos e testes com Jira
Testes em Web Services - conceitos e ferramentas
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014
Como testar aplicativos ios e android
Free-ebook-rex-black advanced-software-testing
Galileo computing software testing
Testes de segurança
Curso Teste de performance, carga e stress JMeter
Curso testes avaliação Usabilidade

Automação de testes BDD e ATDD

  • 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 Palestra Automação de testes de aceitação com BDD (Behavior Driven Development) e ATDD (Acceptance Test Driven Development) www.qualister.com.br
  • 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
  • 7. 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
  • 8. Parcerias internacionais Soluções para automação, profilling e gestão Soluções para testes de performance Soluções de apoio a avaliação de usabilidade www.qualister.com.br
  • 9. Tópico Testes unitários e TDD (Desenvolvimento dirigido por testes) www.qualister.com.br
  • 10. Testes unitários Classe Setup Mocks/Stubs Exercise Método(a, b, c): d Verify Teardown http://xunitpatterns.com/Four%20Phase%20Test.html www.qualister.com.br
  • 12. Test Driven Development (Desenvolvimento dirigido por testes) • Test Driven Development é uma prática de desenvolvimento de software em que os testes unitários automatizados são escritos antes do código. www.qualister.com.br
  • 13. Tópico BDD (Desenvolvimento dirigido por comportamento) www.qualister.com.br
  • 14. Behavior Driven Development (Desenvolvimento dirigido por comportamento) • Dan North, criador do BDD (Desenvolvimento dirigido por comportamento) percebeu que os testes deveriam ser descritos em sentenças/frases representando o comportamento esperado pelo sistema ao invés de nomes de métodos Testes descritos em nomes de métodos TestComprarPassagemPromocionalSomenteIdaParaUmAdultoVooDisponivel TestComprarPassagemPromocionalIdaEVoltaParaUmAdultoVooDisponivel TestComprarPassagemFlexSomenteIdaParaUmAdultoVooDisponivel www.qualister.com.br
  • 15. Behavior Driven Development (Desenvolvimento dirigido por comportamento) Estória: Compra de passagem via WEB Como um (As a) Profissional da área de testes Eu quero (I want to) Ir de avião para Florianópolis Para que (So that) Eu possa participar de um evento sobre testes Teste de aceitação: Comprar passagem com sucesso Dado que (Given) Existem voos disponíveis para o trecho POA/FLN Existem assentos disponíveis nos voos Quando (When) Eu escolho a origem igual a Porto Alegre Eu escolho o destino igual a Florianópolis (...) Então (Then) A compra é realizada com sucesso O assento escolhido é reservado www.qualister.com.br
  • 16. Behavior Driven Development (Desenvolvimento dirigido por comportamento) • Como transformar os testes escritos em linguagem natural em testes/especificação automatizados? www.qualister.com.br
  • 17. Behavior Driven Development (Desenvolvimento dirigido por comportamento) • No BDD, os testes de aceitação são descritos em linguagens naturais próximas do domínio do negócio usando DSL´s. – DSL (Domain Specific Language) – Linguagens específicas de um domínio. • Exemplo em terminologia náutica: – Proa = extremidade frontal do navio – Popa = extremidade posterior do navio – Bombordo = lado esquerdo do navio – Estibordo = lado direito do navio www.qualister.com.br
  • 18. Behavior Driven Development (Desenvolvimento dirigido por comportamento) • SQL (Structured Query Language) é um exemplo clássico de DSL: – SELECT * FROM clientes WHERE codigo < 100 – UPDATE clientes SET id = 51 WHERE nome = „José da Silva‟ – SELECT * FROM clientes WHERE nome LIKE „%José%' www.qualister.com.br
  • 19. Behavior Driven Development (Desenvolvimento dirigido por comportamento) • Para testes de aceitação usamos DSTL (Domain Specific Test Language) – Linguagens específicas de teste de um domínio. www.qualister.com.br
  • 20. Behavior Driven Development (Desenvolvimento dirigido por comportamento) • Para testes de aceitação usamos DSTL (Domain Specific Test Language) – Linguagens específicas de teste de um domínio. www.qualister.com.br
  • 21. Behavior Driven Development (Desenvolvimento dirigido por comportamento) • Os testes descritos em linguagem natural são interpretados por ferramentas especializadas que, por sua vez, exercitam o código/API do sistema para demonstrar se o comportamento foi atendido. Código API Interface gráfica Codigo de suporte Testes de aceitação “fixture” que em linguagem encapsula a natural na filosofia implementação da Etc... BDD ação descrita em linguagem natural www.qualister.com.br
  • 22. Behavior Driven Development (Desenvolvimento dirigido por comportamento) 2 Codigo de suporte “fixture” que encapsula a implementação da ação descrita em linguagem natural 1 Testes de aceitação em linguagem natural na filosofia BDD 3 Código/API do sistema sendo exercitado para validar um comportamento www.qualister.com.br
  • 23. Behavior Driven Development (Desenvolvimento dirigido por comportamento) • Existem dezenas de ferramentas que implementam a filosofia BDD no nível da unidade/código http://en.wikipedia.org/wiki/Behavior_Driven_Development http://blog.dannorth.net/introducing-bdd/ www.qualister.com.br
  • 24. Behavior Driven Development (Desenvolvimento dirigido por comportamento) http://cukes.info/ www.qualister.com.br
  • 25. Behavior Driven Development (Desenvolvimento dirigido por comportamento) http://www.concordion.org/ www.qualister.com.br
  • 26. Behavior Driven Development (Desenvolvimento dirigido por comportamento) www.qualister.com.br http://jbehave.org/
  • 27. Behavior Driven Development (Desenvolvimento dirigido por comportamento) http://storyq.codeplex.com/ www.qualister.com.br
  • 28. Behavior Driven Development (Desenvolvimento dirigido por comportamento) http://www.thoughtworks-studios.com/agile-test-automation/features-benefits www.qualister.com.br
  • 29. Tópico ATDD www.qualister.com.br
  • 30. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) • O ATDD é uma abordagem ágil de desenvolvimento onde a construção do software é guiada pelos testes de aceitação. • Nesta técnica, os testes de aceitação são criados de maneira colaborativa e descritos em uma linguagem comum a todos os membros da equipe. Dessa forma, toda a equipe compartilha o mesmo entendimento do que deve ser feito, as restrições e as definições de "Pronto". • Os testes são descritos em uma linguagem natural similar a linguagem do negócio e deve ser facilmente entendida pelo cliente. • Os testes (critérios de aceitação) devem ser executáveis www.qualister.com.br
  • 31. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) • Etapas do ATDD: – Discutir (Discuss) – Refinar (Distill) – Desenvolver (Develop) www.qualister.com.br
  • 32. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) – Discutir (Discuss) • Discutir colaborativamente com a equipe as restrições, assunções, premissas, expectativas, etc para definir os critérios de aceitação E se não houver assentos disponíveis no voo? Devemos exibir uma mensagem de alerta para o usuário? Como vamos validar os mecanismos de segurança? www.qualister.com.br
  • 33. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) – Refinar (Distill) • Refinar os critérios de aceitação em um conjunto concreto de cenários/exemplos de uso descrevendo o comportamento esperado da aplicação em uma linguagem comum a todos os membros da equipe Teste de aceitação: Comprar passagem com sucesso Dado que (Given) Existem voos disponíveis para o trecho POA/FLN Existem assentos disponíveis nos voos Quando (When) Eu escolho a origem igual a Porto Alegre Eu escolho o destino igual a Florianópolis (...) Então (Then) A compra é realizada com sucesso O assento escolhido é reservado www.qualister.com.br
  • 34. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) – Desenvolver (Develop) • Transformar os testes de aceitação (descrevendo o comportamento esperado do software) em testes/especificação automatizados Testes de aceitação em linguagem natural na filosofia BDD Testes automatizados www.qualister.com.br
  • 35. Principais vantagens Cenários de uso Exemplos Expectativas de uso Assunções Limitações Linguagem Ubíqua Premissas Restrições www.qualister.com.br
  • 36. Principais vantagens Teste = Requisito Requisito = Teste www.qualister.com.br
  • 37. Principais vantagens • Testes de aceitação automatizados são usados como medida de progresso e indicador dos níveis de qualidade Funcionalidade www.qualister.com.br
  • 38. Tópico Case www.qualister.com.br
  • 39. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) • O problema – Sistema desenvolvido em tecnologia legada – Falta de arquitetura (OO, Frameworks, etc) – Equipe de testes sem experiência em programação • A solução proposta – Testes na filosofia BDD/ATDD – Criação de um Framework de testes sob medida para permitir a criação de testes BDD/ATDD em um sistema com tecnologia legada www.qualister.com.br
  • 40. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) • Ferramentas de desenvolvimento dirigido por testes normalmente executam testes de comportamento no nível da unidade/código. • Para que os testes escritos em linguagem natural possam ser executados, é necessário que os programadores codifiquem “fixtures”, ou seja, o código de suporte que implementa nos métodos das classes do software as ações descritas em linguagem natural. Código API Interface gráfica Codigo de suporte Testes de aceitação “fixture” que em linguagem natural na filosofia implementa a ação Etc... descrita em BDD linguagem natural www.qualister.com.br
  • 41. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) • Ferramentas de desenvolvimento dirigido por testes normalmente executam testes de comportamento no nível da unidade/código. • Para que os testes escritos em linguagem natural possam ser executados, é necessário que os programadores codifiquem “fixtures”, ou seja, o código de suporte que implementa nos métodos das classes do software as ações descritas em linguagem natural. Código API Sistemas Interface Testes de aceitação Legados gráfica Codigo de suporte “fixture” que em linguagem natural na filosofia implementa a ação Etc... descrita em BDD linguagem natural www.qualister.com.br
  • 42. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) Testes de aceitação em linguagem Interface gráfica do natural na filosofia sistema BDD www.qualister.com.br
  • 43. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) Framework BDD Framework BDD que Localiza Testes de aceitação utiliza o TestComplete dinamicamente os em linguagem como meio para objetos da Interface natural na filosofia interagir com a gráfica do sistema e BDD Interface Gráfica do executa ações e valida sistema os resultados esperados www.qualister.com.br
  • 44. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) • O Framework ATDD foi desenvolvido em VBScript usando orientação a objetos. • É possível usar o Framework ATDD para testar outras plataformas (.NET, WEB, Delphi, etc) com pequenos ajustes. • O Framework ATDD encapsula toda a complexidade da automação. O usuário/testador/ programador/etc escreve os testes apenas usando a DSTL (Domain Specific Test Language). www.qualister.com.br
  • 45. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) • Foi embutida no Framework uma DSTL (Domain Specific Test Language) – Linguagens específicas de teste de um domínio com foco em ações imperativas de interação com a interface gráfica. Abaixo alguns exemplos: No processo "NomeDoProcesso" Na janela "NomeDaJanela" Eu vejo o texto "Texto" no rótulo "NomeDoRotulo" Eu clico na caixa de verificação "NomeDaCaixaDeVerificação" Eu escolho a opção "Opção" na caixa de seleção "NomeDaCaixaDeSeleção" Eu digito "Texto" na caixa de seleção "NomeDaCaixaDeSeleção" Eu clico no menu "Menu" Eu vejo o texto "Texto" no campo "NomeDoCampo" Eu preencho "Texto" no campo "NomeDoCampo" Eu clico no botao "NomeDoBotão" Eu executo a consulta sql "ExpressãoSQL" e vejo o resultado "Resultado" no campo "Campo" Eu armazeno o valor do objeto "NomeDoObjeto" na variavel "NomeDaVariavel" www.qualister.com.br
  • 46. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) • Os testes de aceitação são organizados em pastas de acordo com os grupos de testes similares (suítes ou roteiros de testes) www.qualister.com.br
  • 47. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) • Os testes de aceitação são escritos em formato texto puro. www.qualister.com.br
  • 48. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) www.qualister.com.br
  • 49. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) www.qualister.com.br
  • 50. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) www.qualister.com.br
  • 51. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) • No TestComplete os testes são organizados e executados em suítes ou em regressões completas conforme a necessidade do testador/usuário. www.qualister.com.br
  • 52. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) • Relatórios de execução são gerados automaticamente pelo TestComplete www.qualister.com.br
  • 53. Dúvidas? • Dúvidas – Email: cristiano.caetano@qualister.com.br – Telefone: (48) 3285 5615 / 9645 5506 www.qualister.com.br