SlideShare uma empresa Scribd logo
1 de 48
Todas as abordagens de teste
dentro do ágil!

                           @eliasnogueira
Elias Nogueira
   Tester, professor

   http://about.me/eliasnogueira
   @eliasnogueira


   TDC - The Developers Conference
   TestDay
   Jenkins User Conference – São Paulo
Nós fizemos o deploy em produção esta manhã!
Os testes irão levar 4 dias para executarem...
   Em 4 dias eu retorno com o resultado!
Agile Testing
Agile Testing

 Agile Testing é uma prática de Teste de
 Software que segue os princípios do
 desenvolvimento ágil
Agile Testing
  Feedback contínuo
  Entrega de valor ao cliente
  Comunicação face-to-face
  Coragem
  Simplicidade
  Resposta a mudanças
  Auto-organização
   Foco em pessoas
Como a maioria dos “Agile Testers” são hoje!
Testadores hoje
  Não sabem o que é Ágil

  Não sabem programar

  O desenvolvedor é seu maior inimigo

  Programador frustrado ou querendo ser BA

  Não querem “passar trabalho”
Separação clara dos papéis
  Desenvolvedores ágeis são “test infected”

  Agile Testers e Desenvolvedores colaboram

  Agile Testers colaboram com o usuário

  TODO O TIME é responsável por teste!

  Todos devem entender do negócio

  AUTOMATIZAM!!!
http://www.shino.de/2012/07/30/the-testing-quadrants-we-got-it-wrong/
Pirâmide de Automação de Teste
Inicio da entrada da qualidade no produto
Tem um suporte de refatoração
É a base de uma suíte de automação

TODO O TIME é responsável por teste!
Todos devem entender do negócio
Build Tools
  • Judson/Jenkins

Unit Test Tools
  • xUnit
  • Mocking
Testar os serviços da aplicação sem UI
Preenche o gap entre Unit x UI
Descrita de uma forma clara para o cliente

Tanto tester quanto dev podem criar
Podemos referencia-lo como “integração”
  •   API Test
  •   Integration Test
  •   Component Test
BDD Tools
  • Cucumber
  • Jbehave
  • SpecFlow

Unit Test Tools
  • xUnit

Fixture Tools
   • Fitnesse
Teste da UI / E2E
Focar em smoke tests
Mais caro e mais frágil

Desenvolvido no final do ‘done; de teste
Usualmente fácil para testadores ágeis
ATDD Tools
  • Selenium
  • Robot Framework
TDD – Test Driven Development
TDD – Test Driven Development
       Pequeno mal entendido

 Sou pago pra desenvolver, não testar
 “Done” é quando eu dou checkin
 Todos conhecem o código

 O projeto é curto
 Não há cliente
BDD – Behavior Driven Development

  BDD pode ser visto como uma técnica
  de desenvolvimento ágil que encoraja
  colaboração entre os
  desenvolvedores, analistas, QA e o
  pessoal não técnico (stackeholders)
  para o sucesso de um projeto
  Éder Ignatowicz (@ederig)
BDD – Behavior Driven Development

  BDD pode ser visto como uma técnica
  de desenvolvimento ágil que encoraja
  colaboração entre os
  desenvolvedores, analistas, QA e o
  pessoal não técnico (stackeholders)
  para o sucesso de um projeto
BDD – Behavior Driven Development

   O suficiente é o suficiente

   Entregar valor para os stackholders

   Tudo é comportamento
BDD – Behavior Driven Development
   User Story

      Feature: <description of the feature>

      As a <user/actor>
      I want <goal to be achieved>
      so that <the reason you want to achieve the goal>

      Funcionalidade: <descrição da funcionalidade>

      Como um <usuário/ator>
      Eu quero <meta a ser alcançada>
      De modo que <a razão para alcançar a meta>
BDD – Behavior Driven Development
   Acceptance Criteria

      Scenario: <description of the test>
      Given <a known state>
      When <an event occurs>
      Then <then this should happen>


      Cenário: <descrição do teste>
      Dado <um estado conhecido>
      Quando <um determinado evento ocorre>
      Então <isso deve ocorrer>
