Agile Testing no Drupal

399 views
336 views

Published on

Palestra sobre testes, mais especificamente para projetos Drupal, que aborda as diferentes práticas de testes. TDD, TAD, BDD, Testes de aceitação... Ministrada pelo João Paulo Seregatte, Head de Tecnologia da Just Digital. Além se dar bastante ênfase nas práticas de teste, o conteúdo aborda práticas de escrita de User Stories. A palestra é voltada para Agile Test.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
399
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Agile Testing no Drupal

  1. 1. Agile Testing com Drupal Pass Fail por João Paulo Seregatte @justdigital
  2. 2. O que é Agile? ● É um conjunto de metodologias de desenvolvimento de software: ○ Entregas constantes de valor através de ciclos curtos. ○ Aumentar a taxa de feedback para responder a mudanças. ○ Ter leveza e flexibilidade para mudar. ○ Aprendizado continuo para melhorar continuamente.
  3. 3. Manifesto ágil. ● Indivíduos e interações > Processos e Ferramentas. ● Software em funcionamento > Documentação abrangente. ● Colaboração com o cliente > Negociação de contratos. ● Responder a mudanças > Seguir um plano.
  4. 4. O que é Agile testing? Agile testing é uma prática de teste de software que segue os princípios do desenvolvimento ágil.
  5. 5. Agile testing. 1. Feedback contı́nuo. 2. Entrega de valor ao cliente. 3. Comunicaç ão face-to-face. 4. Coragem. 5. Simplicidade. 6. Resposta a mudanç as. 7. Auto-organizaç ão. 8. Foco em pessoas.
  6. 6. Cenários: Testers / Agile Tester 1. Desenvolvedores ágeis são “test infected”. 2. Colaboram com o usuário. 3. TODO O TIME é responsável por teste! 4. Todos devem entender do negó cio. 5. AUTOMATIZAM!!! 1. Não sabem o que é ágil. 2. Não sabem programar. 3. O desenvolvedor é seu maior inimigo. 4. Programador frustrado ou querendo ser BA. 5. Não querem “passar trabalho”.
  7. 7. Onde começa o processo de agile testing?
  8. 8. Começa desde o levantamento de requisitos com o cliente!
  9. 9. Quando o PO faz isso, o Team Dev agradece!
  10. 10. Como levantar os requisitos? Sistema de triângulos. Um professor do ensino fundamental (Segunda série) quer um sistema para representar os tipos de triângulos para seus alunos onde eles vão entrar com os 3 lados de um triângulo e o sistema informa qual é o tipo do dele.
  11. 11. Como levantar os requisitos? Sistema de triângulos. 1. Escola privada. 2. Sistema usado no laborátorio da escola. 3. Acesso a internet no laboratório. 4. Entra com 3 Campos > Tipo do triângulo. 5. Individualmente. 6. Sem mensuração de dados. 7. Não deve ter figuras.
  12. 12. User Story ● Uma user story representa funcionalidades que devem fornecer valor para o negócio (projeto). ● Representa os requisitos (desejos) mais do que documentá -los. ● Fornece um flash para comunicaç ão. ● Sua definiç ão de pronto orienta os testes necessá rios para a estória
  13. 13. User Story 1. Quem?: a. Personas ou Roles: i. Cliente ii. Cliente VIP iii. Fornecedor iv. Atendente do call center. 2. O que?: a. Ações. b. Rotinas. 3. Por quê?: a. Efeito no negócio. b. Valor para o cliente.
  14. 14. User Story 1. Como um dono de padaria preciso saber meu lucro por cada pão por isso preciso listar os custos fixos rateado pela quantidade de pães produzidos. 2. Como um vendedor, gostaria de consultar o estoque de um determinado produto para oferecer ao cliente. 3. Como um diretor, gostaria de obter o volume de vendas do mês para acompanhar as metas. 4. Como um cliente eu gostaria de visualizar os planos existentes para decidir qual plano devo comprar.
  15. 15. De volta aos triângulos. Sistema de triângulos. Um professor do ensino fundamental (Segunda série) quer um sistema para representar os tipos de triângulos para seus alunos onde eles vão entrar com os 3 lados de um triângulo e o sistema informa qual é o tipo do dele.
  16. 16. Porque eu não perguntei o por quê? Sistema de triângulos. 1. Escola privada. 2. Sistema usado no laborátorio da escola. 3. Acesso a internet no laboratório. 4. Entra com 3 Campos > Tipo do triângulo. 5. Individualmente. 6. Sem mensuração de dados. 7. Não deve ter figuras!
  17. 17. Não caia na cilada do óbvio! Esse professor dá aulas de matemática para uma turma de alunos superdotados e precisa usar esse sistema como experimento para sua tese de mestrado.
  18. 18. Escopo Fora 1. Validar triângulos inválidos. 2. Exibir o triângulo graficamente. 3. Validar entrada do usuário. Dentro 1. Trângulo com todos os lados iguais é equilátero. 2. Triângulo com 2 lados iguais é isóceles. 3. Triangulo com todos os lados diferentes é escaleno.
  19. 19. O qué uma boa User Story? Independent Negotiable Valuable to users or customers Estimable Small Testable
  20. 20. Continuando com triangulos... Eu como professor gostaria de avaliar a capacidade dos meus alunos para gerar uma tese de mestrado. Para conhecer o tipo de um triângulo como um aluno de matemática, eu quero informar os tamanhos do lado de um triângulo e saber qual seu tipo.
  21. 21. Testable - critérios de aceite Scenario: Triângulo isóceles Given 2 números iguais e 1 diferente. When eu clicar em “Calcular” Then eu espero ver a mensagem “Triângulo isóceles” Scenario: Triângulo equilátero Given 3 números iguais. When eu clicar em “Calcular” Then eu espero ver a mensagem “Triângulo equilátero” Scenario: Triângulo escaleno Given 3 números diferentes. When eu clicar em “Calcular” Then eu espero ver a mensagem “Triângulo escaleno” Scenario: Não quero ver imagens Given 3 números. When eu clicar em “Calcular” Then eu espero não ver uma imagem no “resultado”
  22. 22. Hora de desenvolver?
  23. 23. Hora do Sprint Planing
  24. 24. DoR e o DoD deve estar acordado entre Dev Team, SM e PO
  25. 25. ATDD TDD BDD TAD Antes de desenvolver
  26. 26. Antes de desenvolver
  27. 27. Teste unitários 1. São de responsabilidade do Desenvolvedor. 2. Deve testar pequenas partes do sistema (funcões, classes). 3. Facilita o desenvolvedor encontrar a origem de bugs no sistema. 4. Não faz muito sentido para a o pessoal de negócio.
  28. 28. Teste unitários? Que tal TDD? No Drupal?
  29. 29. Módulo SimpleTest - DrupalUnitTestCase Teste unitário sem bootstrap de banco de dados.
  30. 30. Então vamos fazer teste unitários com TDD?
  31. 31. Teste de aceitação? No Drupal?
  32. 32. Módulo SimpleTest - DrupalWebTestCase Teste de aceitação simulando um browser e com “banco de dados” separado.
  33. 33. Então vamos fazer testes de aceitação com SimpleTest?
  34. 34. Teste de UI? No Drupal?
  35. 35. Módulo SimpleTest + Módulo Selenium Teste de UI usando um seção de um browser real.
  36. 36. Teste de Aceitação e Teste de UI, integrados! Os 2 testes na mesma ferramenta + linguagem neutra, voltada a negócios.
  37. 37. Não se esqueça dos critérios de aceite Scenario: Triângulo isóceles Given 2 números iguais e 1 diferente. When eu clicar em “Calcular” Then eu espero ver a mensagem “Triângulo isóceles” Scenario: Triângulo equilátero Given 3 números iguais. When eu clicar em “Calcular” Then eu espero ver a mensagem “Triângulo equilátero” Scenario: Triângulo escaleno Given 3 números diferentes. When eu clicar em “Calcular” Then eu espero ver a mensagem “Triângulo escaleno” Scenario: Não quero ver imagens Given 3 números. When eu clicar em “Calcular” Then eu espero não ver uma imagem no “resultado”
  38. 38. Então vamos fazer testes de UI com Behat e Selenium? Scenario: Triângulo isóceles Given 2 números iguais e 1 diferente. When eu clicar em “Calcular” Then eu espero ver a mensagem “Triângulo isóceles” Scenario: Triângulo equilátero Given 3 números iguais. When eu clicar em “Calcular” Then eu espero ver a mensagem “Triângulo equilátero” Scenario: Triângulo escaleno Given 3 números diferentes. When eu clicar em “Calcular” Then eu espero ver a mensagem “Triângulo escaleno” Scenario: Não quero ver imagens Given 3 números. When eu clicar em “Calcular” Then eu espero não ver uma imagem no “resultado”
  39. 39. Continuous Integration!
  40. 40. E os teste manuais, acabam? Não, testes exploratórios nunca acabam! 1. Aprender sobre mais sobre o software. 2. Desenvolver mais testes. 3. Executar testes. Use o feedback do último teste para executar o próximo!
  41. 41. Quando o Dev Team faz isso, o PO e o cliente agradecem!
  42. 42. Fim! João Paulo Head of technology joaopaulo@justdigital.com.br

×