Você está na página 1de 30

Automatizando

Testes de Software
Com Selenium

Hugo Peres Curso Básico


Hugo Peres
Hugo Peres
Graduado em Análise e Desenvolvimento de
Graduado em Análise e Desenvolvimento de
Sistemas (UniCarioca) e Pós-Graduado em
Sistemas (UniCarioca) e Pós-Graduado em
Engenharia de Software (UFRJ). Exerceu a função
Engenharia de Software (UFRJ). Exerceu a função
de Analista de Testes por 3 anos em uma
de Analista de Testes por 3 anos em uma
conceituada fábrica de software no RJ e escreveu
conceituada fábrica de software no RJ e escreveu
o primeiro livro sobre Selenium em Português-BR.
o primeiro livro sobre Selenium em Português-BR.

Atualmente é dono da Inove Teste, um projeto de


Atualmente é dono da Inove Teste, um projeto de
sua autoria que, através de livros e cursos, visa
sua autoria que, através de livros e cursos, visa
difundir conhecimentos sobre automação de
difundir conhecimentos sobre automação de
testes por todo mundo.
testes por todo mundo.

Para mais informações:


Para mais informações:
https://inoveteste.com.br
https://inoveteste.com.br
Objetivos do curso
 Aprender os princípios e fundamentos da automação
em testes de software;

 Elaborar, executar e exportar os scripts de testes


automatizados;

 Executar os scripts de testes em múltiplos


navegadores (CrossBrowser Testing);

• BÔNUS:
+ Trabalhar com dados dinâmicos no Selenium IDE
+ Criar a própria ferramenta de execução de testes

Hugo Peres Curso Básico


Público-Alvo e Pré-Requisitos
 Profissionais da área de qualidade de software que
almejam automatizar testes funcionais de aplicações
web sem complicações

 Conhecimentos básicos em Teste de Software;


 Elementos básicos do HTML;
 Comandos básicos do Prompt de Comando;

Hugo Peres Curso Básico


Inovando
Inovando aa sua
sua forma
forma de
de
testar
testar software
software
A Inovação no Mercado de Trabalho
Inovar: Ato de transformar ou renovar algo, seja um produto ou processo, produzindo resultados
para a empresa.

Guerra da Inovação entre Google e Microsof


Google inovou seu site de pesquisa (buscador), o qual detém cerca de 60% desse mercado. E a
Microsoft resolveu desenvolver seu próprio site de buscas, O Bing, o qual tem sido bem aceito
pelos usuários.

“Quem almeja ir além, no sentido de fazer algo que


faça a diferença e que traga resultados positivos para
a empresa, deve-se pensar em inovação. Do contrário,
o concorrente fará algo diferente e melhor para o
público alvo. É a lei da sobrevivência.” (Molinari)

Hugo Peres Curso Básico


Automação em Teste de Sofware
Automatizar: Técnica de conceder à um
dispositivo, a autonomia de controlar o
próprio funcionamento, com a mínima Record
interferência humana.

Em Teste de Software, consiste no uso de


uma ferramenta que imita a interação do Script
testador para com a aplicação.

Play

Hugo Peres Curso Básico


Por que Automatizar os Testes?
Visão Gerencial: As variáveis do Triângulo das Restrições
(escopo, tempo e custo) se tornam mais independentes uma
da outra sem que isso afete na qualidade do produto a ser
entregue.

Visão Operacional:
 Execução dos testes com a mesma eficiência, porém em
menos tempo.
 Redução drástica de falhas humanas oriundas de tarefas
repetitivas (Teste de Regressão).
 Maior disponibilidade dos testadores, que poderão focar
mais em atividades estratégicas.

Hugo Peres Curso Básico


Testes Automatizados x Testes Manuais
O teste manual não pode ser eliminado, mas sim
reduzido ao máximo e focado em casos específicos onde
seja muito caro automatizar ou que seja necessário de
uma decisão humana.

Mesmo que a empresa automatize 99% dos testes,


sempre haverá necessidade de pessoas para realizarem
tarefas inviáveis aos robôs. Ex: Manutenção no projeto
de teste, pesquisa e documentação de novas estratégias
de teste, etc.

O robô jamais irá substituir o testador!!!

Hugo Peres Curso Básico


Considerações acerca da Automação
5W2H
What (O que?) Saber quais sistemas e respectivos cenários de testes
deverão ser automatizados.
Who (Quem?) Identificar quais integrantes da equipe possuem o perfil
adequado para a atividade.
Where (Onde?) Decidir se será num ambiente a parte ou compartilhado
5W com o desenvolvimento.
When Saber qual o momento certo para começar a automatizar.
(Quando?)
Why (Por que?) Descobrir os reais motivos do porquê é necessário
implementar a automação nos testes.
How (Como?) Definir técnicas e ferramentas que são utilizadas no
processo de automação.
2H
How Much Calcular os custos para automatizar e verificar se
(Quanto custa?) compensa aos resultados propostos.

Hugo Peres Curso Básico


Princípios da Automação de Testes
 Projete os casos de testes para depois automatizar;

 Não pense em automatizar 100% de tudo. Foque na


prioridade;

 Projete a automação de testes de forma que facilite


revisões;

 Inicie a automação de testes o mais cedo possível em


um projeto;

Hugo Peres Curso Básico


Selenium
Selenium
O que é Selenium e como surgiu?
Selenium é uma suíte composta por 4 ferramentas de automação de testes para aplicações web.
E são elas: IDE, Remote Control, WebDriver e GRID.

Em 2004, o testador Jason Huggins estava testando


uma aplicação interna da ThoughtWorks, quando
percebeu que poderia gerenciar melhor seu tempo nas
atividades de teste manuais. Para isso, ele criou uma
biblioteca Javascript que interagia com o browser. A
esse projeto foi lhe concedido o nome de Selenium,
passando a ser uma ferramenta teste alternativa (open
source) para testadores que não suportavam mais ficar
dependentes da ferramenta Quick Test, da empresa
Mercury, que por sinal era paga e bem cara. Na
química, o antídoto do Mercúrio é o Selênio. Está aí, o
porquê do nome.

Hugo Peres Curso Básico


Por que usar Selenium?
• Criar e executar scripts de testes independente do
browser ou sistema operacional;

• Realizar Testes de Carga/Estresse através da execução


de teste em paralelo;

• Adicionar plug-ins que permitem elaborar scripts de


testes robustos e que atendem as necessidades dos
negócios;

• Integrar os scripts de teste a um projeto de teste, seja


em Java, C#, PHP, Python ou Ruby.

Hugo Peres Curso Básico


Selenium
Selenium
IDE
IDE
IDE
1. Barra de Ferramentas: Possui as
funcionalidades que gerenciam os testes
como gravar, executar, pausar, etc.

2. Lista de Casos de Teste: Lista dos casos de


teste que compõem a suíte de teste em uso.

3. Editor de Script: Espaço para editar o script


do caso de teste selecionado, podendo
definir o step em que o teste irá iniciar ou
parar.

4. Rodapé: Log da execução do caso de teste


selecionado.

Hugo Peres Curso Básico


Elaborando o Script de Teste (Record)
Nesse exemplo, enviaremos uma mensagem
para o site Inove Teste. Para isso, será
criando o script: EnviarMensagem.

O roteiro do teste consiste em acessar a url


base, clicar no menu Contato, validar a
presença e críticas dos campos, preencher o
formulário e clicar no botão Enviar.

Iniciemos a gravação do teste clicando no


botão Record

Hugo Peres Curso Básico


Executando o Script de Teste (Play)
Uma vez o script sendo gerado, o mesmo
já poderá ser executado, clicando no
botão Play

Inicia-se então o teste, validando as


etapas: Acessar Tela de Contato, Validar
presença e críticas dos campos,
Preencher Campos e Enviar Mensagem.

Hugo Peres Curso Básico


Plugins
O Selenium IDE conta com uma variedade enorme de plugins, os quais podem ser novas
extensões (.xpi) do browser Firefox ou arquivos javascript (.js), cujo o caminho é apontado
no menu opções da IDE. Segue a lista de alguns:

• SelBlocks: Adiciona comandos de repetição ao script de teste;

• ScreenShot on Fail: Registra um print screen da tela no momento


em que ocorreu um erro na execução do teste;

• Pretty Report: Exporta os resultados de testes em um relatório


com um visual mais bonito e legível.

Hugo Peres Curso Básico


