O documento apresenta uma técnica de desenvolvimento de software chamada BDD (Desenvolvimento Guiado por Comportamento) que utiliza linguagem natural para descrever casos de teste e permite a automação desses testes. A ferramenta Behat implementa BDD e permite rodar os casos de teste descritos em linguagem Gherkin, enquanto Mink simula interações com navegadores web e Selenium é um driver que controla navegadores para executar os testes automatizados.
2. ● César Vianna
● SERPRO – Serviço Federal de Processamento de Dados
● Projeto Expresso – expressolivre.org
● cesar.vianna@serpro.gov.br
3. Testes de Software
Dimensões do Teste
O que testar?
2
Tipos de Teste
Teste de Funcionalidade
Teste de Regressão Técnicas de Teste
Teste de Interface Teste Estrutural (Caixa Branca)
Teste de Desempenho Teste Funcional (Caixa Preta)
Teste de Carga
Como testar?
Teste de Usabilidade
Teste de Volume 3
Teste de Segurança
Níveis de Teste
1 Teste de Aceitação
Teste de Sistema
Quando testar?
Teste de Integração
Teste de Unidade
4. 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
5. 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
6. Behat
● Behat é uma ferramenta que utiliza BDD
Site 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 login
Quando eu informo o usuário
E eu informo a senha
E eu confirmo
Então eu deveria vizualizar a tela inicial
7. 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();
8. 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
10. 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"
11. Dicas de leitura
- XPath locator
- CSS locator
- Plugin Firebug para Firefox
- Plugin Firepath para Firefox
- Selenium
- Metodologias BDD, TDD
- XP - Programação Extrema