Escrevendo seu primeiro cenário Cucumber

Previamente postei neste blog alguns artigos a respeito do que é BDD, para que serve e como aplicá-lo. Veja exemplos aqui: artigos-bdd-ciclosw

Hoje vamos dar continuidade aos estudos sobre implementação do BDD como método de ATDD, ou seja, a utilização dele para o processo de escrita de cenários de aceite. O foco aqui estará para os testes automatizados implementados pela figura do QA em um contexto de entrega incremental, onde as funcionalidades de um sistema de UI é separado por casos de uso.

Eu também descrevi aqui como implementar seu primeiro cenário de teste automatizado  com BDD utilizando a ferramenta SpecFlow e código C#. Mas hoje quero dar ênfase à escrita de uma feature, que vem a ser a parte de negócio da implementação BDD através do Cucumber, com base na sintaxe Gherkin.

 

Origem do Cucumber

Segundo a documentação do cucumber.io: “Cucumber é uma ferramenta que suporta Desenvolvimento guiado a comportamento (BDD, na tradução livre) – um processo de desenvolvimento de software que visa melhorar a qualidade do software e reduzir custos de manutenção.”.

Essa ferramenta foi criada em 2008, por Aslak Hellesøy, que foi desenvolvedor na ThoughtWorks e em 2014 fundou a empresa Cucumber Ltd. De acordo com suas palavras à uma entrevista da InfoQ: “Eu fui consultor por 10 anos antes de criar a ferramenta Cucumber. Nos primeiros 5 anos de minha carreira, todos os projetos nos quais trabalhei tinham os mesmos problemas:

  • Eu muitas vezes não sabia se tinha entendido todos os requisitos;
  • Eu achei difícil confiar no resultado daquilo que estávamos construindo
  • Eu tinha medo de mudar código pré-existente, sem saber o que poderia quebrar com as mudanças
  • Nós estávamos constantemente atrasados com as entregas

E continua: “Com o BDD, * todos * os testes são testes de aceitação do cliente, escritos em linguagem simples (humana) para que os interessados ​​não técnicos possam compreendê-los. Então, o Cucumber combina especificações de requisitos, testes automatizados e documentação viva em um único formato chamado Gherkin, que é simplesmente inglês com um pouco mais de estrutura.”.

 

Como escrever sua primeira feature

É importante salientar que, tecnicamente, existem diversas ferramentas que podem ser utilizadas para implementar BDD: Cucumber, SpecFlow, JBehave, RSpec, Jasmine, Cucumber-js, Lettuce, Lettuce, etc. E que BDD é um processo maior que a automação de testes!!!

Mas, considerando o cenário que utiliza automação de testes, como citado acima, o fluxo de desenvolvimento BDD pode ser ordenado da seguinte forma:

1. Descrever funcionalidades      2. Implementar cenários   3. Executar cenários

Na etapa Descrever Funcionalidades é a qual: entendemos requisitos e prioridades; listamos cenários de uso, seus fluxos e resultados esperados.

Na etapa Implementar Cenários é a qual: escrevemos os cenários de ATDD com gherkin; implementamos seus steps e page-objects; gravamos os cenários em uma ferramenta de controle de versão.

Na etapa Executar Cenários é a qual: organizamos os cenários em suítes de testes; configuramos variáveis de ambiente, drivers e runners dos testes para a execução dos cenários; integramos os cenários a uma  ferramenta de  integração contínua, caso necessário.

 

 

Agora vamos para a parte prática!

Continuar lendo

Anúncios

Por quê aplicar BDD?

Behavior Driven Development, ou simplesmente BDD, é uma metodologia para desenvolvimento de produtos que foi criada como técnica para atender às demandas que o TDD não conseguiu suprir. Ela surgiu como proposta ao contexto da codificação de software. A diferença entre as duas técnicas, TDD e BDD, foi explicada aqui: diferenca-entre-tdd-e-bdd/

Hoje, enxergo o BDD como prática colaborativa, porque sua aplicação efetiva é proveniente da interação entre pessoas, com propósito na melhoria da comunicação entre elas. Ou seja, esta é uma ferramenta que não está mais restrita ao âmbito técnico da construção do produto, porque passa por diversas camadas anteriores ao seu desenvolvimento: entendimento das necessidades do cliente e domínio de negócio por toda a equipe desenvolvedora do produto.

Benefícios

O BDD é uma ferramenta que detalha a camada do negócio e chega à área técnica para a correta implementação de comportamentos do produto. Isso porque ela:

  • Facilita o entendimento do negócio;
  • Descreve o resultado esperado pelo cliente;
  • Promove a discussão do negócio;
  • Delimita escopo do produto;
  • Previne a ocorrência de falhas no produto.

