pepinos do cliente no código de testes da aplicação com oss

Post on 25-May-2015

2.175 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Slides da palestra que apresentei no FISL 2010 sobre BDD, Cucumber, Rails, Ruby, Java e mais um pouco. Os videos utilizados podem ser encontrados em: http://vimeo.com/13523947 http://vimeo.com/13524790

TRANSCRIPT

http://www.urubatan.com.br rodrigo@urubatan.com.br

Transformando os pepinos do cliente no código de testes da aplicação com

Cucumber

Rodrigo Urubatan

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"

O cliente tem um problema a resolver

Descobrindo os problemas

Reuniões com o cliente

Definição do Project

Backlog

Agile Business Analysis

User Stories

Lista do que deve ser feito

Cenários de uso do

sistema

Behavior Driven Development

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"

Pensando melhor na feature

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"

Tudo faz parte de um conjunto

Qual o ferramental completo?

• Integração continua

• Testes de aceitação automatizados

• Relatório dos testes

• Deploy automatico

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

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

Geração espontânea de testes

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

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('/')

Executar o cucumber

cucumber features\login.feature

http://www.urubatan.com.br rodrigo@urubatan.com.br

Referências

• Meu livro - http://livro.urubatan.com.br• Meu blog - http://www.urubatan.com.br• Cucumber - http://wiki.github.com/aslakhellesoy/cucumber• Capybara- http://github.com/jnicklas/capybara• WebDriver -

http://code.google.com/p/selenium/wiki/RubyBindings• Watir - http://watir.com/• Watircuke - http://github.com/nofxx/watircuke• Rails – http://rubyonrails.org• ASP.NET MVC - http://www.asp.net/mvc• http://vimeo.com/13524790• http://vimeo.com/13523947

top related