BDD – Behavior Driven Development
   Funcionalidade: Leitor de tipos de Triângulo

   Para conhecer o tipo de um triângulo
   Como um aluno da matemática
   Eu quero informar os tamanhos do lado de um triângulo e saber qual seu tipo

   NARRATIVA

   Um triângulo com todos os lados iguais é chamado Equilátero
   Um triângulo com dois lados iguais é chamado Isósceles
   Um triângulo com todos os lados diferentes é chamado Escaleno

   FORA DE ESCOPO
    - Validar triângulos inválidos
    - Exibir o triangulo graficamente
    - Validação de entrada de dados do usuário

http://www.bugbang.com.br/entendendo-bdd-com-cucumber-parte-i/
BDD – Behavior Driven Development


   Cenário: Consultando um triangulo Escaleno

   Dado que eu estou na página de consulta de triângulos
   Quando quando eu informo os lados do triangulo
          | lado1 | lado 2 | lado 3 |
          |    3 |     4 |      5 |

   Então o sistema informa que o triangulo é “Escaleno”
ATDD – Acceptance Test Drive Development


  ATDD é uma prática onde todo o
  time, colaborativamente, discute
  critérios de aceitação através de
  exemplos antes de começar o
  desenvolvimento. Também garante
  que todos tenham a mesma definição
  do done.
ATDD – Acceptance Test Drive Development
ATDD – Acceptance Test Drive Development
   Exemplo
     Os usuários agora precisam utilizar senhas seguras
     (string de, no mínimo, 6 caracteres com pelo menos
     uma letra, um número e um símbolo)
ATDD – Acceptance Test Drive Development
Discutir o requisito

Durante uma reunião de planejamento
     O que acontece se o usuário inserir uma senha não segura?
     E se o usuário colocar um espaço?

     Como fica as contas já existentes?
ATDD – Acceptance Test Drive Development
Destilar em um formato amigável

Pensando em um formato para ferramenta
    Teste: Validar senhas válidas e inválidas

             Ação                        Argumento
             O teste deve ser válido     p@ssw0rd
             O teste deve ser válido     @@@000dd
             O teste deve ser válido     p@ss w0rd
             O teste deve ser inválido   password
             O teste deve ser inválido   p@ss3
             O teste deve ser inválido   passw0rd
             O teste deve ser inválido   @@@000
ATDD – Acceptance Test Drive Development
Desenvolver o código

