Agile Testing no Drupal

42
Agile Testing com Drupal Pass Fail por João Paulo Seregatte @justdigital

description

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.

Transcript of Agile Testing no Drupal

Page 1: Agile Testing no Drupal

Agile Testing com Drupal

Pass

Fail

por João Paulo Seregatte @justdigital

Page 2: Agile Testing no Drupal

O que e 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.

Page 3: Agile Testing no Drupal

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.

Page 4: Agile Testing no Drupal

O que e Agile testing?

Agile testing e uma pratica de teste de software que segue os principios do

desenvolvimento agil.

Page 5: Agile Testing no Drupal

Agile testing.

1. Feedback contınuo.2. Entrega de valor ao cliente.3. Comunicacao face-to-face.4. Coragem.5. Simplicidade.6. Resposta a mudancas.7. Auto-organizacao.8. Foco em pessoas.

Page 6: Agile Testing no Drupal

Cenários: Testers / Agile Tester

1. Desenvolvedores ageis sao “test infected”.

2. Colaboram com o usuario.

3. TODO O TIME e responsavel por teste!

4. Todos devem entender do negocio.

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”.

Page 7: Agile Testing no Drupal

Onde começa o processo de agile testing?

Page 8: Agile Testing no Drupal

Começa desde o levantamento de requisitos com o cliente!

Page 9: Agile Testing no Drupal

Quando o PO faz isso, o Team Dev agradece!

Page 10: Agile Testing no Drupal

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.

Page 11: Agile Testing no Drupal

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.

Page 12: Agile Testing no Drupal

User Story● Uma user story representa funcionalidades que devem fornecer valor para o

negocio (projeto).● Representa os requisitos (desejos) mais do que documenta-los.● Fornece um flash para comunicacao.● Sua definicao de pronto orienta os testes necessarios para a estoria

Page 13: Agile Testing no Drupal

User Story1. Quem?:

a. Personas ou Roles:i. Clienteii. Cliente VIPiii. Fornecedoriv. 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.

Page 14: Agile Testing no Drupal

User Story1. 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.

Page 15: Agile Testing no Drupal

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.

Page 16: Agile Testing no Drupal

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!

Page 17: Agile Testing no Drupal

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.

Page 18: Agile Testing no Drupal

EscopoFora

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.

Page 19: Agile Testing no Drupal

O que uma boa User Story?

IndependentNegotiableValuable to users or customersEstimableSmallTestable

Page 20: Agile Testing no Drupal

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.

Page 21: Agile Testing no Drupal

Testable - critérios de aceite

Scenario: Triângulo isócelesGiven 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áteroGiven 3 números iguais.When eu clicar em “Calcular”Then eu espero ver a mensagem “Triângulo equilátero”

Scenario: Triângulo escalenoGiven 3 números diferentes.When eu clicar em “Calcular”Then eu espero ver a mensagem “Triângulo escaleno”

Scenario: Não quero ver imagensGiven 3 números.When eu clicar em “Calcular”Then eu espero não ver uma imagem no “resultado”

Page 22: Agile Testing no Drupal

Hora de desenvolver?

Page 23: Agile Testing no Drupal

Hora do Sprint Planing

Page 24: Agile Testing no Drupal

DoR e o DoD deve estar acordado entre Dev Team, SM e PO

Page 25: Agile Testing no Drupal

ATDD TDD BDD TAD

Antes de desenvolver

Page 26: Agile Testing no Drupal

Antes de desenvolver

Page 27: Agile Testing no Drupal

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.

Page 28: Agile Testing no Drupal

Teste unitários? Que tal TDD? No Drupal?

Page 29: Agile Testing no Drupal

Módulo SimpleTest - DrupalUnitTestCase

Teste unitário sem bootstrap de banco de dados.

Page 30: Agile Testing no Drupal

Então vamos fazer teste unitários com TDD?

Page 31: Agile Testing no Drupal

Teste de aceitação? No Drupal?

Page 32: Agile Testing no Drupal

Módulo SimpleTest - DrupalWebTestCase

Teste de aceitação simulando um browser e com “banco de dados” separado.

Page 33: Agile Testing no Drupal

Então vamos fazer testes de aceitação com SimpleTest?

Page 34: Agile Testing no Drupal

Teste de UI? No Drupal?

Page 35: Agile Testing no Drupal

Módulo SimpleTest + Módulo Selenium

Teste de UI usando um seção de um browser real.

Page 36: Agile Testing no Drupal

Teste de Aceitação e Teste de UI, integrados!

Os 2 testes na mesma ferramenta + linguagem neutra, voltada a negócios.

Page 37: Agile Testing no Drupal

Não se esqueça dos critérios de aceite

Scenario: Triângulo isócelesGiven 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áteroGiven 3 números iguais.When eu clicar em “Calcular”Then eu espero ver a mensagem “Triângulo equilátero”

Scenario: Triângulo escalenoGiven 3 números diferentes.When eu clicar em “Calcular”Then eu espero ver a mensagem “Triângulo escaleno”

Scenario: Não quero ver imagensGiven 3 números.When eu clicar em “Calcular”Then eu espero não ver uma imagem no “resultado”

Page 38: Agile Testing no Drupal

Então vamos fazer testes de UI com Behat e Selenium?

Scenario: Triângulo isócelesGiven 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áteroGiven 3 números iguais.When eu clicar em “Calcular”Then eu espero ver a mensagem “Triângulo equilátero”

Scenario: Triângulo escalenoGiven 3 números diferentes.When eu clicar em “Calcular”Then eu espero ver a mensagem “Triângulo escaleno”

Scenario: Não quero ver imagensGiven 3 números.When eu clicar em “Calcular”Then eu espero não ver uma imagem no “resultado”

Page 39: Agile Testing no Drupal

Continuous Integration!

Page 40: Agile Testing no Drupal

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!

Page 41: Agile Testing no Drupal

Quando o Dev Team faz isso, o PO e o cliente agradecem!

Page 42: Agile Testing no Drupal

Fim!

João PauloHead of [email protected]