Este documento fornece uma introdução sobre testes de software, com foco nos testes funcionais em times ágeis. Apresenta conceitos como qualidade, garantia da qualidade versus controle da qualidade, níveis e tipos de teste, técnicas de teste como análise de valor limite, particionamento por equivalência e tabelas de decisão. Também discute validação versus verificação, desenho de testes, cenários e casos de teste. Por fim, aborda técnicas ágeis como teste exploratório.
1. 1 1
KLEITOR
Testes de software
Design clássico e Ágil
Conheça: clipzen.blog
Lean SS Black Belt certified
Kanban Coach certified
Scrum Coach certified
Lean expert and QA specialist
Uma introdução.
2. 2 2
Esta apresentação fornece visão
geral sobre testes, e enfatiza testes
funcionais no universo de times
ágeis.
emphasize
5. 5 5
Qualidade
Qualidade como o "grau em que um conjunto de
características inerentes a um objeto atende aos requisitos".
Simplificando, a qualidade é atender aos requisitos do cliente
ISO 9000:2015: Quality management systems—Fundamentals and vocabulary
7. 7 7
Garantia da qualidade
Atividade proativa
-Prevenção do que perturba a qualidade
-Foco no processo e melhoria continua
-Como o processo e o produto é feito
8. 8 8
Controle da qualidade
Ferramenta que a Garantia da Qualidade usa
para garantir o atendimento aos requisitos dos
Produtos ou Serviços.
http://academiaplatonica.com.br/2012/gestao/nbr-iso-90002005-3-2-11-garantia-da-
qualidade-sistema-de-gestao-da-qualidade-fundamentos-e-vocabulario/
Mede, inspeciona,
examina
10. 10 10
O que é teste, para você?
- Teste como atividade
- Começa na primeira captura de requisitos
- Não é sobre bug-zero
O objetivo dos testes é agregar valor
o mais cedo possível ao produto
- É sobre obter um wow do cliente
11. 11 11
O que é teste, para você?
- É sobre falhar o mais rápido possível
- Sua essência é enriquecer requisitos.
- Checar é o básico, validar é tudo
É sobre perceber o que
é importante pro
cliente.
12. 12 12
Benefícios de testes
Teste fornece informação
-Que tipo de informação é necessária entregar e
aumentar a qualidade e reduzir riscos?
-Como evidenciar o benefício?
-Qual o tempo para evidenciar e fornecer
feedback?
13. 13 13
Falha, erro, defeito e bug
Uma falha significa que um dado requisito não é
cumprido. Uma falha está presente se uma expectativa
não é conhecida.
Uma falha é causada por um defeito
ou erro interno no software,
cujo jargão é bug.
IEEE Standard 610.12,
Software Testing Foundations, 4ª edição
14. 14 14
Níveis de teste
Componentes (unitarios),
integração, teste de sistema, teste
de aceitação, etc...
Os níveis são sequenciais ou
paralelos?
16. 16 16
Níveis de teste
Integração: nível unitário, nível de
interface, End-to-end System
testing.
17. 17 17
Tipos de teste
Funcional (caixa preta), inclui todos os tipos de
testes que verificam o comportamenteo de um
sistema. ISO 9126
18. 18 18
Estruturais
Técnicas estruturais (testes baseados em
estrutura, teste de caixa branca).
Informações sobre a estrutura ou arquitetura de
código interno do objeto de teste.
19. 19 19
Tipos de teste
Não funcional (performance, segurança,
usabilidade, etc). Não descrevem as funções, mas
atributos do comportamento funcional ou do
sistema. ISO / IEC 25010: 2011
20. 20 20
Orientados a mudança
O objetivo é aferir se as mudanças não
causaram efeito indesejado.
Teste de confirmação( falhou da primeira vez),
Teste de regressão ( passou da primeira vez).
Se gerou comportamento indesejado ou
inesperado.
22. 22 22
V&V – Validação e verificação de software
A validação verifica a conformidade com as expectativas de
qualidade do cliente.
A verificação verifica a conformidade da implementação do
produto de software contra a sua especificação para ver se foi
implementado corretamente.
V&V – Software verification and validation IEEE 1012
https://en.wikipedia.org/wiki/Software_verification_and_validation
https://en.wikipedia.org/wiki/Verification_and_validation
PERSPECTIVAS
23. 23 23
PERSPECTIVAS DE VALIDAÇÃO E VERIFICAÇÃO
-Validação: caixa-preta
-Verificação: caixa branca ( estrutural)
25. 25 25
Desenho de teste
Técnicas estáticas: revisões, inspeções, auditoria de
código
Técnicas Dinâmicas: caixa-preta, Caixa-branca,etc.
Exemplos de técnicas de caixa-preta: partição por equivalência,
análise do valor do limite; tabelas de decisão, etc.
https://en.wikiversity.org/wiki/Software_testing/Design_technique
26. 26 26
Não se pode cobrir tudo.
Cobrir estrategicamente
Amostras de valor
Por que
desenhar
testes?
27. 27 27
TÉCNICAS DE TESTE
É impossível um conjunto completo de testes para provar que
não há erros, a solução é mudar a abordagem de prova
absoluta para demonstração convincente, buscando mostrar
que a probabilidade de falhas mais críticas que hibernam
foram cobertas pelos casos de teste.
IDENTIFICAR BUGS, CENÁRIOS DE RISCOS
E NECESSIDADES DO CLIENTE
28. 28 28
TÉCNICAS DE TESTE
Análise de valor limite
Técnica que busca limítrofes, ou seja, erros que ocorrem nas
fronteiras do domínio de entrada em vez de no centro.
29. 29 29
TÉCNICAS DE TESTE
Outros exemplos:
• Validar limites de expressões numéricas e datas:
>,>=,<,<=;
• Validar datas retroativas
• Validar arquivos cheios e vazios;
• Validar limite mínimo e máximo de parâmetros.
• Validar se cabeçalhos e rodapés estão aparecendo nos
limites superior e inferior;
Análise de valor limite
30. 30 30
Uma escola quer cadastrar turmas e professores.
Uma turma pode ter aulas em salas teóricas e laboratórios
Cada professor tem no máximo 3 turmas, mas pode não estar alocado.
Turmas têm no máximo 30 alunos
A lista de presença deve ser preenchida até 10 minutos após o início da
aula
Exercício: Análise de valor limite
Identifique cenários
31. 31 31
TÉCNICAS DE TESTE
Partição por equivalência
Divide o domínio de entrada em classes ( partes ) de tipos
específicos. Testar um da equivalência é considerado
suficiente.
Quais as classes inválidas?
SoftwareTesting Foundations, 4ª edição
32. 32 32
Uma escola quer cadastrar turmas e professores.
Uma turma pode ter aulas em salas teóricas e laboratórios
Cada professor tem no máximo 3 turmas, mas pode não estar alocado.
Turmas têm no máximo 30 alunos
A lista de presença deve ser preenchida até 10 minutos após o início da
aula
Exercício: Partição por equivalência
Identifique cenários
33. 33 33
TÉCNICAS DE TESTE
Tabelas de decisão
Testes baseados em partições de equivalência ou análise de valores-
limite consideram cada valor de entrada isoladamente.
E se existirem combinações de valores que constituam situações
interessantes a serem testadas?
A resposta é utilizar Tabelas de decisão para análise de “causa-efeito”.
Elas também permitem que se represente várias técnicas de teste em
conjunto.
34. 34 34
TÉCNICAS DE TESTE
Resultado Esperado
Cenário Condição Funcional Pentest
Validar Extensão V V N/A
F F F
Validar conteúdo V V N/A
F F F
Validar Tamanho V V N/A
F F F
Exemplo para testar “Anexar arquivo”
Tabelas de decisão
35. 35 35
TÉCNICAS DE TESTE
Cenário
( causas)
Senha Numero da
conta
Valor
digitado
Valor na
conta
Valor no
caixa
eletrônico
Resultado
esperado.
( efeitos )
CN1- Retirada em
Dinheiro Bem-
sucedida
V V V V V Retirada em
dinheiro bem-
sucedida.
CN2 - Caixa
Eletrônico sem
Dinheiro
V V V V F Opção Retirada
em Dinheiro
indisponível.
Tabela de decisão para “Sacar dinheiro”.
http://www.wthreex.com/rup/process/modguide/md_tstcs.htm
36. 36 36
Cenários de teste
Uma instância de um contexto. Sequência específica de ações que
ilustra comportamentos. Um cenário pode ser usado para ilustrar
uma interação ou a execução da instância de um contexto.
Cenário
( causas)
Senha Numero da
conta
Valor
digitado
Valor na
conta
Valor no
caixa
eletrônico
Resultado
esperado.
( efeitos )
CN1- Retirada em
Dinheiro Bem-
sucedida
V V V V V Retirada em
dinheiro bem-
sucedida.
37. 37 37
Uma escola quer cadastrar turmas e professores.
Uma turma pode ter aulas em salas teóricas e laboratórios
Cada professor tem no máximo 3 turmas, mas pode não estar alocado.
Turmas têm no máximo 30 alunos
A lista de presença deve ser preenchida até 10 minutos após o início da
aula
Exercício: Tabela de decisão
Identifique cenários
38. 38 38
Caso de teste (script)
Conceito:
Conjunto de instruções passo a passo que contêm
-Entradas( dados de teste)
-Saídas ( resultados )
-Validações (Condições de execução: RN, exceções, msg, fluxos, etc)
39. 39 39
Massa e dados de teste
Dados Válidos: participam de um cenário de casos de teste
positivo.
Ex: nome ”joao”, telefone:3232-0000.
Dados inválidos: possibilitam a implementação do teste
negativo a um determinado cenário.
Ex: nome ”??@*!”, telefone:”abcd;,~!!”.
Precisa de massa de teste?
41. 41 41
Uma escola quer cadastrar turmas e professores.
Uma turma pode ter aulas em salas teóricas e laboratórios
Cada professor tem no máximo 3 turmas, mas pode não estar alocado.
Turmas têm no máximo 30 alunos
A lista de presença deve ser preenchida até 10 minutos após o início da
aula
Exercício: Crie um teste funcional com script
42. 42 42
O paradoxo dos pesticidas.
Insetos e bactérias tornam-se resistentes aos pesticidas. Da mesma
forma, se os mesmos testes são repetidos uma e outra vez, tendem
a perder sua eficácia, não descobrindo novos defeitos.
Para manter a eficácia de testes e lutar contra este "paradoxo de
pesticidas", casos de teste novos e modificados devem ser
desenvolvidos.
Com base em Software Testing Foundations, 4ª edição
Como reduzir o paradoxo dos pesticidas?
43. 43 43
TÉCNICAS ÁGEIS DE TESTE
-Teste Exploratório no mundo ágil
-Histórias do usuário
44. 44 44
Manifesto de teste
Valorizamos
-Teste no todo é melhor que no final
-Prevenir bugs é melhor que procurá-los
-Compreender o teste é melhor que checar
funcionalidades
-Construir o melhor sistema é melhor que quebra-lo
-Responsabilidade do time com a qualidade é
melhor que a responsabilidade do tester
46. 46 46
O que é pra
você, teste
exploratório?
Um vídeo sobre
exploratório
47. 47 47
Teste Exploratório:
Características
Gente, desculpa,
ainda não entendi o
que é teste
exploratório
Essa é fácil!!! Design,
execução e
aprendizagem ao
mesmo tempo
Deixa comigo!!! Seus
elementos são três..
James Bach’s 2003 paper, “Exploratory Testing Explained.”
É estruturado. Não é
“Testa eah!”
Seu ponto de partida
são ideias, propósitos
e missão definidas
identificar riscos
críticos, necessidades
e fatores de qualidade
Porque o objetivo é
agregar valor ao
produto
Por quê?
48. 48 48
Por que usar Exploratorios?
Software perfeito e outras ilusões
Não consigo cobrir
com antecedência
todas as condições
...e é muita coisa que leva tempo!
configurações, interações,
execução, sumarização... rsrs
...e o conhecimento?!
dados, cenários,
configurações... nem se
fala!
...e nem todas
condições são úteis de
serem cobertas
49. 49 49
Por que usar Exploratorios?
Repensando estratégias
Não é necessário um
conjunto “perfeito” de
testes
Que tal uma estratégia que
responda a questões criticas?
Amei a ideia..rsrs Que tal um um brainstorm
sobre comportamento e risco?
54. 54 54
Técnicas Exploratórias- Como explorar
Jogos de
catástrofes
Modelos de estado,
Técnica de relações,
CRUD, QQC,
Comportamento
padrão
Técnica
de turismo
Session Based e
de Reconhecimento
Persona
Não são
sequenciais
56. 56 56
O valor das
Cartas de Teste
Card: para lembrar do teste, conversa
Conversation: detalhes
Confirmation: teste de aceitação
Abordagem
Exploratória
57. 57 57
Sessões de reconhecimento são sobre mapear o território do sistema existente.
Ao final da sessão, saber mais sobre:
-O escopo exploratório
-As técnicas necessárias na exploração tendo uma ideia inicial
sobre a qualidade e características do sistema
Sessões de reconhecimento
James and Jon Bach recon session
https://www.youtube.com/watch?v=Vy0I2SB5OLo
59. 59 59
• E se... O que de pior pode ocorrer? O que pode
comprometer?
• E se a primeira camada de segurança quebrar?
• E se eu mudar um parâmetro da requisição e o captha
não impedir um DOS?
• E se eu testar este trecho de funcionalidade, o que
ocorre?
• O que acontece se eu...
Identificando cenários
orientados a risco
Técnica de Jogos de catástrofes
60. 60 60
Onde ( o que ) : Riscos
Atividade 2-Jogos de catástrofes
61. 61 61
Mind Maps
-Começe com um alvo base
-Estratégias: top down e bottom up
-Deixe as ideias explodirem
-Planeje: KISS at all
-Recall da conversation
63. 63 63
Atividade 6Crie um
que
o
com critérios mínimos de aceitação
Utilize técnicas de desenho de teste
Sessões de 5 minutos: Reconhecimento, exploração
64. 64 64
Create.
Crie um caminho diferente para explorar a entidade
Crie entidades com atributos diferentes ( formulários com campos
personalizados)
Delete
Delete atributos da entidade e execute percurso padrão e diferente
Read
Veja a entidade imagem em browsers diferentes e dimensões
diferentes
Update:
Atualize a sessão do browser ( F5) durante o upload da entidade
arquivo
Técnica CRUD
65. 65 65
Exemplo:
oQuem insere na funcionalidade criar escala?
oQuem pode enviar msgs fora do sistema?
oQuando pode enviar msgs?
oPode enviar msgs ao mesmo tempo? (quando)
oQuantos podem concorrentemente se matricular?
oHá outra forma de enviar msg usando tecla de atalho
( como )
oQuando pode apagar a msg de quem?
oComo ( Regras de negócio) insere?
Onde ( o que ) : Entidades, funcionalidades, UI, código...
Como: Técnica 3QC (Quando, Quem, Quantos, Como ) +
CRUD
66. 66 66
Explore com Técnica 3QC (Quando, Quem, Quantos,
Como ) + CRUD
Uma escola quer cadastrar turmas e professores.
Uma turma pode ter aulas em salas teóricas e laboratórios
Cada professor tem no máximo 3 turmas, mas pode não estar alocado.
Turmas têm no máximo 30 alunos
A lista de presença deve ser preenchida até 10 minutos após o início da
aula
67. 67 67
Vantagens de explorar o requisito
-Time uniformiza a visão sobre o requisito
-Time aprende e valida se o que modelou representa
necessidade do cliente
-Aproxima o time e requisitos são enriquecidos
68. 68 68
Vantagens de explorar o requisito
-Testes mais simples e rápidos são produzidos
-Horas de retrabalho de todo o time são economizadas
-Times sadiamente mais produtivos
71. 71 71
Definindo as heurísticas
não estou limitando como explorar?
-O cuidado entre direcionar x restringir a
exploração
-Por que o tempo pode ser muito curto e
heurísticas prioritárias
Necessitam ser definidas
-Por que o explorador pode ser inexperiente ou pouco criativo
73. 73 73
Um arquivo de heurísticas
http://testobsessed.com/wp-content/uploads/2011/04/testheuristicscheatsheetv1.pdf
Test Heuristics Cheat Sheet Data Type Attacks & Web ... - Test Obsessed
76. 76 76
Fonte de inspiração para Cartas
Quando explorar
Vc faz parte!
Discussões de requisitos
Quem sabe fará parte
Apresentação de um produto
Vc ficou de fora!
Explorar artefatos
Explorar com o cliente
Explorar com o time
78. 78 78
Quando é preciso explorar mais?
Atenção às
respostas verbais!
79. 79 79 79
Prática – identificando oportunidades
Quando é preciso explorar mais?
Cada time faz duas perguntas sobre o cenário abaixo
e se há possibilidade de explora-la mais.
Simples, imprecisas, incompletas, dependência, ambiguas
81. 81 81
o Gaste alguns minutos em torno das bordas
de uma ideia a explorar
o Questione pressupostos e novos conceitos, isso pode
poupar semanas de retrabalho.
Revisão de teste é uma revisão de requisitos para análise,
teste e desenvolvimento: documentação viva
EXPLORANDO REQUISITOS
o Escute a conversa
o Pergunte e explore
o Time precisa de mentalidade
exploratória para trazer ideias à
mesa.
82. 82 82
ATDD (Acceptance Test Driven Development)
O núcleo de todas as práticas
Teste de
Aceitação
Eu sei o que eu
disse, mas já faz
seis meses
83. 83 83
Alguns pontos de vista
-Aceitação do cliente como base;
-Só como pré-entrega do produto é subutilizar a
inteligência produtiva da empresa: muito gasto pouco ROI
-No Ágil é executado em todo o ciclo de vida do produto
ATDD: teste.. Design orientado
84. 84 84
Alguns pontos de vista
-Aproxima o produto da necessidade do cliente. Reduz
incertezas
-Agrega muito valor ao produto
ATDD: teste..
Design orientado
85. 85 85
Testando com Histórias
Usando 3C
-Card
-Conversation
-Confirmation
"User Stories… Unleashed"; Mike Turner, Sean Hurst, Ray Jordan
86. 86 86
O que é uma história?
-Descrição escrita usada para descrever cenários de
negócios
-Testes que transmitem e documentam os detalhes de
um projeto (confirmação).
-Utilizada para modelar o sistema
"User Stories… Unleashed"; Mike Turner, Sean Hurst, Ray Jordan
87. 87 87 87
-Enfatizam comunicação verbal ao invés de escrita.
-São compreensíveis pela equipe e cliente
-São ferramentas de desenvolvimento iterativo.
-Encorajam detalhes até que se tenha entendimento
do que realmente precisa.
User stories
88. 88 88
Não fique obcecado pelo formato
http://blog.crisp.se/2014/09/25/david-evans/as-a-i-want-so-that-considered-harmful
O MVP é o mais importante
89. 89 89
Critérios de aceitação nas costas
da nota adesiva
http://blog.crisp.se/2014/09/25/david-evans/as-a-i-want-so-that-considered-harmful
O MVP é o mais importante
90. 90 90 90
Crie uma ou mais histórias para o cenário seguinte
Uma floricultura deseja informatizar suas operações.
Deseja manter um cadastro de seus clientes e de seus produtos.
Há descontos em certos dias do mês e por limite mínimo
Escreva critérios de aceitação
Use 3C
91. 91 91 91
O valor das
Histórias testáveis
A história para mover o projeto
pra frente
Estreita colaboração com seus stakeholders:
• Para gerar Informações de valor
• Para identificar e enquadrar requisitos que respondam as
perguntas mais importantes sobre o software ou serviço
92. 92 92
Driving Development with Tests:ATDD and TDD, Elisabeth Hendrickson
Todo o
time
explora e
modelaTime
explora e
remodela
testes de
aceitação
Time apoia
e modela
testes de
aceitação
Teste de aceitação: ATDD
Testers, Dev,
Analistas
modelam
testes de
aceitação
93. 93 93 93
Padrões de teste de software
Algumas referências
http://www.gcreddy.com/2012/12/software-testing-standards.html
http://extremesoftwaretesting.com/Info/standards.html