Implementação em qualquer formato
   public class ValidateLoginPage {
        WebDriver driver;

       public String loginValidation(String username, String password) {
            driver.findElement(By.id(“user”)).sendKeys(username);
            driver.findElement(By.id(“passwd”).sendKeys(password);
            driver.findElement(By.id(“submit”).click();

            String result = driver.findElement(By.cssSelector(“result”)).getText()
       }
   }
ATDD – Acceptance Test Drive Development
Desenvolver o código

Implementação em qualquer formato
   public class TestLogin {
        WebDriver driver = new FirefoxDriver();

        @Test (dataProvider = ”data")
        public String testAllScenarios (String username, String password, String
   result) {
             ValidateLoginPage testLogin = new ValidationLoginPage(driver);
             String result = testLogin.loginValidation(username, password);
             Assert.assertEquals(expected, result);
        }

       @DataProvider(name = ”data”)
       public Object[][] createData() {
            Object[][] obj ={{”fred","p@ssw0rd",”Valid Password"},
                            {{”jack","passw0rd",”Invalid Password!”}
       }
ATDD – Acceptance Test Drive Development
Demostrar o teste

Execução do teste em ambiente controlado
Mas cadê o topo
 da pirâmide?
Testes Exploratórios

Simultâneamente ....
... aprender sobre o software
... desenvolver mais testes
... executar testes

Usando o feedback do último teste para
executar o próximo!
Todos os testes unitários                 Essa user story de
Passaram com sucesso!                segurança passou nos meus
A build está OK!                         teste de aceitação!




                             Alguém já se deu conta que o
                            usuário pode colocar ele mesmo
                                 como administrador?
SBT - Session Based Testing
Charter
  Explorar áreas/features [com
  recursos, condições , restrições] para descobrir
  informação


  Explorar o site em diversos browsers e
  configurações para descobrir riscos
  relacionados a configurações não suportadas
SBT - Session Based Testing
Charter
    Descrição e objetivo
    Tempo
    Área de Concentração
    Setup
    Observações
    Bugs
Todas as abordagens de testes dentro do ágil

Mais conteúdo relacionado

Mais procurados

Arquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto JavaArquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto JavaElias Nogueira
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilAriane Izac
 
Criando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssuredCriando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssuredElias Nogueira
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testesIsaias Silva
 
Como integrar um Agile Tester no seu time
Como integrar um Agile Tester no seu timeComo integrar um Agile Tester no seu time
Como integrar um Agile Tester no seu timeElias Nogueira
 
Testes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoElias Nogueira
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes ExploratóriosAlan Carlos
 
Automação e virtualização de serviços
Automação e virtualização de serviçosAutomação e virtualização de serviços
Automação e virtualização de serviçosElias Nogueira
 
Workshop Agile Testing Mindset
Workshop Agile Testing MindsetWorkshop Agile Testing Mindset
Workshop Agile Testing MindsetElias Nogueira
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeisQualister
 
BDD em Testes de Serviço
BDD em Testes de ServiçoBDD em Testes de Serviço
BDD em Testes de ServiçoRafael Lima
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareCamilo Almendra
 
Como descrever cenários de teste utilizando Gherkin de forma correta
Como descrever cenários de teste utilizando Gherkin de forma corretaComo descrever cenários de teste utilizando Gherkin de forma correta
Como descrever cenários de teste utilizando Gherkin de forma corretaTesting Dojo Uai
 
Testes de ponta a ponta
Testes de ponta a pontaTestes de ponta a ponta
Testes de ponta a pontaElias Nogueira
 
Automação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileElias Nogueira
 

Mais procurados (20)

Arquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto JavaArquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto Java
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágil
 
Criando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssuredCriando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssured
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testes
 
Como integrar um Agile Tester no seu time
Como integrar um Agile Tester no seu timeComo integrar um Agile Tester no seu time
Como integrar um Agile Tester no seu time
 
Testes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamento
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes Exploratórios
 
Técnicas de Teste
Técnicas de TesteTécnicas de Teste
Técnicas de Teste
 
Automação e virtualização de serviços
Automação e virtualização de serviçosAutomação e virtualização de serviços
Automação e virtualização de serviços
 
Plano de teste
Plano de testePlano de teste
Plano de teste
 
Agile testing
Agile testing Agile testing
Agile testing
 
Workshop Agile Testing Mindset
Workshop Agile Testing MindsetWorkshop Agile Testing Mindset
Workshop Agile Testing Mindset
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeis
 
BDD em Testes de Serviço
BDD em Testes de ServiçoBDD em Testes de Serviço
BDD em Testes de Serviço
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
 
Como descrever cenários de teste utilizando Gherkin de forma correta
Como descrever cenários de teste utilizando Gherkin de forma corretaComo descrever cenários de teste utilizando Gherkin de forma correta
Como descrever cenários de teste utilizando Gherkin de forma correta
 
Testes de ponta a ponta
Testes de ponta a pontaTestes de ponta a ponta
Testes de ponta a ponta
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Testes de contrato
Testes de contratoTestes de contrato
Testes de contrato
 
Automação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e Mobile
 

Destaque

Marco General
Marco GeneralMarco General
Marco Generalsan blas
 
Mini Curso - Pen Test - Univem
Mini Curso - Pen Test - UnivemMini Curso - Pen Test - Univem
Mini Curso - Pen Test - Univemevandrovv
 
Jornada sobre Seguridad en Medios de Pago: PCI DSS
Jornada sobre Seguridad en Medios de Pago: PCI DSSJornada sobre Seguridad en Medios de Pago: PCI DSS
Jornada sobre Seguridad en Medios de Pago: PCI DSSInternet Security Auditors
 
Os 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFOs 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFRafael Ponte
 
Implementando Testes Unitários em Java - Manoel Pimentel
Implementando Testes Unitários em Java - Manoel PimentelImplementando Testes Unitários em Java - Manoel Pimentel
Implementando Testes Unitários em Java - Manoel PimentelManoel Pimentel Medeiros
 
Ericsson Radio Dot System: Introduction
Ericsson Radio Dot System: Introduction Ericsson Radio Dot System: Introduction
Ericsson Radio Dot System: Introduction Ericsson
 
Certificações em Teste e Qualidade de Software
Certificações em Teste e Qualidade de SoftwareCertificações em Teste e Qualidade de Software
Certificações em Teste e Qualidade de SoftwareCamilo Ribeiro
 
Diretrizes curriculares nacionais para educação infantil
Diretrizes curriculares nacionais para educação infantilDiretrizes curriculares nacionais para educação infantil
Diretrizes curriculares nacionais para educação infantilEMEI Julio Alves Pereira
 
Minería e fontes de enerxía en España e Galicia
Minería e fontes de enerxía en España e GaliciaMinería e fontes de enerxía en España e Galicia
Minería e fontes de enerxía en España e GaliciaAgrela Elvixeo
 
Service Desing Week2
Service Desing Week2Service Desing Week2
Service Desing Week2Bom Kim
 

Destaque (20)

Apresentação inícial testes ágeis
Apresentação inícial testes ágeisApresentação inícial testes ágeis
Apresentação inícial testes ágeis
 
Overview de QA
Overview de QA Overview de QA
Overview de QA
 
Marco General
Marco GeneralMarco General
Marco General
 
Cómo hacer concept tests
Cómo hacer concept tests Cómo hacer concept tests
Cómo hacer concept tests
 
Mini Curso - Pen Test - Univem
Mini Curso - Pen Test - UnivemMini Curso - Pen Test - Univem
Mini Curso - Pen Test - Univem
 
Jornada sobre Seguridad en Medios de Pago: PCI DSS
Jornada sobre Seguridad en Medios de Pago: PCI DSSJornada sobre Seguridad en Medios de Pago: PCI DSS
Jornada sobre Seguridad en Medios de Pago: PCI DSS
 
Os 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFOs 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSF
 
Implementando Testes Unitários em Java - Manoel Pimentel
Implementando Testes Unitários em Java - Manoel PimentelImplementando Testes Unitários em Java - Manoel Pimentel
Implementando Testes Unitários em Java - Manoel Pimentel
 
From DOT to Dotty
From DOT to DottyFrom DOT to Dotty
From DOT to Dotty
 
Proyecto Domótica Marcelo Bernal
Proyecto Domótica Marcelo BernalProyecto Domótica Marcelo Bernal
Proyecto Domótica Marcelo Bernal
 
Curso de Java #10 - Estruturas Condicionais (Parte 2)
Curso de Java #10 - Estruturas Condicionais (Parte 2)Curso de Java #10 - Estruturas Condicionais (Parte 2)
Curso de Java #10 - Estruturas Condicionais (Parte 2)
 
Ericsson Radio Dot System: Introduction
Ericsson Radio Dot System: Introduction Ericsson Radio Dot System: Introduction
Ericsson Radio Dot System: Introduction
 
Certificações em Teste e Qualidade de Software
Certificações em Teste e Qualidade de SoftwareCertificações em Teste e Qualidade de Software
Certificações em Teste e Qualidade de Software
 
Ctai Teste De Software Aula 2
Ctai Teste De Software Aula 2Ctai Teste De Software Aula 2
Ctai Teste De Software Aula 2
 
El test psicométrico y la evaluación neuropsicológica
El test psicométrico y la evaluación neuropsicológicaEl test psicométrico y la evaluación neuropsicológica
El test psicométrico y la evaluación neuropsicológica
 
Diretrizes curriculares nacionais para educação infantil
Diretrizes curriculares nacionais para educação infantilDiretrizes curriculares nacionais para educação infantil
Diretrizes curriculares nacionais para educação infantil
 
Living with licensing
Living with licensingLiving with licensing
Living with licensing
 
Minería e fontes de enerxía en España e Galicia
Minería e fontes de enerxía en España e GaliciaMinería e fontes de enerxía en España e Galicia
Minería e fontes de enerxía en España e Galicia
 
Show foto
Show fotoShow foto
Show foto
 
Service Desing Week2
Service Desing Week2Service Desing Week2
Service Desing Week2
 

Semelhante a Todas as abordagens de testes dentro do ágil

Testes automatizados cp
Testes automatizados cpTestes automatizados cp
Testes automatizados cpcesarvianna
 
Automação de testes em projetos ágeis
Automação de testes em projetos ágeisAutomação de testes em projetos ágeis
Automação de testes em projetos ágeisCristiano Caetano
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end seleniumQualister
 
Agile Brazil 2018
Agile Brazil 2018Agile Brazil 2018
Agile Brazil 2018Karla Silva
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasKleitor Franklint Correa Araujo
 
[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018Larissa Soares
 
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile TestingDevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile TestingSamanta Cicilia
 
Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Vanderson Silva
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehaveMarcelo Zeferino
 
Mocking Test - ThinkUp! - Abril/2017
Mocking Test - ThinkUp! - Abril/2017Mocking Test - ThinkUp! - Abril/2017
Mocking Test - ThinkUp! - Abril/2017Renato Groff
 
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Renato Groff
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agileAlini Rebonatto
 

Semelhante a Todas as abordagens de testes dentro do ágil (20)

Testes automatizados cp
Testes automatizados cpTestes automatizados cp
Testes automatizados cp
 
Apresentação testes white box
Apresentação testes white boxApresentação testes white box
Apresentação testes white box
 
Automação de testes em projetos ágeis
Automação de testes em projetos ágeisAutomação de testes em projetos ágeis
Automação de testes em projetos ágeis
 
BDD em Ação
BDD em AçãoBDD em Ação
BDD em Ação
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
Agile Brazil 2018
Agile Brazil 2018Agile Brazil 2018
Agile Brazil 2018
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
 
Palestra Testes Ágeis - SEMAC INF UFRGS
Palestra Testes Ágeis - SEMAC INF UFRGSPalestra Testes Ágeis - SEMAC INF UFRGS
Palestra Testes Ágeis - SEMAC INF UFRGS
 
[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018
 
TDD com Python (Completo)
TDD com Python (Completo)TDD com Python (Completo)
TDD com Python (Completo)
 
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile TestingDevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
 
Specflow - Criando uma ponte entre desenvolvedores.
Specflow - Criando uma ponte entre desenvolvedores.Specflow - Criando uma ponte entre desenvolvedores.
Specflow - Criando uma ponte entre desenvolvedores.
 
Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehave
 
Mocking Test - ThinkUp! - Abril/2017
Mocking Test - ThinkUp! - Abril/2017Mocking Test - ThinkUp! - Abril/2017
Mocking Test - ThinkUp! - Abril/2017
 
TDC 2016 Trilha Testes - Floripa
TDC 2016 Trilha Testes - FloripaTDC 2016 Trilha Testes - Floripa
TDC 2016 Trilha Testes - Floripa
 
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
 

Mais de Elias Nogueira

API Testing following the Test Pyramid
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test PyramidElias Nogueira
 
De a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de APIDe a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de APIElias Nogueira
 
Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testesElias Nogueira
 
Coach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o timeCoach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o timeElias Nogueira
 
O Agile Coach pode (e muitas vezes deve) ser técnico
O Agile Coach pode (e muitas vezes deve) ser técnicoO Agile Coach pode (e muitas vezes deve) ser técnico
O Agile Coach pode (e muitas vezes deve) ser técnicoElias Nogueira
 
Create an architecture for web test automation
Create an architecture for web test automationCreate an architecture for web test automation
Create an architecture for web test automationElias Nogueira
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosElias Nogueira
 
Como 4 Agile Coaches trabalham em uma Transformação Ágil
Como 4 Agile Coaches trabalham em uma Transformação Ágil Como 4 Agile Coaches trabalham em uma Transformação Ágil
Como 4 Agile Coaches trabalham em uma Transformação Ágil Elias Nogueira
 
BDD não é automação de teste - Scrum Gathering
BDD não é automação de teste - Scrum GatheringBDD não é automação de teste - Scrum Gathering
BDD não é automação de teste - Scrum GatheringElias Nogueira
 
Como criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersComo criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersElias Nogueira
 
Improve Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - TestsImprove Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - TestsElias Nogueira
 
BDD não é Automação de Testes
BDD não é Automação de TestesBDD não é Automação de Testes
BDD não é Automação de TestesElias Nogueira
 
Criando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com AppiumCriando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com AppiumElias Nogueira
 
Como ter sucesso ministrando uma palestra técnica
Como ter sucesso ministrando uma palestra técnicaComo ter sucesso ministrando uma palestra técnica
Como ter sucesso ministrando uma palestra técnicaElias Nogueira
 
Quais são os steps de que deve conter na sua pipeline?
Quais são os steps de que deve conter na sua pipeline?Quais são os steps de que deve conter na sua pipeline?
Quais são os steps de que deve conter na sua pipeline?Elias Nogueira
 
Coaching the Agile Coach
Coaching the Agile CoachCoaching the Agile Coach
Coaching the Agile CoachElias Nogueira
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileElias Nogueira
 
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationTrust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationElias Nogueira
 
O que é um Agile Coach
O que é um Agile CoachO que é um Agile Coach
O que é um Agile CoachElias Nogueira
 

Mais de Elias Nogueira (20)

API Testing following the Test Pyramid
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test Pyramid
 
De a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de APIDe a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de API
 
Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testes
 
Coach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o timeCoach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o time
 
O Agile Coach pode (e muitas vezes deve) ser técnico
O Agile Coach pode (e muitas vezes deve) ser técnicoO Agile Coach pode (e muitas vezes deve) ser técnico
O Agile Coach pode (e muitas vezes deve) ser técnico
 
Create an architecture for web test automation
Create an architecture for web test automationCreate an architecture for web test automation
Create an architecture for web test automation
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
 
Como 4 Agile Coaches trabalham em uma Transformação Ágil
Como 4 Agile Coaches trabalham em uma Transformação Ágil Como 4 Agile Coaches trabalham em uma Transformação Ágil
Como 4 Agile Coaches trabalham em uma Transformação Ágil
 
BDD não é automação de teste - Scrum Gathering
BDD não é automação de teste - Scrum GatheringBDD não é automação de teste - Scrum Gathering
BDD não é automação de teste - Scrum Gathering
 
Como criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersComo criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containers
 
Improve Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - TestsImprove Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - Tests
 
BDD não é Automação de Testes
BDD não é Automação de TestesBDD não é Automação de Testes
BDD não é Automação de Testes
 
Criando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com AppiumCriando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com Appium
 
Como ter sucesso ministrando uma palestra técnica
Como ter sucesso ministrando uma palestra técnicaComo ter sucesso ministrando uma palestra técnica
Como ter sucesso ministrando uma palestra técnica
 
Quais são os steps de que deve conter na sua pipeline?
Quais são os steps de que deve conter na sua pipeline?Quais são os steps de que deve conter na sua pipeline?
Quais são os steps de que deve conter na sua pipeline?
 
Tem que testar mesmo?
Tem que testar mesmo?Tem que testar mesmo?
Tem que testar mesmo?
 
Coaching the Agile Coach
Coaching the Agile CoachCoaching the Agile Coach
Coaching the Agile Coach
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and Mobile
 
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationTrust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
 
O que é um Agile Coach
O que é um Agile CoachO que é um Agile Coach
O que é um Agile Coach
 

Todas as abordagens de testes dentro do ágil

  • 1. Todas as abordagens de teste dentro do ágil! @eliasnogueira
  • 2. Elias Nogueira Tester, professor http://about.me/eliasnogueira @eliasnogueira TDC - The Developers Conference TestDay Jenkins User Conference – São Paulo
  • 3. Nós fizemos o deploy em produção esta manhã!
  • 4. Os testes irão levar 4 dias para executarem... Em 4 dias eu retorno com o resultado!
  • 6. Agile Testing Agile Testing é uma prática de Teste de Software que segue os princípios do desenvolvimento ágil
  • 7. Agile Testing Feedback contínuo Entrega de valor ao cliente Comunicação face-to-face Coragem Simplicidade Resposta a mudanças Auto-organização Foco em pessoas
  • 8.
  • 9. Como a maioria dos “Agile Testers” são hoje!
  • 10. Testadores hoje Não sabem o que é Ágil Não sabem programar O desenvolvedor é seu maior inimigo Programador frustrado ou querendo ser BA Não querem “passar trabalho”
  • 11.
  • 12.
  • 13. Separação clara dos papéis Desenvolvedores ágeis são “test infected” Agile Testers e Desenvolvedores colaboram Agile Testers colaboram com o usuário TODO O TIME é responsável por teste! Todos devem entender do negócio AUTOMATIZAM!!!
  • 14.
  • 16.
  • 18. Inicio da entrada da qualidade no produto Tem um suporte de refatoração É a base de uma suíte de automação TODO O TIME é responsável por teste! Todos devem entender do negócio
  • 19. Build Tools • Judson/Jenkins Unit Test Tools • xUnit • Mocking
  • 20. Testar os serviços da aplicação sem UI Preenche o gap entre Unit x UI Descrita de uma forma clara para o cliente Tanto tester quanto dev podem criar Podemos referencia-lo como “integração” • API Test • Integration Test • Component Test
  • 21. BDD Tools • Cucumber • Jbehave • SpecFlow Unit Test Tools • xUnit Fixture Tools • Fitnesse
  • 22. Teste da UI / E2E Focar em smoke tests Mais caro e mais frágil Desenvolvido no final do ‘done; de teste Usualmente fácil para testadores ágeis
  • 23. ATDD Tools • Selenium • Robot Framework
  • 24.
  • 25. TDD – Test Driven Development
  • 26. TDD – Test Driven Development Pequeno mal entendido Sou pago pra desenvolver, não testar “Done” é quando eu dou checkin Todos conhecem o código O projeto é curto Não há cliente
  • 27. BDD – Behavior Driven Development BDD pode ser visto como uma técnica de desenvolvimento ágil que encoraja colaboração entre os desenvolvedores, analistas, QA e o pessoal não técnico (stackeholders) para o sucesso de um projeto Éder Ignatowicz (@ederig)
  • 28. BDD – Behavior Driven Development BDD pode ser visto como uma técnica de desenvolvimento ágil que encoraja colaboração entre os desenvolvedores, analistas, QA e o pessoal não técnico (stackeholders) para o sucesso de um projeto
  • 29. BDD – Behavior Driven Development O suficiente é o suficiente Entregar valor para os stackholders Tudo é comportamento
  • 30. BDD – Behavior Driven Development User Story Feature: <description of the feature> As a <user/actor> I want <goal to be achieved> so that <the reason you want to achieve the goal> Funcionalidade: <descrição da funcionalidade> Como um <usuário/ator> Eu quero <meta a ser alcançada> De modo que <a razão para alcançar a meta>
  • 31. BDD – Behavior Driven Development Acceptance Criteria Scenario: <description of the test> Given <a known state> When <an event occurs> Then <then this should happen> Cenário: <descrição do teste> Dado <um estado conhecido> Quando <um determinado evento ocorre> Então <isso deve ocorrer>
  • 32. BDD – Behavior Driven Development Funcionalidade: Leitor de tipos de Triângulo Para conhecer o tipo de um triângulo Como um aluno da matemática Eu quero informar os tamanhos do lado de um triângulo e saber qual seu tipo NARRATIVA Um triângulo com todos os lados iguais é chamado Equilátero Um triângulo com dois lados iguais é chamado Isósceles Um triângulo com todos os lados diferentes é chamado Escaleno FORA DE ESCOPO - Validar triângulos inválidos - Exibir o triangulo graficamente - Validação de entrada de dados do usuário http://www.bugbang.com.br/entendendo-bdd-com-cucumber-parte-i/
  • 33. BDD – Behavior Driven Development Cenário: Consultando um triangulo Escaleno Dado que eu estou na página de consulta de triângulos Quando quando eu informo os lados do triangulo | lado1 | lado 2 | lado 3 | | 3 | 4 | 5 | Então o sistema informa que o triangulo é “Escaleno”
  • 34. ATDD – Acceptance Test Drive Development ATDD é uma prática onde todo o time, colaborativamente, discute critérios de aceitação através de exemplos antes de começar o desenvolvimento. Também garante que todos tenham a mesma definição do done.
  • 35. ATDD – Acceptance Test Drive Development
  • 36. ATDD – Acceptance Test Drive Development Exemplo Os usuários agora precisam utilizar senhas seguras (string de, no mínimo, 6 caracteres com pelo menos uma letra, um número e um símbolo)
  • 37. ATDD – Acceptance Test Drive Development Discutir o requisito Durante uma reunião de planejamento O que acontece se o usuário inserir uma senha não segura? E se o usuário colocar um espaço? Como fica as contas já existentes?
  • 38. ATDD – Acceptance Test Drive Development Destilar em um formato amigável Pensando em um formato para ferramenta Teste: Validar senhas válidas e inválidas Ação Argumento O teste deve ser válido p@ssw0rd O teste deve ser válido @@@000dd O teste deve ser válido p@ss w0rd O teste deve ser inválido password O teste deve ser inválido p@ss3 O teste deve ser inválido passw0rd O teste deve ser inválido @@@000
  • 39. ATDD – Acceptance Test Drive Development Desenvolver o código Implementação em qualquer formato public class ValidateLoginPage { WebDriver driver; public String loginValidation(String username, String password) { driver.findElement(By.id(“user”)).sendKeys(username); driver.findElement(By.id(“passwd”).sendKeys(password); driver.findElement(By.id(“submit”).click(); String result = driver.findElement(By.cssSelector(“result”)).getText() } }
  • 40. ATDD – Acceptance Test Drive Development Desenvolver o código Implementação em qualquer formato public class TestLogin { WebDriver driver = new FirefoxDriver(); @Test (dataProvider = ”data") public String testAllScenarios (String username, String password, String result) { ValidateLoginPage testLogin = new ValidationLoginPage(driver); String result = testLogin.loginValidation(username, password); Assert.assertEquals(expected, result); } @DataProvider(name = ”data”) public Object[][] createData() { Object[][] obj ={{”fred","p@ssw0rd",”Valid Password"}, {{”jack","passw0rd",”Invalid Password!”} }
  • 41. ATDD – Acceptance Test Drive Development Demostrar o teste Execução do teste em ambiente controlado
  • 42. Mas cadê o topo da pirâmide?
  • 43.
  • 44. Testes Exploratórios Simultâneamente .... ... aprender sobre o software ... desenvolver mais testes ... executar testes Usando o feedback do último teste para executar o próximo!
  • 45. Todos os testes unitários Essa user story de Passaram com sucesso! segurança passou nos meus A build está OK! teste de aceitação! Alguém já se deu conta que o usuário pode colocar ele mesmo como administrador?
  • 46. SBT - Session Based Testing Charter Explorar áreas/features [com recursos, condições , restrições] para descobrir informação Explorar o site em diversos browsers e configurações para descobrir riscos relacionados a configurações não suportadas
  • 47. SBT - Session Based Testing Charter Descrição e objetivo Tempo Área de Concentração Setup Observações Bugs