O documento discute como o Cucumber pode ser usado para transformar os requisitos do cliente em testes de aceitação automatizados, permitindo que as equipes implementem de forma iterativa e guiada por testes. Ele também aborda como o Cucumber pode ser usado com Ruby on Rails, Java e outras tecnologias para automatizar testes no navegador.
pepinos do cliente no código de testes da aplicação com OSS
1. Transformando os pepinos
do cliente no código de
testes da aplicação com
Cucumber
Rodrigo Urubatan
http://www.urubatan.com.br rodrigo@urubatan.com.br
2. Sobre Urubatan
Trabalho com desenvolvimento desde 1997, já desenvolvi
sistemas em diversas linguagens, como Delphi, C, C++,
PHP, ASP, ColdFusion, Assembly, Leather, Java e Ruby.
Atualmente trabalho com pesquisa e desenvolvimento na HP,
utilizando principalmente Java, e com Ruby em outros
projetos e cursos.
Alem de ser o autor do livro "Ruby On Rails: Desenvolvimento
fácil e Rápido de aplicações web"
4. Descobrindo os problemas
Reuniões com o cliente Cenários de uso do
sistema
Definição do Project
Backlog
Agile Business Analysis
User Stories
Lista do que deve ser feito
6. Cenário: Login
Scenario: Login of existent user
Given I am on the login page
When I provide valid credentials
And I press "Login"
Then I should be redirected to "the home
page"
8. Feature Login
Feature: Login
In order to make some money
As the service provider
I want existing users to be able to access the system
Scenario: Login of existent user
Given I am on the login page
When I provide valid credentials
And I press "Login"
Then I should be redirected to "the home page"
Scenario: Login of inexistent user
Given I am on the login page
When I provide invalid credentials
And I press "Login"
Then I should be redirected to "the login page"
10. Qual o ferramental completo?
• Integração continua
• Testes de aceitação automatizados
• Relatório dos testes
• Deploy automatico
11. Ciclo de implementação
1. Montar o backlog de features a serem implementadas
2. Priorizar as features
3. Pegar uma das features para implementar
4. Escrever os cenários/Testes de aceitação para a feature
5. Executar os cenários
6. Escrever código o suficiente para um cenário/teste passar
7. Executar os cenários novamente
8. Repetir passos 6 e 7 até que todos os cenários estejam
passando
12. Exemplo com Ruby on Rails
1. Criar uma aplicação Rails
2. Configurar o suporte ao cucumber
3. Criar features
4. Executar os testes
5. Implementar as features
6. Executar os testes
7. Repetir passos 4 a 6 até que o sistema esteja pronto
8. Ver passo a passo neste video:
http://vimeo.com/13523947
14. Exemplo Web com Java
1. Criar um projeto Web Dinâmico com eclipse (ou outra
IDE Java)
2. Copiar a pasta features do projeto Rails
3. Configurar cucumber para testar aplicação Java
4. Executar cucumber
5. Implementar Login
6. Executar cucumber
7. Implementar cadastro de usuários
8. Executar cucumber
9. Ver exemplo neste link: http://vimeo.com/13524790
15. Automação do browser
require 'capybara'
require 'capybara/dsl'
include Capybara
Capybara.current_driver = :selenium
Capybara.app_host = 'http://www.google.com'
Capybara.run_server = false
visit('/')