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.
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. 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. O que é Agile testing?
Agile testing é uma prática de teste de
software que segue os princípios do
desenvolvimento ágil.
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. 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”.
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. 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. 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. 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. 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. 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. 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. 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. 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. O qué uma boa User Story?
Independent
Negotiable
Valuable to users or customers
Estimable
Small
Testable
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. 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”
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.
35. Módulo SimpleTest + Módulo Selenium
Teste de UI usando um seção de um
browser real.
36. Teste de Aceitação e Teste de UI, integrados!
Os 2 testes na mesma ferramenta +
linguagem neutra, voltada a negócios.
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. 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”
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. Quando o Dev Team faz isso, o PO e
o cliente agradecem!