Apresentação do PowerPoint

Transcrição

Apresentação do PowerPoint
Automação de Testes.
Quando e como?
By Angelica de Lima, PMP em maio/2015
Faço o que gosto!
Gosto do que faço!!
By Angelica de Lima, PMP em maio/2015
O Básico
O que?
O propósito da automação de testes pode ser resumidamente descrito
como a aplicação de estratégias e ferramentas tendo em vista a
redução do envolvimento humano em atividades manuais repetitivas.
Cem Kaner, autor do livro “Lessons learned in software testing”
O Básico
Quem?
O Básico
Como?
Quando?
Porque?
Onde?
• Ambiente
dedicado de QA
• Evita crash;
inoperabilidade;
macula na
“imagem da TI”;
redução de custos
Porque?

Mars Climate Orbiter (http://mars.jpl.nasa.gov/msp98/orbiter/)

Desastre:


Motivo:


•

Se perdeu no espaço no momento em que entrava na atmosfera de Marte
Misturou, em cálculos, valores com medidas de tamanho diferentes
Na revisão de código descobriram que parte do código usava
unidades de medidas americanas e parte em medidas Inglesas.
Prejuízo:

125 milhões de dólares
Porque?

AirBus 320 (http://en.wikipedia.org/wiki/Iran_Air_Flight_655) :

Desastre:


Motivo:


USS Vicennes derrubou um airbus 320 em 1988
Bug no software de reconhecimento, confundindo o avião com um F-14
Prejuízo:

290 mortes
Porque?

London Ambulance Service (http://en.wikipedia.org/wiki/London_Ambulance_Service)

Desastre:


Motivo:


Serviço auxiliado por computador falhou em dois dias de Novembro de 1992, gerando
várias falhas, como o envio de 2 ambulâncias para o mesmo loval, envio de uma
ambulância para um local onde outras estavam mais perto, etc.
Tudo indica que o problema estava relacionado a alta carga de emergências durante o
período.
Prejuízo:

Morte de 30 pessoas
Porque?

Seu projeto (http://seuprojeto.com.br)

Desastre:


Motivo:


A area usuária encontra erros no que você implementou.
Tudo indica que o problema estava relacionado a falta de atenção de um documento de
especificação.
Prejuízo:

No mínimo sua reputação.
O Momento
essa atividade é vista como a “salvação” em
termos de custo, prazo e produtividade para os
projetos...
O Momento
Na ação do herói
O Momento
A reação da desmoralização
O Momento
Pior ainda...
O Momento
Quando?

Assim que um novo sistema fica pronto?

Assim que um novo sistema é implantado em produção?

Quando a equipe de testes for contratada?

Quando os erros impactarem a area de negócio?

Quando os erros deixarem o sistema fora do ar?

Quando for adquirida a ferramenta de automação?
Quando?

Ao identificar o que é essencial::

Testes

Funcionalidades

Tempos

Niveis de tolerância

O que é repetitivo.

Qual o roteiro de testes é mais assertivo e tem maior acuracidade.
Quando?

A automação de testes pode consumir até 10 vezes mais tempo em etapas como
planejar, criar, documentar e executar, em comparação a um teste executado
manualmente. Portanto, não automatize testes que você raramente executa.

Automatizar exige programação de médio para alto nível. Ignorar isto pode
inviabilizar os testes e ou mascarar os seus resultados.

Não é indicado automatizar os testes muito cedo dentro do processo. O sistema
a ser testado deverá possuir certa estabilidade.
Quando?

Esteja ciente...

A execução dos testes automáticos substitui a execução dos testes repetitivos, mas não os
manuais e muito menos a análise de resultados.

compromisso entre o esforço de criação dos scripts de testes versus a manutenção desses
scripts.
Como?
Tipos de ferramentas::
 Gerenciamento de Testes/Defeitos: Ferramentas que auxiliam no planejamento e gerenciamento dos
testes e de seus resultados;
 Automação de Testes de Carga e Stress: Ferramentas que simulam a carga de múltiplos usuários em uma
aplicação para entender e ajustar a performance do sistema;
 Automação de Testes Funcionais: Testes de um único usuário na aplicação para encontrar falhas
funcionais.
Como?
O ferramental
é essencial
Tipo de Teste
Funcionais
Funcionais
Funcionais
Gestao de Defeitos
Gestao de Defeitos
Funcionais
Estimativas
Funcionais
Funcionais
Performance
Gestao de Defeitos
Teste unitário
Funcionais
Gestao de Defeitos
Funcionais
Funcionais
Nome da ferramenta/framework
Abbot
ActiWate
Apodora
BugNET
BugZilla
Canoo Web Test
Construx Estimate
FitNesse
GNU/Linux Desktop Testing Project
JMeter
Jira
JUnit
Lisa WS-Testing
Mantis
Marathon
Mercury
tipo de licença
open source
open source
open source
open source
open source
open source
open source
open source
open source
open source
pago
open source
open source
open source
pago
Como?
O ferramental é essencial
Tipo de Teste
Performance
Gestao de Testes
Suite completa
Gestao de Testes
Gestao de Defeitos
Funcionais
Funcionais
Funcionais
Funcionais
Funcionais
Suite completa
Gestao de Testes
Funcionais
Gestao de Testes
Funcionais
Nome da ferramenta/framework
OpenSTA
QA Manager
Rational
RTH
Scarab
Selenium
SharpRobo
SoapSonar Personal Edition
SoapUI
Squish for KDE
Plataforma Silk
Test Case Web
Test Manager
Test Master
TestComplete
tipo de licença
open source
open source
pago
open source
open source
open source
open source
open source
open source
open source
proprietário
open source
proprietário
open source
proprietário
Como?
O ferramental é essencial
Tipo de Teste
Gestao de Testes
Gestao de Testes
Gestao de Testes
Performance
Teste estruturado
Gestao de Defeitos
Funcionais
Carga e Performance
Nome da ferramenta/framework
Testitool
TestLink
Testopia
The Grinder
TMap Next
TRAC
Watir
WebLoad
tipo de licença
open source
open source
open source
open source
open source
open source
open source
open source
Como?
A ferramenta não faz o profissional!
Um estupido com a melhor ferramenta
ainda é um estúpido
Como?
Teste unitário. (+ de 150)
http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks
Como?
Como?
Como?
 Evite mitos::

Uma ferramenta de testes automatizados é a solução de todos os
problemas de qualidade.

Para criar testes automatizados será necessário modificar o sistema

Basta gravar a digitação e os cliques do mouse e depois executar o script.
Como?
 Capture and replay (ou


playback)
Se for necessário testar, por exemplo, o cadastro de 100 formulários, o
testador terá que gravar 100 scripts manualmente;
Se o campo “Nome do Usuário” mudar para “Login”, todas as referências
ao campo “Nome do Usuário” presentes no script terão que ser localizadas
e alteradas. E isto pode ocorrer com vários outros campos
 Data driven (orientado a

dados)
substituir os dados gravados por variáveis
Como?
 API
/ Framework driven (orientado a API /
Framework)

suporte à programação dos scripts de testes por fornecer classes que tratam
da leitura de arquivos textos, do acesso a banco de dados, que são
responsáveis pelo logging dos scripts e pela geração dos resultados dos
testes
 Keyword

driven (orientado a palavras chave)
conjunto pré-definido de palavras-chaves para a montagem dos testes. Cada
palavra-chave é um comando em alto nível. Descrevem ações realizadas no
sistema, como por exemplo, “Logar”, “Acessar”, “Cadastrar”, “Remover”, etc
Como?
 Uma
opção é utilizar a suite Open Source do
Selenium = auxiliam na execução de testes funcionais
a partir da camada de apresentação de um sistema
Web.
 A ThoughtWorks precisava de uma ferramenta pata
testar uma aplicação de rastreamento de despesas
pela web e baseado no conhecimento do Mercury
estabeleceram a base para o Selenium;
Como?
 Uma
opção é utilizar a suite Open Source do
Selenium = auxiliam na execução de testes funcionais
a partir da camada de apresentação de um sistema
Web.
 A ThoughtWorks precisava de uma ferramenta pata
testar uma aplicação de rastreamento de despesas
pela web e baseado no conhecimento do Mercury
estabeleceram a base para o Selenium;
Como?
Como?
 Linguagens ::
 Browsers::
 Plataformas ::
Como?
Selenium Suite
Como?
Selenium IDE ::

Ambiente integrado para o desenvolvimento de
testes no Selenium

Fornece funcionalidade de gravação e
reprodução.

Proporciona a capacidade de depurar scripts de
teste.

"Auto complete" dos comandos do Selenium

Permite a exportação dos scripts de teste em
diferentes formatos como HTML, Java, Ruby,
Python, etc. contem os scripts
Como?
Selenium IDE ::
Como?
Como?
Como?
Selenium RC = O Selenium Remote Control é um
cliente/servidor que controla um browser local ou em outro
computador utilizando scripts do Selenium IDE (html) ou scripts
criados em diferentes linguagens de programação.
Ele é dividido em duas partes:
1. Um servidor que, automaticamente, abre e fecha um
browser web e age como um proxy HTTP para as
requisições web dos scripts do Selenium
2. Bibliotecas para as linguagens de programação suportadas
pelo Selenium
Essencial para executar os scripts do Selenium IDE fora do
Firefox. (por linha de comando para executar suítes de teste em
qualquer computador). Esse método pode ser utilizado em
ambientes de Integração Contínua.
Essencial para usar o Webdriver.
automaticamente
iniciar/finalizar/controlar,
qualquer browser
suportado
Como?
Selenium RC
Como?
Selenium Grid é usado para execução paralela
de testes em diferentes maquinas e browsers
ao mesmo tempo.
Selenium IDE
It only works in Mozilla
browser.
It supports Rec ord and
playbac k
Doesn’t required to start
server before exec uting
the test sc ript.
It is a GUI Plug-in
Core engine is Javasc ript
based
Very simple to use as it is
rec ord & playbac k.
It is not objec t oriented
It doesn’t supports of
moving mouse c ursors.
Need to append full xpath
with ‘xpath=\\’ syntax
It does not supports
listeners
It does not support to
test iphone/Android
applic ations
Selenium RC
Selenium WebDriver
It supports with all browsers like
It supports with all browsers like Firefox, IE,
Firefox, IE, Chrome, Safari, Opera etc. Chrome, Safari, Opera etc.
It doesn’t supports Rec ord and
playbac k
It doesn’t supports Rec ord and playbac k
Required to start server before
exec uting the test sc ript.
It is standalone java program
whic h allow you to run Html test
suites
Doesn't required to start server before
exec uting the test sc ript.
Core engine is Javasc ript based
Interac ts natively with browser applic ation
As c ompared to RC, it is bit c omplex and
large API.
It is easy and small API
It ac tual c ore API whic h has binding in a
range of languages
API’s are less Objec t oriented
It doesn’t supports of moving
mouse c ursors.
Need to append full xpath with
‘xpath=\\’ syntax
API’s are entirely Objec t oriented
It does not supports listeners
It supports the implementation of listeners
It does not support to test
iphone/Android applic ations
It support to test iphone/Android
applic ations
It supports of moving mouse c ursors
No need to append full xpath with
‘xpath=\\’ syntax
Quer mais?
BARBOSA, E.; MALDONADO, J.C.; VINCENZI, A.M.R.; DELA MARO , M.E; SOUZA, S.R.S. e JINO, M..
“Introdução ao Teste de Software. XIV Simpósio Brasileiro de Engenharia de Software”, 2000.
CRAIG , R.D., JASKIEL, S. P., “Systematic Software Testing”, Artech House Publishers, Boston, 2002.
PFLEEGER, S. L., “Engenharia de Software: Teoria e Prática”, Prentice Hall- Cap. 08, 2004.
PRESSMAN, R. S., “Software Engineering: A Practitioner’s Approach”, McGraw-Hill, 6th ed, Nova York,
NY, 2005.
RAPP S, S., WEYUKER, E.J., “Data Flow analysis techniques for test data selection”, In: International
Conference on Software Engineering, p. 272-278, Tokio, Sep. 1982.
ROCHA , A. R. C., MALDONADO, J. C., WEBER, K. C. et al., “Qualidade de software – Teoria e prática”,
Prentice Hall, São Paulo, 2001.

Documentos relacionados