Selenium Workshop

24
SELENIUM WORKSHOP ThoughtWorks Brasil Belo Horizonte - MG 1

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

Page 1: Selenium Workshop

SELENIUM WORKSHOPThoughtWorks Brasil Belo Horizonte - MG

1

Page 2: Selenium Workshop

AGENDA

!!

▫︎ Por que automação de testes?

▫︎ Introdução ao Selenium

▫︎ Entendendo o Selenium

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

2

Page 3: Selenium Workshop

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

Page 4: Selenium Workshop

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

Page 5: Selenium Workshop

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

Page 6: Selenium Workshop

NÃO!!

6

DEVO AUTOMATIZAR TUDO?

Page 7: Selenium Workshop

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

Page 8: Selenium Workshop

QUADRANTES DO AGILE TESTING

8

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

Page 9: Selenium Workshop

PIRÂMIDE DE TESTE DE SOFTWARE

9

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

Page 10: Selenium Workshop

PIRÂMIDE INVERTIDA (SORVETE) DE TESTE DE SOFTWARE

10

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

Page 11: Selenium Workshop

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

Page 12: Selenium Workshop

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

Page 13: Selenium Workshop

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

Page 14: Selenium Workshop

O QUE É DOM (DOCUMENT OBJECT MODEL) ?

14

ANTES DE COMEÇARMOS…

Page 15: Selenium Workshop

DOM - DATA OBJECT MODEL

15

Page 16: Selenium Workshop

COMO CAPTURAR ELEMENTOS NO DOM?

!!!

▫︎Chrome Dev Tools

!

▫︎Firebug

16

Page 17: Selenium Workshop

ALGUNS ELEMENTOS COMUNS...

17

Page 18: Selenium Workshop

ENTENDENDO O SELENIUM

18

Page 19: Selenium Workshop

ENTENDENDO O SELENIUM

19

Asserções

Page 20: Selenium Workshop

MÃO NA MASSA!

20

Page 21: Selenium Workshop

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

Page 22: Selenium Workshop

PRÓXIMOS PASSOS

!

▫︎ Page Object Design Pattern

!

▫︎Headless browser

!

▫︎Cucumber/BDD

!

▫︎Mobile (Android)

22

Page 24: Selenium Workshop

24

Obrigado!!

É isso aí, galera!