SlideShare uma empresa Scribd logo
Behavior-Driven Development ou
como codificar testes com uma
linguagem amigável
Renato Groffe
TRILHA | MELHORIA CONTÍNUA
@RenatoGroff | http://renatogroffe.net/
Agenda
• Uma visão geral sobre testes de software
• Behavior-Driven Development
• Exemplo prático utilizando o framework SpecFlow
Link para acesso aos slides e fontes:
http://bit.ly/bdd-devops-summit-2016
Por que testar um software?
• Garantir que o projeto atende às especificações
• Detectar falhas e defeitos antes da subida para produção
Alguns tipos de testes
• Teste de unidade
• Teste de integração
• Teste de sistema
• Teste de aceitação
• Teste de regressão
Test-Driven Development (TDD)
• Desenvolvimento cíclico baseado na codificação e execução
de testes de unidade
• Testes são escritos antes mesmo da codificação de classes ou
métodos
• Abordagem comumente associada às metodologias ágeis
Test-Driven Development (Red-Green-Refactor)
Um exemplo de teste de unidade (xUnit.net)
Dificuldades na adoção de TDD
• Verificar pontos isolados (métodos, classes) nem sempre é uma solução
eficiente ou garantia de sucesso
• Problemas costumam surgir durante a integração de partes
relacionadas
• Testes de unidade são compreendidos apenas por pessoas com um
perfil mais técnico
E como superar tais dificuldades?
A abordagem conhecida como Behavior-Driven
Developmentpode ser uma resposta a esta pergunta
Behavior-Driven Development (BDD)
• Metodologia de desenvolvimento proposta por Dan North em
2006
• User stories (histórias) descrevem o comportamento de features
(funcionalidades)
Estrutura de uma user story
Behavior-Driven Development (BDD)
• Ciclo de desenvolvimento muito semelhante àquele existente para
TDD
Behavior-Driven Development (BDD)
• As histórias fazem uso de uma linguagem ubíqua
(compreendida por todos os envolvidos no projeto)
Especialistas
de Negócio
Especialistas
Técnicos
Linguagem
ubíqua
Behavior-Driven Development (BDD)
• Frameworks permitem que as user stories sejam executadas
como testes de aceitação ou regressão a partir de uma IDE
• Cucumber → primeira ferramenta a suportar BDD e base
utilizada pelos principais frameworks
• Gherkin → mecanismo utilizado pelo Cucumber para
interpretar uma história; suporte à internacionalização
BDD e a plataforma .NET
• A opção mais utilizada na atualidade é o framework gratuito SpecFlow
http://www.specflow.org/
• O SpecFlow trabalha com especificações de funcionalidades,
baseando-se para isto em user stories
• Cenários correspondem a diferentes casos de teste no SpecFlow
• A utilização do SpecFlow costuma acontecer em conjunto com outros
frameworks
SpecFlow e outros frameworks
• MS Test, Nunit, xUnit.net, Selenium, Moq e Nsubstitute são algumas
das opções possíveis...
MS Test
Exemplo de uso do SpecFlow
• Funcionalidade para conversão de alturas em pés para o equivalente
em metros
• Classe a ser implementada:
Exemplo de uso do SpecFlow
• Fórmula a ser considerada:
• Casos de teste:
• Considerar 4 casas decimais para arredondamento da distância em
metros
Distância em m = Pés * 0,3048
Exemplo de uso do SpecFlow
• User story:
Behavior-Driven Development (BDD) - DevOps Summit 2016

Mais conteúdo relacionado

PPTX
Testes de interfaces Web com Selenium
PPTX
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
PPTX
Mocking Test - QA Ninja Conf 2016
PPTX
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
PPTX
Testes de aplicações Web com Selenium, .NET Standard e .NET Core 2.0 - .NET S...
PPTX
Behavior-Driven Development (BDD) - Abril/2017
PPTX
Mocking Test - ThinkUp! - Abril/2017
PPTX
TDD e BDD - Developers-SP - Abril/2017
Testes de interfaces Web com Selenium
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Mocking Test - QA Ninja Conf 2016
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
Testes de aplicações Web com Selenium, .NET Standard e .NET Core 2.0 - .NET S...
Behavior-Driven Development (BDD) - Abril/2017
Mocking Test - ThinkUp! - Abril/2017
TDD e BDD - Developers-SP - Abril/2017

