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

24
Testes Ágeis com BDD Por que o BDD pode salvar o agile? Paloma Costa [email protected]

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

Page 1: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

Testes Ágeis com BDDPor que o BDD pode salvar o

agile?

Paloma [email protected]

Page 2: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

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

Page 3: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

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

Page 4: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

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.

Page 5: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

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).

Page 6: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

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.

Page 7: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

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.

Page 8: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

Teste Orientado por Comportamento

Page 9: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

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.

Page 10: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

Ciclo de Desenvolvimento BDD

Page 11: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

BDD com Métodos Ágeis

Page 12: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

Stand Up!

Page 13: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

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/

Page 14: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

Papéis e Responsabilidades

Page 15: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

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

Page 16: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

Preparando o Ambiente

Page 17: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

Arquivo de Configuração

Page 18: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

Implementação - Definindo os passos

Page 19: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

Feature Implementada em Ruby

Page 20: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

Cenário Executado

Page 21: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

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).

Page 22: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

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.

Page 23: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

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]

Page 24: Testes Ágeis com BDD · CHELIMSKY, D at al., 2010 - The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. SMART, 2013 - BDD in Action: Behavior-driven development

Thanks!

[email protected]