Salvando o Script de Teste
Para salvar o teste, basta ir à opção Arquivo
> Salvar Teste. O arquivo deve ser salvo no
formato .html.

Ex: EnviarMensagem.html

Hugo Peres Curso Básico


Exportando o Script de Teste
Por padrão, o Selenium IDE salva o script
no formato (.html). Porém, é possível
exportá-lo em outro formato para que
possa ser integrado a projetos de teste.

No atual exemplo, exportaremos o caso


de teste no formato C#/Nunit/WebDriver,
salvando o arquivo no formato (.cs)

Hugo Peres Curso Básico


Selenium
Selenium
Remote
Remote
Control
Control
Standalone Server
Conhecido como Selenium 1.0, Remote Control (RC)
foi o principal projeto do Selenium antes da fusão
com o WebDriver (Selenium 2.0). Sua composição
consiste em:

• Servidor que “liga” os scripts de teste aos


browsers por meio de uma conexão Proxy. Por ser
desenvolvido em Java (arquivo .jar), é possível
executá-lo em qualquer Sistema Operacional.

• Biblioteca-Cliente que pode ser importada em


um projeto de teste Java, Ruby, Python, Pearl, PHP
ou .NET. O código-fonte (script) é encaminhado ao
browser por meio do servidor, que o converte em
comandos Javascript (Selenium-Core).

Hugo Peres Curso Básico


Executando Scripts pelo WebDriver Playback
Embora os scripts de teste sejam dependentes do
Firefox para serem gerados, é possível executá-los
em qualquer navegador (CrossBrowser) através
da opção WebDriver Playback.

Basta acessar o menu Opções > WebDriver, ativar


a opção Enable WebDriver Playback e informar o
navegador em que deseja executar os testes.

Obs: É de suma importância que o Standalone


Server esteja em execução

CALL java -Dwebdriver.nomeNavegador.driver=driverNavegador.exe


-jar standaloneServer.jar

Hugo Peres Curso Básico


Executando Scripts pelo HTML Runner
A partir da versão 3.0 do Selenium, as suítes de
testes no formato .html passaram a serem
executadas por um Servidor Standalone
específico, o HTML Runner.

CALL java -jar htmlRunner.jar -htmlSuite "*nomeNavegador"


“urlBase" “nomeSuite.html" “nomeRelatorio"

Hugo Peres Curso Básico


Bônus
Bônus
Dados Dinâmicos no Selenium IDE
Visando facilitar a manutenção dos scripts de testes, o
uso de dados dinâmicos (Data Driven) torna-se
indispensável. No Selenium IDE, essa metodologia de
teste pode ser implementada através da extensão CSV
Read.js

Basta acessar o menu Opções > Geral e informar o


caminho da extensão em Extensões do Selenium Core

Comandos:
readCSV: faz a conexão com a planilha de dados.
storeCellValue: armazena o dado de uma célula numa
variável.

Hugo Peres Curso Básico


Crie sua própria GUI de execução de testes
Vimos que o HTML Runner é bastante eficiente quando
se diz a respeito da execução de suítes de testes (.html)
em múltiplos navegadores. Agora, convenhamos que não
é nada produtivo ficar modificando os parâmetros do
arquivo em lote (.bat) toda vez que quiser executar um
teste diferente, não é verdade?

Pensando nisso, fica a sugestão de criar uma GUI


(Interface Gráfica do Usuário).

A lógica da ferramenta consiste em criar um arquivo em


lote (.bat) com os parâmetros informados pelo usuário e
executá-lo. Ao final da execução dos testes, o usuário
poderá visualizar o relatório gerado e também exportar a
configuração de teste (.zip) para ser executada de forma
independente.

Hugo Peres Curso Básico


Construa seu próprio Robô (Bot)
Bot: diminutivo de Robot, também conhecido
como Internet bot ou web robot. Trata-se de
uma aplicação de software concebido para
simular ações humanas em repetidas vezes e
de forma padrão, da mesma forma como faria
um robô.

No Selenium IDE, é possível “robotizar” a


execução de uma tarefa comum do seu
cotidiano através da opção Schedule
(Agendar).

Hugo Peres Curso Básico


FIM
Alguma dúvida?
https://inoveteste.com.br/forum

Hugo Peres Curso Básico

Você também pode gostar