Selenium Workshop

Post on 05-Dec-2014

1.356 views 0 download

description

Nessa apresentação abordamos a importância da automação de testes nos projetos de software, as melhores práticas de automação, as fases de testes e adicionamos exercícios 'mão na massa' no Selenium. Selenium é uma ferramenta de automação de testes funcionais criada originalmente pela ThoughtWorks, e é hoje, uma das ferramentas de automação mais utilizadas no mundo.

Transcript of Selenium Workshop

SELENIUM WORKSHOPThoughtWorks Brasil Belo Horizonte - MG

1

AGENDA

!!

▫︎ Por que automação de testes?

▫︎ Introdução ao Selenium

▫︎ Entendendo o Selenium

▫︎ Exercícios "mão na massa"

2

VANTAGENS DOS TESTES AUTOMATIZADOS

!

▫︎ Evitar trabalho repetitivo

!

▫︎Geralmente mais rápido que teste manual

!

▫︎ Feedback constante da aplicação

!

▫︎ Simular a interação de um usuário real do sistema

3

VANTAGENS DOS TESTES AUTOMATIZADOS

▫︎Não é diretamente acoplada à implementação do código

!

▫︎Auxilia a encontrar bugs e erros de regressão

!

▫︎ Fácil de ser implementado em diferentes plataformas e navegadores

!

▫︎ Podemos encontrar inclusive problemas de hardware (memória e recursos) através da automação

4

DESVANTAGENS DOS TESTES AUTOMATIZADOS

!

▫︎Manutenção

!

▫︎ Velocidade pode ser afetada

!

▫︎ Fragilidade (depende de elementos da UI)

!

▫︎ Vulnerabilidade - Os testes podem ficar instáveis se, por exemplo, algum componente em Javascript demorar para carregar.

5

NÃO!!

6

DEVO AUTOMATIZAR TUDO?

NÃO AUTOMATIZAR QUANDO:

!

▫︎Haverá mudanças consideráveis na interface do usuário em um futuro bem próximo

!

▫︎Muito pouco tempo para testar

!

▫︎Não é uma ação muito comum e previsível de ser realizada por um usuário real

!

▫︎Cenários extremamente complexos

7

QUADRANTES DO AGILE TESTING

8

Adaptada de: http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants

PIRÂMIDE DE TESTE DE SOFTWARE

9

Adaptada de: http://watirmelon.com/2012/01/31/introducing-the-software-testing-ice-cream-cone

PIRÂMIDE INVERTIDA (SORVETE) DE TESTE DE SOFTWARE

10

Adaptado de: http://watirmelon.com/2012/01/31/introducing-the-software-testing-ice-cream-cone

INTRODUÇÃO AO SELENIUM

!

▫︎ Iniciada em 2004 por um ThoughtWorker chamado Jason Huggins

!

▫︎Algum tempo depois, Simon Stewart do Google iniciou um projeto chamado WebDriver

!

▫︎Ambos projetos se uniram, dando origem ao Selenium-WebDriver (Selenium 2.0)

11

POR QUE SELENIUM?

!

▫︎ Suporta várias linguagens: Java, Ruby, Python, JavaScript, etc…

!

▫︎ Suporta vários browsers: Chrome, Firefox, Safari, IE, Opera, Headless, Android, iOS etc…

!

▫︎ É open-source!

12

ALGUMAS OUTRAS VARIAÇÕES...

!!

▫︎Selenium IDE: ferramenta record & playback apenas para testes simples/básicos. Não recomendado para automação séria! :)

!

▫︎Selenium-Grid: Útil para executar testes em paralelo em múltiplas máquinas remotas.

13

O QUE É DOM (DOCUMENT OBJECT MODEL) ?

14

ANTES DE COMEÇARMOS…

DOM - DATA OBJECT MODEL

15

COMO CAPTURAR ELEMENTOS NO DOM?

!!!

▫︎Chrome Dev Tools

!

▫︎Firebug

16

ALGUNS ELEMENTOS COMUNS...

17

ENTENDENDO O SELENIUM

18

ENTENDENDO O SELENIUM

19

Asserções

MÃO NA MASSA!

20

ATIVIDADES

!

▫︎ Instalação e configuração (Eclipse + Selenium-WebDriver + JUnit + Hamcrest)

▫︎ Automatizando do zero

▫︎ https://github.com/ThoughtWorksInc/twseleniumworkshop/blob/master/test/twseleniumworkshop/Exercicio1.java

▫︎ https://github.com/ThoughtWorksInc/twseleniumworkshop/blob/master/test/twseleniumworkshop/Exercicio2.java

▫︎ https://github.com/ThoughtWorksInc/twseleniumworkshop/blob/master/test/twseleniumworkshop/Exercicio3.java

▫︎ https://github.com/ThoughtWorksInc/twseleniumworkshop/blob/master/test/twseleniumworkshop/Exercicio4.java

▫︎ https://github.com/ThoughtWorksInc/twseleniumworkshop/tree/master/test/twseleniumworkshop/PageObject

21

PRÓXIMOS PASSOS

!

▫︎ Page Object Design Pattern

!

▫︎Headless browser

!

▫︎Cucumber/BDD

!

▫︎Mobile (Android)

22

24

Obrigado!!

É isso aí, galera!