Todas as abordagens de testedentro do ágil!                           @eliasnogueira
Elias Nogueira   Tester, professor   http://about.me/eliasnogueira   @eliasnogueira   TDC - The Developers Conference   Te...
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...
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 o...
Separação clara dos papéis  Desenvolvedores ágeis são “test infected”  Agile Testers e Desenvolvedores colaboram  Agile Te...
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 produtoTem um suporte de refatoraçãoÉ a base de uma suíte de automaçãoTODO O TIME é resp...
Build Tools  • Judson/JenkinsUnit Test Tools  • xUnit  • Mocking
Testar os serviços da aplicação sem UIPreenche o gap entre Unit x UIDescrita de uma forma clara para o clienteTanto tester...
BDD Tools  • Cucumber  • Jbehave  • SpecFlowUnit Test Tools  • xUnitFixture Tools   • Fitnesse
Teste da UI / E2EFocar em smoke testsMais caro e mais frágilDesenvolvido no final do ‘done; de testeUsualmente fácil para ...
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 chec...
BDD – Behavior Driven Development  BDD pode ser visto como uma técnica  de desenvolvimento ágil que encoraja  colaboração ...
BDD – Behavior Driven Development  BDD pode ser visto como uma técnica  de desenvolvimento ágil que encoraja  colaboração ...
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 wa...
BDD – Behavior Driven Development   Acceptance Criteria      Scenario: <description of the test>      Given <a known state...
BDD – Behavior Driven Development   Funcionalidade: Leitor de tipos de Triângulo   Para conhecer o tipo de um triângulo   ...
BDD – Behavior Driven Development   Cenário: Consultando um triangulo Escaleno   Dado que eu estou na página de consulta d...
ATDD – Acceptance Test Drive Development  ATDD é uma prática onde todo o  time, colaborativamente, discute  critérios de a...
ATDD – Acceptance Test Drive Development
ATDD – Acceptance Test Drive Development   Exemplo     Os usuários agora precisam utilizar senhas seguras     (string de, ...
ATDD – Acceptance Test Drive DevelopmentDiscutir o requisitoDurante uma reunião de planejamento     O que acontece se o us...
ATDD – Acceptance Test Drive DevelopmentDestilar em um formato amigávelPensando em um formato para ferramenta    Teste: Va...
ATDD – Acceptance Test Drive DevelopmentDesenvolver o códigoImplementação em qualquer formato   public class ValidateLogin...
ATDD – Acceptance Test Drive DevelopmentDesenvolver o códigoImplementação em qualquer formato   public class TestLogin {  ...
ATDD – Acceptance Test Drive DevelopmentDemostrar o testeExecução do teste em ambiente controlado
Mas cadê o topo da pirâmide?
Testes ExploratóriosSimultâneamente ....... aprender sobre o software... desenvolver mais testes... executar testesUsando ...
Todos os testes unitários                 Essa user story dePassaram com sucesso!                segurança passou nos meus...
SBT - Session Based TestingCharter  Explorar áreas/features [com  recursos, condições , restrições] para descobrir  inform...
SBT - Session Based TestingCharter    Descrição e objetivo    Tempo    Área de Concentração    Setup    Observações    Bugs
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
Próximos SlideShares
Carregando em…5
×

Todas as abordagens de testes dentro do ágil

11.253 visualizações

Publicada em

Palestra apresentada dia 10/11/2012 no Rio Agile Talks (@rioagile) mostrando a importância do Agile Testing e das visões que mudam sobre modelos, como o quadrande de Brian Merick que pode ser mudado/atualizado pelo novo uadrante proposto por Elisabeth Hendrickson, mas onde uma coida não muda: a pirâmide de automação de teste

Publicada em: Notícias e política
0 comentários
12 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
11.253
No SlideShare
0
A partir de incorporações
0
Número de incorporações
7.730
Ações
Compartilhamentos
0
Downloads
141
Comentários
0
Gostaram
12
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Todas as abordagens de testes dentro do ágil

  1. 1. Todas as abordagens de testedentro do ágil! @eliasnogueira
  2. 2. Elias Nogueira Tester, professor http://about.me/eliasnogueira @eliasnogueira TDC - The Developers Conference TestDay Jenkins User Conference – São Paulo
  3. 3. Nós fizemos o deploy em produção esta manhã!
  4. 4. Os testes irão levar 4 dias para executarem... Em 4 dias eu retorno com o resultado!
  5. 5. Agile Testing
  6. 6. Agile Testing Agile Testing é uma prática de Teste de Software que segue os princípios do desenvolvimento ágil
  7. 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. 8. Como a maioria dos “Agile Testers” são hoje!
  9. 9. 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”
  10. 10. 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!!!
  11. 11. http://www.shino.de/2012/07/30/the-testing-quadrants-we-got-it-wrong/
  12. 12. Pirâmide de Automação de Teste
  13. 13. Inicio da entrada da qualidade no produtoTem um suporte de refatoraçãoÉ a base de uma suíte de automaçãoTODO O TIME é responsável por teste!Todos devem entender do negócio
  14. 14. Build Tools • Judson/JenkinsUnit Test Tools • xUnit • Mocking
  15. 15. Testar os serviços da aplicação sem UIPreenche o gap entre Unit x UIDescrita de uma forma clara para o clienteTanto tester quanto dev podem criarPodemos referencia-lo como “integração” • API Test • Integration Test • Component Test
  16. 16. BDD Tools • Cucumber • Jbehave • SpecFlowUnit Test Tools • xUnitFixture Tools • Fitnesse
  17. 17. Teste da UI / E2EFocar em smoke testsMais caro e mais frágilDesenvolvido no final do ‘done; de testeUsualmente fácil para testadores ágeis
  18. 18. ATDD Tools • Selenium • Robot Framework
  19. 19. TDD – Test Driven Development
  20. 20. 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
  21. 21. 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)
  22. 22. 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
  23. 23. BDD – Behavior Driven Development O suficiente é o suficiente Entregar valor para os stackholders Tudo é comportamento
  24. 24. 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>
  25. 25. 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>
  26. 26. 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áriohttp://www.bugbang.com.br/entendendo-bdd-com-cucumber-parte-i/
  27. 27. 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”
  28. 28. 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.
  29. 29. ATDD – Acceptance Test Drive Development
  30. 30. 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)
  31. 31. ATDD – Acceptance Test Drive DevelopmentDiscutir o requisitoDurante 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?
  32. 32. ATDD – Acceptance Test Drive DevelopmentDestilar em um formato amigávelPensando 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
  33. 33. ATDD – Acceptance Test Drive DevelopmentDesenvolver o códigoImplementaçã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() } }
  34. 34. ATDD – Acceptance Test Drive DevelopmentDesenvolver o códigoImplementaçã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!”} }
  35. 35. ATDD – Acceptance Test Drive DevelopmentDemostrar o testeExecução do teste em ambiente controlado
  36. 36. Mas cadê o topo da pirâmide?
  37. 37. Testes ExploratóriosSimultâneamente ....... aprender sobre o software... desenvolver mais testes... executar testesUsando o feedback do último teste paraexecutar o próximo!
  38. 38. Todos os testes unitários Essa user story dePassaram com sucesso! segurança passou nos meusA build está OK! teste de aceitação! Alguém já se deu conta que o usuário pode colocar ele mesmo como administrador?
  39. 39. SBT - Session Based TestingCharter 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
  40. 40. SBT - Session Based TestingCharter Descrição e objetivo Tempo Área de Concentração Setup Observações Bugs

×