Mais procurados (20)

PPTX
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
PPTX
.NET Core e Testes de Unidade - Visual Studio Summit 2017
PDF
Como testar sua aplicação Android com Robotium
PDF
Automação de Teste com Robotium - Tche Mobile 2014
PDF
Automação de Teste em Front End - Caipira Ágil
PPSX
DevQA - Da zona de conforto ao comprometimento com a Qualidade
PPTX
Test-Driven Development (TDD) - MSP Coding Day
PPTX
Palestra TDD - TDC - 2016
PPTX
Mocking Test - GDG-SP - Setembro/2016
ODP
Qualidade em Aplicações Android - Automação de Testes Funcionais com Robotium
PDF
Test-Driven Develpment - TDD
PPSX
DevQA | Da zona de conforto ao comprometimento com a qualidade
PDF
Testes para Android de ponta a ponta
PDF
Testes de Performance na Nuvem com JMeter e Blazemeter
PPTX
Nunca foi tao facil testar
PPTX
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
PPSX
DevQA - Da zona de conforto ao comprometimento com a Qualidade
PPTX
Visual Regression Tests - Dando um Upload nos seus testes de UI!
PPTX
Automação de Teste para REST, Web e Mobile
PPTX
Minas Testing Conference - Entrega Contínua
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
.NET Core e Testes de Unidade - Visual Studio Summit 2017
Como testar sua aplicação Android com Robotium
Automação de Teste com Robotium - Tche Mobile 2014
Automação de Teste em Front End - Caipira Ágil
DevQA - Da zona de conforto ao comprometimento com a Qualidade
Test-Driven Development (TDD) - MSP Coding Day
Palestra TDD - TDC - 2016
Mocking Test - GDG-SP - Setembro/2016
Qualidade em Aplicações Android - Automação de Testes Funcionais com Robotium
Test-Driven Develpment - TDD
DevQA | Da zona de conforto ao comprometimento com a qualidade
Testes para Android de ponta a ponta
Testes de Performance na Nuvem com JMeter e Blazemeter
Nunca foi tao facil testar
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
DevQA - Da zona de conforto ao comprometimento com a Qualidade
Visual Regression Tests - Dando um Upload nos seus testes de UI!
Automação de Teste para REST, Web e Mobile
Minas Testing Conference - Entrega Contínua
Anúncio

Semelhante a Behavior-Driven Development (BDD) - DevOps Summit 2016 (20)

PPTX
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
PPTX
Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...
PPTX
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
PPTX
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Grupo Bandeirantes - ...
PPTX
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Hertz - Janeiro-2018
PPTX
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...
PPTX
Testes automatizados.pptx
PPTX
BDD (Behavior-Driven Development) - Setembro/2015
PPTX
BDD (Behavior-Driven Development)
KEY
Qualidade no desenvolvimento de Software com TDD e PHPUnit
PPTX
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
PPTX
BDD com SpecFlow
PPTX
Bdd com spec flow
PDF
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
PPTX
Desconstruindo monolitos - Construindo microservicos em Delphi
PDF
Falando sobre DevOps no azure
ODP
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
PDF
Apresentação jasmine
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Open4Education | MC122 - Introdução a ALM OpenSource
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Grupo Bandeirantes - ...
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Hertz - Janeiro-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...
Testes automatizados.pptx
BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development)
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
BDD com SpecFlow
Bdd com spec flow
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
Falando sobre DevOps no azure
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
Apresentação jasmine
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Open4Education | MC122 - Introdução a ALM OpenSource
Anúncio

Mais de Renato Groff (20)

PPTX
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
PPTX
Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020
PPTX
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
PPTX
Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...
PPTX
GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...
PPTX
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
PPTX
Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...
PPTX
Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...
PPTX
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
PPTX
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
PPTX
.NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |...
PPTX
Aplicações Distribuídas com .NET | TDC Recife Online 2020
PPTX
Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020
PPTX
Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...
PPTX
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
PPTX
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
PPTX
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
PPTX
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
PPTX
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020
PPTX
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...
GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...
Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
.NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |...
Aplicações Distribuídas com .NET | TDC Recife Online 2020
Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020
Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020

