testes automatizados cp

12
Testes automatizados utilizando técnicas de BDD

Upload: cesarvianna

Post on 21-Jul-2015

234 views

Category:

Documents


1 download

TRANSCRIPT

Testes automatizados

utilizando técnicas de BDD

● César Vianna

● SERPRO – Serviço Federal de Processamento de Dados

● Projeto Expresso – expressolivre.org

[email protected]

Testes de Software

Dimensões do Teste

1

3

2

Quando testar?

Como testar?

O que testar?

Níveis de TesteTeste de AceitaçãoTeste de SistemaTeste de IntegraçãoTeste de Unidade

Tipos de TesteTeste de FuncionalidadeTeste de RegressãoTeste de InterfaceTeste de DesempenhoTeste de CargaTeste de UsabilidadeTeste de VolumeTeste de Segurança

Técnicas de TesteTeste Estrutural (Caixa Branca)Teste Funcional (Caixa Preta)

BDD

✔ BDD - Desenvolvimento Guiado por Comportamento

✔ Técnica de desenvolvimento ágil que utiliza linguagem e interações. Com isso, possibilita a colaboração entre:

✔ Desenvolvedores✔ Setores de qualidade ✔ Pessoas não-técnicas ou de negócios em um

projeto de software

Linguagem Gherkin

Feature: Descreve o se deseja

Especificando o valor para o negócio

E o ator específico da ação

Scenario: Alguma ação de negócio

Given alguma pré-condição

And alguma outra pré-condição

When alguma ação do ator ocorrer

And também outra ação

And ainda outra

Then algum resultado testável é alcançado

And outra resposta verificável também é apresentada

Behat

● Behat é uma ferramenta que utiliza BDDSite do projeto: http://behat.org

● Nele o teste descreve a história e a partir dessa descrição, ela pode rodar como um teste automatizado.

– Exemplo:Dado que estou na tela de loginQuando eu informo o usuárioE eu informo a senhaE eu confirmoEntão eu deveria vizualizar a tela inicial

Mink

Simula a interação entre o browser e a aplicação web. Site do projeto: http://mink.behat.org

// Carrega uma página no browser

$session->visit('https://cte.serpro.gov.br/');

// Carrega outra página

$session->visit('https://expresso.serpro.gov.br')

// Usa os controles de histórico

$session->reload();

$session->back();

$session->forward();

Selenium Webdriver

● Um dos drivers de interface com os navegadores.

● Aceita comandos e envia para o navegador● Portável para a maioria dos navegadores

Navegadores e versões suportadas:

Firefox Chrome Safari IE

3.6 - 10 * 2, 3 7 - 9

Comumicação

Feature

Context

Driver

Navegadores

Exemplo

● Teste de navegação:Feature: Navegação na página do W3C

Dado que eu estou na página inicial do W3C

Quando eu seleciono uma região

Eu deveria visualizar o conteúdo respectivo

Scenario: Navegar na página do W3C, na região Austrália

Given I am on "http://www.w3c.br/Home/WebHome"

Then I select "Austrália" from "region"

And I press "Go"

And I should see "Australian W3C Office"

Dicas de leitura

- XPath locator- CSS locator- Plugin Firebug para Firefox- Plugin Firepath para Firefox- Selenium- Metodologias BDD, TDD- XP - Programação Extrema

Perguntas ?

[email protected]