InfoQ

InfoQ

Notícias

Meus Favoritos

Faça oLogin ou Cadastre-se para ativar o recurso de favoritos por tempo ilimitado.

O conteúdo foi adicionado aos favoritos!

Houve um erro ao adicionar aos favoritos! Por favor, tente novamente.

Receitas de Desenvolvimento Orientado a Estórias com Cucumber

Postado por Sebastien Auvray , traduzido por Felipe Rodrigues em 09 Mar 2009

Seções
Desenvolvimento,
Processos e Práticas,
Arquitetura e Design
Tópicos
Agile ,
Java ,
Colaboração ,
Ruby ,
Testes de Software ,
Técnicas Ágeis
Tags
RSpec

A popularidade do Behavior Driven Development (BDD) não pode ser negada. É uma resposta ao Test Driven Development (TDD) e foi introduzido por Dan North em 2003. BDD encoraja a colaboração entre as várias partes envolvidas em um projeto de software: desenvolvedores, QA e analistas não técnicos ou de negócio.

A fácil criação e uso de DSLs em Ruby permitiu o nacimento do muitos frameworks BDD, tais como RSpec. O Cucumber, escrito por Aslak Hellesøy é um outro exemplo, que pode também ser usado para testar código Java, .NET e Flex. Ele pode ser executar documentos de texto puro como testes funcionais automatizados.

Aqui está um típico cenário de exemplo (do Wiki do projeto):

Feature: Search courses
  In order to ensure better utilization of courses
  Potential students should be able to search for courses

  Scenario: Search by topic
    Given there are 240 courses where neither has the topic "biology"
    And there are 3 courses A,B,C that each have "biology" as one of the topics
    When I search for "biology"
    Then I should see a the following courses:
      | title |
      | A     |
      | B     |
      | C     |

Então você pode implementar código que esta receita descreve e iterar como falhas do teste até obter sucesso. O Cucumber suporta o destaque de partes que falhas ou de sucesso do cenário (Imagem do website do Cucumber):

Tests failure

O formato usado para escrever receitas Cucumber é a linguagem Gherkin, que pode ser adaptada a diferentes lingauges naturais, como por exemplo, palavras chave como "Given", "And", etc podem também ser escritas em linguagens como Francês, Português, Alemão, etc. O texto da linguagem natural à direita das palavras chaves é interpretado por uma definição programática, por exemplo, executa código para realizar este passo.

Há muitos usos diferentes para o Cucumber tais como testes de integração de aplicações Web para sysadmins ou para integrar sistemas distribuídos e testar messageria ou testes de escrita de PDF.

A versão 0.1.16 do Cucumber está disponível como um Ruby Gem e a 0.1.99.10 está disponível no GitHub.

Conteúdo Educacional

Formando equipes de alto desempenho, parte 1: Início e fases de evolução

Nesta primeira parte de uma série sobre equipes de alto desempenho e gerenciamento Agile, veja uma introdução geral e uma apresentação dos estágios de formação das equipes.

Business Model Canvas, passo a passo

O Business Model Canvas é uma ferramenta estratégica para a construção visual de novos produtos ou serviços. Conheça cada um dos seus elementos e como preencher o Canvas, passo a passo.

Google Apps Script, Parte 2: Google Docs, triggers e envio de emails

Nessa segunda e última parte de uma série sobre o Google Apps Script, conheça como funciona o envio de emails, a conversão de documentos e como criar menus e triggers.

Serviços de cloud computing PaaS: um guia para desenvolvedores Java

Este artigo avalia seis dos mais importantes fornecedores de serviços de cloud computing PaaS para desenvolvedores Java, analisando critérios como desempenho, escalabilidade e tecnologias suportadas.

Canvas de Modelo de Negócios: uma contribuição para o sucesso de Startups

O Canvas de Modelo de Negócios é um novo modo de comunicar e suportar a validação iterativa, incremental e empírica de modelos de negócio de startups e novos produtos substituindo o plano de negócios.

Entrevista com Rebecca Parsons Parte 2: Agile Distribuído, Arquitetura vs. Design e SOA

Nesta segunda e última parte de uma entrevista exclusiva para InfoQ Brasil, Rebecca Parsons, CTO da ThoughtWorks, fala sobre o Agile Distribuído e técnicas para definição de arquiteturas.

Entrevista com Rebecca Parsons Parte 1: Agile nas Empresas e Arquitetura Evolucionária

Nessa primeira parte de uma entrevista com a CTO da ThoughtWorks, veja recomendações sobre formas de construir e arquitetar sistemas para obter o máximo de flexibilidade e responsividade a mudanças.

Agile das equipes à organização: o papel do gerente, estratégias e dicas para a adoção

Os gerentes de projetos podem assumir o papel crítico de liderar a introdução do Agile. Vejas conceitos, dicas e técnicas para apoiar esse processo de mudanças.