Último (7)

PDF
Evolução em código: algoritmos genéticos com PHP
PDF
apresentacao introducao computacao ead.pdf
PDF
Dos requisitos ao código: como criar código rastreável em PHP
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
PPTX
Curso de Windows 11 resumido na prática.pptx
DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
PPTX
Mapeamento de Objeto para Tabela Relacional
Evolução em código: algoritmos genéticos com PHP
apresentacao introducao computacao ead.pdf
Dos requisitos ao código: como criar código rastreável em PHP
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
Curso de Windows 11 resumido na prática.pptx
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
Mapeamento de Objeto para Tabela Relacional

Behavior-Driven Development (BDD) - DevOps Summit 2016

  • 1. Behavior-Driven Development ou como codificar testes com uma linguagem amigável Renato Groffe TRILHA | MELHORIA CONTÍNUA @RenatoGroff | http://renatogroffe.net/
  • 2. Agenda • Uma visão geral sobre testes de software • Behavior-Driven Development • Exemplo prático utilizando o framework SpecFlow
  • 3. Link para acesso aos slides e fontes: http://bit.ly/bdd-devops-summit-2016
  • 4. Por que testar um software? • Garantir que o projeto atende às especificações • Detectar falhas e defeitos antes da subida para produção
  • 5. Alguns tipos de testes • Teste de unidade • Teste de integração • Teste de sistema • Teste de aceitação • Teste de regressão
  • 6. Test-Driven Development (TDD) • Desenvolvimento cíclico baseado na codificação e execução de testes de unidade • Testes são escritos antes mesmo da codificação de classes ou métodos • Abordagem comumente associada às metodologias ágeis
  • 8. Um exemplo de teste de unidade (xUnit.net)
  • 9. Dificuldades na adoção de TDD • Verificar pontos isolados (métodos, classes) nem sempre é uma solução eficiente ou garantia de sucesso • Problemas costumam surgir durante a integração de partes relacionadas • Testes de unidade são compreendidos apenas por pessoas com um perfil mais técnico
  • 10. E como superar tais dificuldades? A abordagem conhecida como Behavior-Driven Developmentpode ser uma resposta a esta pergunta
  • 11. Behavior-Driven Development (BDD) • Metodologia de desenvolvimento proposta por Dan North em 2006 • User stories (histórias) descrevem o comportamento de features (funcionalidades)
  • 12. Estrutura de uma user story
  • 13. Behavior-Driven Development (BDD) • Ciclo de desenvolvimento muito semelhante àquele existente para TDD
  • 14. Behavior-Driven Development (BDD) • As histórias fazem uso de uma linguagem ubíqua (compreendida por todos os envolvidos no projeto) Especialistas de Negócio Especialistas Técnicos Linguagem ubíqua
  • 15. Behavior-Driven Development (BDD) • Frameworks permitem que as user stories sejam executadas como testes de aceitação ou regressão a partir de uma IDE • Cucumber → primeira ferramenta a suportar BDD e base utilizada pelos principais frameworks • Gherkin → mecanismo utilizado pelo Cucumber para interpretar uma história; suporte à internacionalização
  • 16. BDD e a plataforma .NET • A opção mais utilizada na atualidade é o framework gratuito SpecFlow http://www.specflow.org/ • O SpecFlow trabalha com especificações de funcionalidades, baseando-se para isto em user stories • Cenários correspondem a diferentes casos de teste no SpecFlow • A utilização do SpecFlow costuma acontecer em conjunto com outros frameworks
  • 17. SpecFlow e outros frameworks • MS Test, Nunit, xUnit.net, Selenium, Moq e Nsubstitute são algumas das opções possíveis... MS Test
  • 18. Exemplo de uso do SpecFlow • Funcionalidade para conversão de alturas em pés para o equivalente em metros • Classe a ser implementada:
  • 19. Exemplo de uso do SpecFlow • Fórmula a ser considerada: • Casos de teste: • Considerar 4 casas decimais para arredondamento da distância em metros Distância em m = Pés * 0,3048
  • 20. Exemplo de uso do SpecFlow • User story: