Desenvolvimento baseado em comportamento - Ferramentas

As equipes de desenvolvimento geralmente têm um conceito errado de que o BDD é uma estrutura de ferramenta. Na realidade, o BDD é uma abordagem de desenvolvimento em vez de uma estrutura de ferramenta. No entanto, como no caso de outras abordagens de desenvolvimento, também existem ferramentas para BDD.

Várias ferramentas BDD estão em uso para diferentes plataformas e linguagens de programação. Eles são -

  • Pepino (estrutura Ruby)

  • SpecFlow (framework .NET)

  • Comporte-se (framework Python)

  • JBehave (estrutura Java)

  • JBehave Web (estrutura Java com integração Selenium)

  • Alface (estrutura Python)

  • Concordion (estrutura Java)

  • Behat (framework PHP)

  • Kahlan (framework PHP)

  • DaSpec (estrutura JavaScript)

  • Jasmine (estrutura JavaScript)

  • Cucumber-js (estrutura JavaScript)

  • Squish GUI Tester (BDD GUI Testing Tool para JavaScript, Python, Perl, Ruby e Tcl)

  • Spock (estrutura Groovy)

  • Yadda (suporte à linguagem Gherkin para estruturas como Jasmine (estrutura JavaScript))

Pepino

Cucumber é uma ferramenta gratuita para especificações executáveis ​​usada globalmente. Cucumber permite que as equipes de desenvolvimento de software descrevam como o software deve se comportar em texto simples. O texto é escrito em uma linguagem de domínio específico legível para negócios e serve como documentação, testes automatizados e ajuda ao desenvolvimento, tudo em um único formato. Você pode usar mais de quarenta idiomas diferentes (inglês, chinês, etc.) com o Cucumber.

Pepino - Características principais

As principais características do Cucumber são as seguintes -

  • O pepino pode ser usado para especificações executáveis, automação de teste e documentação viva.

  • Cucumber trabalha com Ruby, Java, NET, Flex ou aplicações web escritas em qualquer linguagem.

  • Cucumber oferece suporte a testes mais sucintos em tabelas - semelhante ao que o FIT faz.

  • A Cucumber revolucionou o Ciclo de Vida de Desenvolvimento de Software combinando requisitos, testes automatizados e documentação em um coeso: especificações executáveis ​​de texto simples que validam o software.

SpecFlow

SpecFlow é uma ferramenta BDD para a plataforma .NET. SpecFlow é um projeto de código aberto. O código-fonte está hospedado no GitHub.

SpecFlow usa a sintaxe do Gherkin para recursos. O formato Gherkin foi introduzido pelo Cucumber e também é usado por outras ferramentas. A linguagem Gherkin é mantida como um projeto no GitHub -https://github.com/cucumber/gherkin

comporte-se

Behave é usado para o framework Python.

  • O Behave funciona com três tipos de arquivos armazenados em um diretório chamado “recursos” -

    • arquivos de recursos com seus cenários de comportamento.

    • Diretório “etapas” com implementações de etapas Python para os cenários.

    • Opcionalmente, alguns controles ambientais (código para executar antes e depois das etapas, cenários, recursos ou toda a partida de tiro).

  • Os recursos de comportamento são escritos usando o Gherkin (com algumas modificações) e são chamados de “name.feature”.

  • As tags anexadas a um recurso e cenário estão disponíveis nas funções do ambiente por meio do objeto “recurso” ou “cenário” passado a eles. Nesses objetos existe um atributo chamado “tags” que é uma lista dos nomes das tags anexadas, na ordem em que são encontradas no arquivo de características.

  • Modificações no padrão Gherkin -

    • O Behave pode analisar arquivos Gherkin padrão e estende o Gherkin para permitir palavras-chave em minúsculas porque às vezes permitem especificações de recursos mais legíveis

Alface

Alface é uma ferramenta de BDD muito simples baseada no Cucumber. Ele pode executar descrições funcionais em texto simples como testes automatizados para projetos Python. Alface visa as tarefas mais comuns no BDD.

Concordion

Concordion é uma ferramenta de código aberto para automatizar a Especificação por Exemplo para o Java Framework.

Embora os principais recursos sejam simples, a API de estrutura de extensão poderosa permite adicionar funcionalidades, como usar planilhas do Excel como especificações, adicionar capturas de tela à saída, exibir informações de registro, etc.

Concordion permite que você escreva as especificações em linguagem normal usando parágrafos, tabelas e pontuação adequada e a linguagem estruturada usando Dado / Quando / Então não é necessário.

Concordion foi transferido para outros idiomas, incluindo -

  • C # (Concordion.NET)

  • Python (PyConcordion)

  • Ruby (Ruby-Concordion)