1. (48) 3285 5615 / 9645 5506
contato@qualister.com.br
• Terceirização de profissionais
• Consultoria de teste
• Avaliação de usabilidade
Automação
de
• Automação de testes
• Testes de performance
testes
• Treinamentos
www.qualister.com.br
2. Quer saber mais?
Estes
são
apenas
alguns
slides
do
curso
de
automação
de
testes
com
TestComplete
e
outras
ferramentas
oferecido
pela
Qualister.
Para
maiores
informações
visite
nosso
site:
h?p://www.qualister.com.br/cursos
www.qualister.com.br
3. Direitos autorais
Importante qualquer parte
– É proibida a có pia e reprodução de
ntação incluindo, mas
do co nteúdo desta aprese las.
agens, gráficos e tabe
não limitado a, textos, im
ida pelas leis de
Esta ap resentação é proteg
Cristiano Caetano
Copyright e são propriedade de .
e Treinamento LTDA
e Qualister Consultoria
r, copiar, guardar em
– Não é permitido modifica
alugar, vender ou
banc o de dados público,
sta apresentação,
republic ar qualquer parte de
o explícita do autor.
sem prévia permissã
o deste material,
– Quando ho uver permissão de us
áfica conforme as
é obrigatória a referência bibliogr
normas vigentes.
www.qualister.com.br
4. Instrutor
Cristiano Caetano
Email: cristiano.caetano@qualister.com.br
Apresentações: slideshare.net/cristianocaetano
Blog: cristianocaetano.wordpress.com
É certificado CBTS pela ALATS. Diretor técnico da Qualister com mais de 10 anos de experiência, já
trabalhou na área de qualidade e teste de software para grandes empresas como Zero G, DELL e HP Invent.
É colunista na área de Teste e Qualidade de software do site linhadecodigo.com.br e autor dos livros "CVS:
Controle de Versões e Desenvolvimento Colaborativo de Software" e "Automação e Gerenciamento de
Testes: Aumentando a Produtividade com as Principais Soluções Open Source e Gratuitas". Participante
ativo da comunidade de teste de software brasileira, é o criador e mantenedor do portal TestExpert: A sua
comunidade gratuita de teste e qualidade de software (www.testexpert.com.br).
www.qualister.com.br
5. Sobre a Qualister
• Fundação: 2007.
• Sobre a Qualister: A Qualister é uma empresa nacional, constituída a partir da união
de profissionais qualificados e certificados na área de testes e qualidade de software,
com o objetivo de integrar, implementar e implantar soluções com base nas melhores
práticas do mercado e normas internacionais.
• Colaboradores: A Qualister é composta por colaboradores pós-graduados e
certificados na área de testes (CBTS, CSTE) com larga experiência na indústria de
Tecnologia da Informação.
• Área de atuação: A Qualister é uma empresa especializada em serviços de
qualidade e teste de software. Tem como linhas de atuação consultoria em teste/
qualidade de software, outsourcing (terceirização dos serviços através da alocação
de profissionais) e treinamentos.
www.qualister.com.br
6. Parcerias internacionais
Soluções para automação, profilling e gestão de testes
Soluções para testes de performance
Soluções de apoio a avaliação de usabilidade
www.qualister.com.br
9. Progressão X Regressão
IEEE Std 610.12-1990 / Glossário padrão de termos utilizados em teste de software:
International Software Testing Qualification Board
www.qualister.com.br
10. Smoke test
IEEE Std 610.12-1990 / Glossário padrão de termos utilizados em teste de software:
International Software Testing Qualification Board
www.qualister.com.br
11. Tipos de ferramentas de automação
Apesar
de
não
exisEr
uma
categorização
amplamente
difundida
dos
Epos
de
ferramentas
de
teste,
a
experiência
tem
mostrado
elas
são
normalmente
agrupadas
em
7
áreas
disEntas:
Guide to the CSTE Common Body of Knowledge. QAI, 2006
www.qualister.com.br
12. Panorama da automação de testes nas empresas
Evaluating Functional Testing Solutions: The Forrester Wave™ Q2 2006
www.qualister.com.br
13. Automação de testes
e execução
Al ta vel ocidade d de testes
o fundidade
Alta amp litude e pr ível
Repetit
to humano
Pouco e nvolvimen
n sistentes
Res ultados co
www.qualister.com.br
14. Manual X automação de testes
Ma nual
Auto mação
de testes
www.qualister.com.br
15. Tópico
• Mitos e desafios da
automação de testes
www.qualister.com.br
17. Mitos
Testes
automa.zados
vão
reduzir
a
quan.dade
de
defeitos
Uma
ferramenta
de
testes
automa.zados
é
a
Para
reduzir
a
solução
de
todos
os
quan.dade
de
problemas
de
defeitos
devo
qualidade
apenas
melhorar
a
eficiência
e
eficácia
da
equipe
de
testes
www.qualister.com.br
18. Mitos
Testabili-‐oquê?
Você
quer
dizer
que
para
criar
testes
automa.zados
será
necessário
modificar
o
Para
o
teste
sistema?
automa.zado
funcionar
eu
tenho
que
mudar
todos
os
Eu
preciso
seguir
padrões?
Grids
de
todas
as
Eu
preciso
dar
nomes
aos
telas?
componentes
da
tela?
Eu
preciso
colocar
nomes
organizados
nas
colunas
dos
Grids?
Eu
preciso
exibir
mensagens
de
erros
intui.vas
ao
invés
de
erros
em
inglês?
www.qualister.com.br
19. Mitos
Eu
não
sei
programar,
não
entendo
de
SQL
e
não
conheço
o
negócio
do
sistema
Eu
sou
o
programador,
suporte
técnico,
Eu
não
entendo
DBA,
analista,
nada
de
testes
vendedor,
moça
do
cafezinho,
etc
que
não
me
dei
bem
na
minha
função
então
virei
testador
www.qualister.com.br
20. Desafios da automação de testes
• A automação de testes é a solução dos problemas de
qualidade
• Supervalorização das ferramentas
• A ferramenta de automação de testes substitui o
testador
• Automatizar testes é uma tarefa rápida e fácil
• Profissionais desqualificados e com treinamento
inadequado
• Uso incorreto e subutilização das ferramentas
• Falso senso de segurança
• Não saber o que testar
• Carência de testes sob a perspectiva do código,
framework, API, etc
• Mudanças freqüentes na interface gráfica
• Falta de testabilidade no software
• Infra-estrutura inadequada
• Massa de dados inconsistente
• Expectativa de que o retorno de investimento da
automação seja no curto prazo
www.qualister.com.br
21. Desafios da automação de testes
• A automação de testes
é a solução dos
problemas de
qualidade
www.qualister.com.br
22. Desafios da automação de testes
• Supervalorização das ferramentas
www.qualister.com.br
23. Desafios da automação de testes
• A ferramenta de
automação de testes
substitui o testador
– Nem todos os testes devem ser
automatizados
– A automação de testes libera a
equipe de testes para a realização
de testes mais complexos que
exigem um ser humano ou testes
específicos (usabilidade,
segurança, etc)
www.qualister.com.br
24. Desafios da automação de testes
• Automatizar testes é
uma tarefa rápida e fácil
Automação de testes
=
Programação de testes
www.qualister.com.br
25. Desafios da automação de testes
• Profissionais
desqualificados e com
treinamento inadequado
– Senhores empresários,
parem de contratar
estagiários de agrimensura/
agronomia/ administração/
moda/design para atuarem
como automatizadores
www.qualister.com.br
26. Desafios da automação de testes
• Uso incorreto e subutilização
das ferramentas
www.qualister.com.br
27. Desafios da automação de testes
• Falso senso de segurança
– Os testes automatizados são
a única abordagem de testes
– Inversão de prioridades (usar
a automação para testar
defeitos que podem ser
prevenidos em fases
anteriores)
www.qualister.com.br
29. Desafios da automação de testes
• Carência de testes sob a
perspectiva do código,
framework, API, etc
www.qualister.com.br
30. Desafios da automação de testes
• Mudanças freqüentes na
interface gráfica
www.qualister.com.br
31. Desafios da automação de testes
• Falta de testabilidade no
software
– Objetos com Id’s e nomes
dinâmicos
– Objetos e componentes que não
seguem o padrão da plataforma
– Objetos e componentes que
escondem propriedades e
métodos relevantes
www.qualister.com.br
32. Desafios da automação de testes
• Infra-estrutura inadequada
– Computadores de alto
desempenho
– Computadores dedicados e
isolados
– Ambiente similar ao de
produção
www.qualister.com.br
33. Desafios da automação de testes
• Massa de dados inconsistente
– A automação de testes é um tipo de
teste que exige ambiente/dados
rigorosamente controlado. A
automação não é adaptativa,
flexível, exploratória.
– Massa de dados consistente
qualitativa e quantitativamente para
satisfazer as pré-condições dos
testes automatizados
– Procedimentos automatizados para
restaurar a massa de dados ao
estado “conhecido” após a execução
dos testes
www.qualister.com.br
34. Desafios da automação de testes
• Expectativa de que o retorno de
investimento da automação seja
no curto prazo
www.qualister.com.br Adaptado de DONEGAN, Paula, et al. Automação de Testes Sistêmicos Funcionais. Instituto Atlântico.
36. Integração contínua
1. Independência do ambiente do desenvolvimento
2. Freqüência nas integrações
3. Automação de processos manuais
4. Simplicidade na geração de versões
36
www.qualister.com.br
37. Características dos testes automatizados
Conciso: os testes automatizados devem ser tão simples quanto possível, mas não simples
demais;
Explícito: os testes automatizados relatam os desvios por meio de relatórios explicitamente,
sem a necessidade de interpretação humana;
Repetível: os testes automatizados podem ser executados quantas vezes forem necessárias
sem a intervenção humana;
Robusto: os testes automatizados produzem os mesmos resultados consistentemente e não
são afetados por modificações externas ou no seu ambiente;
Necessário: os testes automatizados tem o objetivo de identificar desvios entre o que foi
especificado e o que desenvolvido;
Clareza/Manutenção: as instruções codificadas nos testes automatizados devem ser claras e
fáceis de entender;
Eficiente: os testes automatizados devem ter um desempenho satisfatório;
Independente: os testes automatizados devem satisfazer as suas próprias precondições e
devem permitir a sua execução em qualquer ordem de maneira independente;
Rastreável: os testes automatizados devem ser rastreáveis (a partir dos requisitos de origem
e demais níveis).
Adaptado de "The Test Automation Manifesto"
www.qualister.com.br
41. Métricas e indicadores
1. Tempo gasto para a criação de um script;
2. Tempo gasto em manutenção;
3. Tempo gasto na execução em relação aos testes manuais (eficiência);
4. Densidade de defeitos revelados por script de teste (eficácia);
5. Vazamento de defeitos por script de teste;
6. Quantidade de defeitos nos scripts;
7. Cobertura de requisitos;
8. Cobertura de código.
DONEGAN, Paula, et al. Automação de Testes Sistêmicos Funcionais. Instituto Atlântico.
www.qualister.com.br
42. Tópico
• Por onde começar?
www.qualister.com.br
45. Testando em camadas diferentes
• Testes em todas as camadas da arquitetura (de dentro para
fora e de fora para dentro)
Interface gráfica
Código
www.qualister.com.br
46. Automação de testes
Interface
Enfoque
no
negócio
via
TestComplete
QTP
Gráfica
- Custo +
Interface
gráfica
Código
Testes
unitários
xUnit
Adaptado de: http://www.slideshare.net/dwhelan/agile-testing-and-the-role-of-the-agile-tester
www.qualister.com.br
47. Testando em camadas diferentes: Testes unitários
Classe
Setup
Método(a,
b,
c):
d
Exercise/Verify
Mocks
Teardown
http://xunitpatterns.com/Four%20Phase%20Test.html
www.qualister.com.br
50. Testes unitários: Análise de cobertura de código
IEEE Std 610.12-1990 / Glossário padrão de termos utilizados em teste de
software: International Software Testing Qualification Board
www.qualister.com.br
51. Testando em camadas diferentes: Interface gráfica
• Baseado em coordenadas
• Record/Playback com reconhecimento de objetos
• Record/Playback usando DDT (Data-driven test)
• Keyword-Driven Tests
• Behavior-Driven Tests
www.qualister.com.br
56. Behavior Driven Tests: Pyccuracy
– Dado que (Given)
• Usado para determinar o
estado do sistema antes
da execução do teste
– Quando (When)
• Usado para descrever as
ações/interações com o
sistema (passos do teste)
– Então (Then)
• Usado para verificar o
resultado esperado
– E (And)/Mas (But)
http://github.com/heynemann/pyccuracy
www.qualister.com.br
58. Tópico
• Você está pronto
para a automação
de testes?
www.qualister.com.br
59. Você está pronto para automação de testes?
- Maturidade do processo de testes +
- Experiência do time de testes em automação +
www.qualister.com.br
60. Checklist: Pré-requisitos para automação de testes
• Patrocínio
– Existem patrocínio e apoio da alta gerência ?
– Existe um orçamento disponível para a automação de testes ?
– Existe a possibilidade de criar uma prova de conceito para determinar a ferramenta mais adequada?
• Capacitação
– Existem profissionais capacitados no time de testes ?
– Existe a possibilidade de treinar os profissionais do time?
– Existe a possibilidade de contratar um profissional capacitado?
– Existe a possibilidade de contratar uma consultoria especializada?
• Processo
– O processo de testes da organização é maduro o suficiente?
– Os casos de testes manuais são formais?
– É possível criar um grupo ou comitê para definir as políticas e diretrizes da automação de testes ?
– A automação de testes pode ser tratada como um projeto, com fases, atividades, papéis, cronograma e orçamento independentes?
– A automação de testes pode ser integrada ao ciclo de vida de desenvolvimento de software?
• Infra-estrutura
– Existe orçamento para a compra de hardware/dispositivos?
– Existe a possibilidade para construção de drives/stubs/simuladores?
– O ambiente é isolado, controlado e similar ao ambiente de produção?
– É possível criar uma massa de dados repetível e consistente?
www.qualister.com.br
61. Checklist: Critérios para escolher a ferramenta ideal
• Facilidade de uso
• Manuais claros com informações úteis
• Suporte técnico e treinamento
• Integração com outras ferramentas (Gestão de teste e defeitos, Rastreabilidade)
• Possibilidade de automatizar múltiplas tecnologias(Java, .NET, WEB, Delphi, etc)
• Linguagem de script robusta
• Recusos de debug (depuração de scripts)
• Suporte para a execução em múltiplas plataformas (Windows, Linux, Unix, Mac)
• Suporte para a execução em múltiplos navegadores (IE, FF, Safari, etc)
• Reconhecimento de objetos e as propriedades dos objetos
• Criação de pontos de verificação para validar os objetos e propriedades dos objetos
• Recursos para comparação de arquivos (*.txt, *.pdf, etc)
• Recursos para comparação de áreas da tela com imagens pré-definidas
• Recurso para acesso a banco de dados e SQL (via ODBC, etc)
• Recursos para criação de teste dirigidos a dados (Data-Driven)
• Execução dos testes distribuídas em múltiplos computadores simultâneos
• Geração de relatórios detalhados com o resultado da execução dos testes
www.qualister.com.br
62. Níveis de maturidade em automação de testes
Inspirado em: KRAUSE Mitchel H. A Maturity Model for Automated Software Testing.
Medical Device & Diagnostic Industry Magazine. Dez 1994.
www.qualister.com.br
63. Níveis de maturidade em automação de testes
Nível
1:
Automação
acidental
Neste
nível,
algumas
iniciaEvas
individuais
baseadas
na
tentaEva
e
erro
e
sem
suporte
ou
apoio
da
alta
gerência
são
iniciadas
acidentalmente
em
virtude
de
uma
alta
demanda
de
testes
regressivos.
A
automação
de
alguns
testes
é
iniciada
sem
nenhum
planejamento,
sem
o
conhecimento
dos
paradigmas,
Epos,
técnicas
e
melhores
práEcas
da
automação
de
testes.
Não
existe
uma
ferramenta
insEtucionalizada
na
organização
e
os
profissionais
não
são
capacitados
nem
dominam
as
ferramentas
que
são
uElizadas.
O
código
não
é
armazenado
sob
o
controle
de
versões
e
o
código
não
é
projetado
para
ser
reuElizado
(código
spaghe]).
www.qualister.com.br
64. Níveis de maturidade em automação de testes
Nível
2:
Automação
proposital
Neste
nível,
a
alta
gerência
percebe
que
a
automação
de
testes
é
uma
alternaEva
para
aumentar
a
cobertura
e
a
profundidade
dos
testes.
A
alta
gerência
suporta
e
apóia
uma
iniciaEva
de
introduzir
a
automação
de
testes.
No
entanto,
a
automação
de
testes
ainda
é
considerada
como
mais
uma
aEvidade
de
teste
de
so^ware
e
não
está
formalmente
integrada
ao
ciclo
de
vida
de
desenvolvimento.
É
realizada
uma
prova
de
conceito
(ou
projeto
piloto)
para
determinar
qual
ferramenta
atende
as
necessidades
da
organização.
Uma
consultoria
é
contratada
para
disseminar
as
melhores
práEcas
da
automação
de
testes
e
capacitar
os
profissionais.
A
automação
de
alguns
testes
é
iniciada
por
meio
de
critérios
e
planejamento
rudimentares.
A
metodologia,
processo,
diretrizes,
padrões
e
procedimentos
estão
sendo
criados
e
aprimorados.
www.qualister.com.br
65. Níveis de maturidade em automação de testes
Nível
3:
Automação
formal
Neste
nível
a
ferramenta,
metodologia,
processo,
diretrizes,
padrões
e
procedimentos
estão
estabelecidos
e
insEtucionalizados
na
organização.
A
automação
de
testes
é
realizada
em
todos
os
níveis
de
testes
(Unidade,
Integração,
Sistema
e
Aceitação).
A
automação
de
testes
é
tratada
como
um
projeto,
com
fases,
aEvidades,
papéis,
cronograma
e
orçamento
independentes.
A
automação
de
testes
é
planejada,
esEmada
e
controlada
formalmente.
A
automação
de
testes
é
integrada
ao
ciclo
de
vida
de
desenvolvimento
de
so^ware
e,
quando
é
necessário,
são
adicionados
recursos
de
testabilidade
no
sistema
para
facilitar
a
automação.
Os
profissionais
estão
capacitados
e
moEvados.
O
código
é
projetado
para
a
reuElização
e
está
sob
o
controle
de
versões.
www.qualister.com.br
66. Níveis de maturidade em automação de testes
Nível
4:
Automação
formal
em
o.mização
Neste
nível,
existe
um
grupo
ou
comitê
que
define,
distribui
e
suporta
os
procedimentos,
políEcas
e
diretrizes
da
automação
de
testes.
As
políEcas
definidas
por
esse
comitê
são
colocadas
em
práEca
e
revisadas
periodicamente.
Os
testes
automaEzados
são
revisados
por
meio
de
técnicas
formais
de
revisão.
Uma
políEca
e
metodologia
de
medição
são
definidas
com
o
objeEvo
de
idenEficar,
coletar
e
analisar
métricas
relacionadas
à
eficiência
e
eficácia
da
automação
de
testes,
bem
como,
propor
ações
de
melhoria.
www.qualister.com.br
67. Processo de automação de testes
ATLM
–
The
Automated
TesEng
Life-‐cycle
Methodology
Adaptado de "Automated Software Testing", Elfriede Dustin, et all, Addison
www.qualister.com.br Wesley Longman, Inc. July 1999
68. Processo de automação de testes
1.
Decidir
automa.zar
os
testes
Esta
fase
ocorre
quando
a
empresa
decide
automaEzar
os
testes.
A
aEvidade
principal
desta
fase
é
estudar
o
retorno
de
invesEmento,
os
paradigmas
e
Epos
de
testes
existentes
para
evitar
falsas
expectaEvas
em
relação
à
automação
de
testes.
Suposições
errôneas
são
o
resultado
da
falta
de
conhecimento
dos
benefcios
e
limitações
de
um
projeto
de
automação
de
testes.
Esta
fase
também
tem
o
objeEvo
de
garanEr
o
patrocínio
e
compromeEmento
da
alta
gerência.
2.
Aquisição
de
uma
ferramenta
de
automação
de
testes
Nesta
fase
serão
definidos
os
critérios
e
o
processo
que
será
uElizado
para
a
aquisição
da
ferramenta.
Uma
prova
de
conceito
deverá
ser
conduzida
para
demonstrar
os
benefcios,
limitações
e
restrições
da
ferramenta.
3.
Introdução
da
automação
de
testes
na
organização
Nesta
fase
serão
conduzidos
os
primeiros,
diretrizes,
procedimentos
e
melhores
práEcas
que
serão
adotadas
ao
longo
das
aEvidades
de
automação
de
testes.
passos
para
a
introdução
da
automação
de
testes.
Um
dos
passos
principais
desta
fase
é
a
modificação
do
processo
de
teste
de
so^ware
estabelecido
na
organização
para
suportar
as
aEvidades
de
automação
de
testes.
www.qualister.com.br
69. Processo de automação de testes
4.
Planejamento,
projeto
e
desenvolvimento
dos
testes
automa.zados
Nesta
fase
ocorre
o
planejamento
projeto
e
desenvolvimento
dos
testes
automaEzados
de
um
projeto
real
da
organização.
Todas
as
aEvidades
desta
fase
devem
seguir
os
processos
e
diretrizes
insEtucionalizados.
A
automação
de
testes
é
uma
combinação
entre
teste
e
desenvolvimento
de
so^ware.
Dessa
forma,
a
automação
de
testes
deve
ser
encarada
como
um
projeto
com
um
ciclo
de
vida
e
caracterísEcas
próprias,
ou
seja,
exige
um
planejamento
detalhado,
assim
como,
aEvidades
de
projeto,
desenvolvimento
e
testes,
tal
qual
o
desenvolvimento
de
um
so^ware
convencional.
5.
Execução
e
controle
da
automação
de
testes
Nesta
fase
os
testes
automaEzados
desenvolvidos
são
executados
no
ambiente
de
automação
pretendido.
As
métricas
são
coletadas
para
o
controle,
tais
como
indicadores
de
progresso,
cobertura,
eficiência,
entre
outros.
6.
Revisão
e
melhoria
do
processo
Nesta
fase
diversas
aEvidades
de
avaliação
são
conduzidas
com
o
objeEvo
de
implementar
a
melhoria
do
processo
de
automação
de
testes
com
base
nas
métricas
e
nas
lições
aprendidas
ao
longo
do
projeto.
www.qualister.com.br
70. Quer saber mais?
Estes
são
apenas
alguns
slides
do
curso
de
automação
de
testes
com
TestComplete
e
outras
ferramentas
oferecido
pela
Qualister.
Para
maiores
informações
visite
nosso
site:
h?p://www.qualister.com.br/cursos
www.qualister.com.br