Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development...

Post on 23-Aug-2020

5 views 0 download

Transcript of Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development...

Testes Ágeis com BDDPor que o BDD pode salvar o

agile?

Paloma Costapaloma.costa@gmail.com

Agenda● Sobre a Palestrante● Introdução● Entender o Comportamento● O que é BDD?● O que Cucumber?● Testes Orientados por Comportamento● Documentação Automática● Ciclo de Desenvolvimento BDD● BDD com Métodos Ágeis● Papéis e Responsabilidades● Implantação BDD - Passo a Passo● Benefícios● Conclusão

Sobre a Palestrante

● Especialista em Qualidade de Software e Informática na Educação● Certificação CTFL e CTFL-AT

● Formada em Ciências da Computação● Usuária GNU/Linux desde 2001- Debian

● Trabalha como Consultora de Software na e-core SP• Uma das fundadoras do GT - Feminino Livre (2008)

• Foi Integrante da Coordenação de Software Livre RS e Coordenadora dos Grupos de Usuários de 2003 a 2010

Nova Era● Testar manualmente tem sido o mais comum, mantendo muitos

testadores na zona de conforto; ● Devemos quebrar esse paradigma e fazer com que a programação facilite

nosso trabalho e faça com que testes manuais exerçam nossa criatividade, senso critico, detalhismo e nossa inteligência, deixando para que a máquina faça o trabalho repetitivo.

● Bem vindos à nova era do Software Quality Assurance.

Entender o Comportamento● Cresce a importância QA em envolver - se mais com o negócio;● Entender melhor as Histórias, novas funcionalidades e etc;● Despertar na equipe do projeto a integração de esforços entre a

qualidade e o desenvolvimento. ● Sendo assim, evita-se o retrabalho e defeitos, baseado no

comportamento do requisito (CRISPIN, 2009).

O que é BDD?Behavior-driven development (BDD) é um processo de desenvolvimento de software que emergiu do test-driven development (desenvolvimento orientado a testes - TDD).

● BDD combina técnicas e os princípios gerais do TDD com idéias vindas do DDD, para oferecer equipes de desenvolvimento e gerenciamento de software, com ferramentas em comum e um processo compartilhado para colaborar no desenvolvimento de software.

O que é Cucumber?Cucumber é uma ferramenta que implementa BDD e

pode executar documentação de funcionalidades escrito em texto puro.

● Cucumber executa testes em cima das especificações.

● Na verdade é BDD + algumas convenções + a mágica do Ruby.

● Seguindo a filosofia do BDD, você deve escrever as especificações antes de

implementar qualquer código. Você modela seu código a partir do

comportamento esperado da aplicação.

Teste Orientado por Comportamento

Documentação Automática● Seguindo a filosofia BDD, podemos escrever as especifiações antes de

implementar qualquer código.

● A modelagem do código é a partir do comportamento esperado das especificações a serem salvas em um arquivo de extensão feature.

● Estrutura Cucumber de texto puro especificado na documentação automatizada.

Ciclo de Desenvolvimento BDD

BDD com Métodos Ágeis

Stand Up!

Kanban

➔ Kanban é uma metodologia de gestão de trabalho, onde procura-se priorizar tarefas e organizar a fluxo de trabalho de uma forma mais produtiva.

Fonte: https://proposeful.com/pt/blog/sistema-kanban-online-melhor-software-2015/

Papéis e Responsabilidades

Passo a Passo de Implementação BDD● Preparando o Ambiente● Arquivos de Configuração● Implementação● Execução

Preparando o Ambiente

Arquivo de Configuração

Implementação - Definindo os passos

Feature Implementada em Ruby

Cenário Executado

Benefícios BDD● Agregam valor para o cliente antes da existência do código-fonte, ou seja,

evitam defeitos baseados em comportamento e geram um conjunto de testes de regressão baseado nesses comportamentos (NORTH, 2015).

● Permite focar nos requisitos, para que as mudanças sejam eficientes requerendo alto nível de entendimento dos requisitos do negócio e contribuindo com uma documentação colaborativa (SMART, 2013).

Conclusão● Podemos pensar em BDD como um termo âncora, no qual o centro é a

comunicação, colaboração e detalhamento de cenários juntamente

com sua automação.

● Concluindo, BDD em uma ideia principal:

Utilização de exemplos em conversas, para ilustrar o comportamento.

ReferênciasADZIC, 2011 - Specification by Example: How Successful Teams Deliver the Right Software.

CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends.

SMART, 2013 - BDD in Action: Behavior-driven development for the whole software lifecycle.

NORTH, D. 2015 - Faster organizations, faster software.

WYNNE, M; HELLESOY, A. - The Cucumber Book: Behaviour- Driven Development for Testers and Developers.

Infoq, 2015 - [https://www.infoq.com/br/news/2015/07/bdd-save-agile] [ https://www.infoq.com/news/2015/07/six-bdd-improvements]

Thanks!

paloma.costa@gmail.com