Testes Ágeis com BDD Por que o BDD pode salvar o agile? Paloma Costa paloma.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ências ADZIC, 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