testes automatizados (2)

14
Testes automatizados utilizando BDD OPTHS 2012

Upload: cesarvianna

Post on 13-Jul-2015

379 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Testes automatizados (2)

Testes automatizadosutilizando BDD

OPTHS 2012

Page 2: Testes automatizados (2)

BDD

✔ BDD - Behavior Driven Development✔ Desenvolvimento Guiado por Comportamento

✔ Técnica de desenvolvimento ágil que utiliza linguagem padronizada para descrever o comportamento do software.

✔ Potencializa a colaboração entre:✔ Desenvolvedores✔ Setores de qualidade ✔ Pessoas não-técnicas ou de negócios em um projeto

de software

Page 3: Testes automatizados (2)

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

Page 4: Testes automatizados (2)

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('http://www.consegi.gov.br/');

// Carrega outra página

$session->visit('http://www.serpro.gov.br')

// Usa os controles de histórico

$session->reload();

$session->back();

$session->forward();

Page 5: Testes automatizados (2)

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 Opera IE

4 - 10 * 8 e 9 7 - 9

Page 6: Testes automatizados (2)

Sintaxe Gherkin

● Gherkin é o padrão de escrita utilizado pelo Behat para descrição dos comportamentos

● Utiliza edentação e palavras reservadas para definir a estrutura das funcionalidades

● Features

– Cada funcionalidade deve ser descrita em um arquivo .feature

● Caminho: ...homebehat/features

– Cada Feature é composta por um grupo de Scenarios

Page 7: Testes automatizados (2)

Sintaxe Gherkin

● Estrutura:

Feature: Descrição concisa da funcionalidade A fim de atingir um objetivo Um ator específico Deseja realizar uma ação que agregue valor ao negócio em questão

Scenario: Um situação determinável Given alguma pré-condição And outra pré-condição When alguma ação do ator And outra ação Then alguma resposta testável é verificada And outra verificação é realizada

Scenario: Outra situação ...

Page 8: Testes automatizados (2)

Feature Context

● Podemos criar comportamentos personalizados que poderão ser reutilizados em todas as Features

– ...homebehat/features/bootstrap/FeatureContext.php

Page 9: Testes automatizados (2)

Comunicação

Feature

Context

Driver

Navegadores

Page 10: Testes automatizados (2)

Vamos à prática!

● Abra a “Cheat Sheet” do Behat– http://docs.behat.org/

● Configurando o Gedit com HighLight para o Gherkin

– Pesquise no oráculo por: gedit gherkin highlight

– Abra o primeiro resultado: http://ranskills.wordpress.com/2011/07/11/how-to-create-a-gherkin-syntax-highlighter-in-gedit/

● Crie um arquivo com nome cadpinoquio.feature dentro da pasta features

Page 11: Testes automatizados (2)

Primeiro Exemplo

@cadpinoquio @javascript Scenario: Cadastro do Pinóquio Afim de registrar um usuário no sistema Qualquer usuário Deseja inserir seus dados e verificar a confirmação Given I am on "/pinoquio.html" When I fill in "name" with "Exemplo" And I fill in "email" with "[email protected]" And I select "M" from "sex" And I click in "#submit" Then I should see "Cadastro efetuado com sucesso" And I should see "Exemplo" And I should see "[email protected]" And I should see "M"

Page 12: Testes automatizados (2)

Testando...

● Abrir um terminal e digitar:java -jar /home/consegi/selenium-server-standalone-2.25.0.jar

● Abrir outro terminal e digitar:cd ~/demo-behat./bin/behat --tags=”@meuform”

Page 13: Testes automatizados (2)

Baby Steps

● Desenvolvendo– Crie um arquivo /var/www/pinoquio.html

– Insira um conteúdo que resolva o primeiro erro do teste

– Salve e rode o teste novamente

– Repita o ciclo até que o teste não possua erro.

Page 14: Testes automatizados (2)

Perguntas ?