Todos os benefícios listados acima contam com esta origem: especificação por exemplos, ferramenta que deve participar nas conversas com o cliente. Assim, quando em sua aplicação, o negócio passa a ser especificado em formato de pequenos exemplos de uso: cenários, contando com critérios de aceite bem definidos: comportamento do produto, o cliente tem sua visão entendida e detalhada para a equipe técnica que irá construir seu produto. E isso resulta em qualidade na entrega do produto, já que ele contará com as funcionalidades desejadas por quem o solicitou.

Como aplicar?

Continuar lendo

Por que ainda precisamos falar sobre diversidade nos ambientes de TI?

Por que?

Quem atua no mercado formal de trabalho hoje lida com as constantes mudanças comuns à cultura da inclusão. Em escritórios nos deparamos com pessoas de diferentes gerações, anseios e responsabilidades.

As pluralidades da sociedade: gênero, etnia, condições físicas e de vida, já estão refletidas no mundo corporativo. Nos ambientes de TI as equipes multidisciplinares são utilizadas como base para a aplicação de metodologias de trabalho capazes de garantir entregas “rápidas”. Isso, por formar times heterogêneos, contendo um pouco de cada especialidade necessária ao antedimento de produtos específicos, restringindo com isto os seus focos de atuação e por consequência ganhando em produtividade.

A esses times  deu-se a responsabilidade de decidir estratégias às soluções: o que fariam e em quanto tempo; com qual o grau de prioridade; e, com quais custos e ferramentas. Eles ganharam a capacidade de discutir ideias. Mas como ser eficaz se só ouço a minha parte da  clientela, a minha “face da moeda”, quando o mundo a quem atendo me apresenta múltiplas?


Por que uma figura “diferente” em meu time ainda me incomoda tanto?

Pela falta de representatividade. E o que isto significa? Que embora eu tenha contato com pessoas “diferentes” de mim em meu meio de convivência ou ambiente trabalho eu não as tenho como modelo, eu ainda não as enxergo como um exemplo a ser seguido ou muitas vezes não valorizo o seu discurso:

  • Apenas 2% dos funcionários das maiores empresas brasileiras são pessoas com deficiência (o mínimo exigido pela lei);
  • As mulheres representam 58,9% dos estagiários e apenas 13,6% das vagas executivas;
  • As mulheres recebem 70% da massa salarial obtida pelos homens;
  • Não existe um executivo de origem indígena nas empresas estudadas;
  • 94,2% dos cargos executivos pertencem a brancos, enquanto apenas 4,7% dos negros ocupam cargos nesse nível. Superatualizado

E por isso é tão importante incluir, para que pela noção de representatividade, cada pedacinho da sociedade se sinta motivada a colaborar com novas ideias. Soluções essas que poderão ser usadas por todos.


É lacração? É vitimismo? É mimimi?

Continuar lendo

ATC Salvador e QALadies

Pessoal, venho trazendo novidades! 🙂

 

Setembro está mesmo sendo um mês de realizações! E o mais legal é ver crescer o interesse do mercado em eventos que tratem apenas do tema: Teste de Software.

Será que está acontecendo o despertar do mercado de TI quanto ao valor que o trabalho do QA agrega ao cliente, ou o nosso próprio senso de valorização e auto-motivação têm nos guiado a alçar lugares mais altos?

Ficam abaixo as mostras do que este mês nos/me ofereceu:

 

ATC Salvador

Um evento que está rodando o Brasil para mostrar a cara da agilidade aliada a processos de teste. O mais legal é que ele dá voz aos palestrantes locais, trazendo além de visibilidade, motivação para a continuação de pesquisas e trabalhos desenvolvidos por aquelas comunidades.

Um super agradecimento a Samanta Cicília e a todos os envolvidos no processo de organização do Agile Testers Salvador! Foi um sonho realizado ter ajudado a produzir isso!

As fotos do evento estão neste link!

 

QALadies

Continuar lendo

Portifólio de Cursos

Oi pessoal,

Se você tem interesse em realizar aulas particulares nos seguintes temas, por favor, me procure no e-mail ciclosw@gmail.com

Garanto que tenho um material bem especial para vocês. 🙂

 

>> Curso Prático de Selenium WebDriver com Java e TestNG

>> Curso Prático de Selenium WebDriver com C# e SpecFlow

>> Curso Prático de Selenium WebDriver com Ruby, Capybara e Cucumber

>> Curso Prático de Testes de API com Ruby, HTTParty e Cucumber

Continuar lendo

Palestra no LinguÁgil 2016

Oi pessoal,

Estou de volta e desta vez com uma novidade. Fiz uma palestra recentemente em um evento super importante de TI para a Bahia, o LinguÁgil. Na palestra falei sobre testes: a necessidade de realizar teste de software; a realidade do nosso mercado; o processo de testes padrão; e uma abordagem ágil, o SBTM.

Confiram os dados do evento acessando este link!
A minha apresentação está disponível aqui!

No final de abril tem mais, irei palestrar na faculdade Unijorge, unidade Comércio, no evento GDG Tech Tour #2. Fiquem ligados!