SlideShare uma empresa Scribd logo
1 de 23
• Microsoft Most Valuable Professional (MVP)
• Multi-Plataform Technical Audience Contributor (MTAC)
• Mais de 15 anos de experiência na área de Tecnologia
• Autor Técnico e Palestrante
• Um dos organizadores do Canal .NET
Renato Groffe
h t t p s : / / m e d i u m . c o m / @ re n a t o . g rof f e /
Agenda
• Testes de software: uma visão geral
• Um pouco sobre BDD (Behavior-Driven
Development)
• Indo além com BDD...
Testes de software: uma visão geral
Por que testar um software?
• Garantir que o projeto atende às especificações
• Detectar falhas e defeitos antes da subida para produção
• TDD (Test-Driven Development) é uma das abordagens
mais conhecidas
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)
Elaboração de um teste
com falhas (Red)
Execução com sucesso do teste
definido anteriormente (Green)
Identificar pontos de
melhoria no código (Refactor)
Um exemplo (.NET + xUnit)
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?
Behavior-Driven Development (BDD)
• Uma resposta às dificuldades geradas por TDD
• Metodologia de desenvolvimento proposta por Dan North em
2006
• User stories (histórias) descrevem o comportamento de features
(funcionalidades)
Estrutura de uma user story
Funcionalidade:
Cenário:
Dado
E
E
Quando
Então
E
E
Behavior-Driven Development (BDD)
Elaboração de um teste com
falhas (Red)
Execução com sucesso do teste
definido anteriormente (Green)
Identificar pontos de
melhoria no código (Refactor)
• Ciclo de desenvolvimento muito semelhante àquele existente
para TDD
Behavior-Driven Development (BDD)
• Ciclo de desenvolvimento muito semelhante àquele existente
para TDD
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
• As principais plataformas da atualidade contam com opções baseadas no Cucumber
Um exemplo rápido...
Analisando as possibilidades
• Frameworks baseados no Cucumber são geralmente
empregados no teste de classes
• Mas o uso de técnicas de BDD e desses frameworks se resume
apenas a isto?
Indo além com BDD...
O que mais podemos fazer?
• Conforme já discutido, user stories podem descrever o
comportamento de uma funcionalidade
• Este comportamento pode descrever a interação do usuário
com uma interface Web
• Ou ainda em uma mobile app
Há mais possibilidades com o Cucumber!
• Frameworks baseados no Cucumber podem ser combinados a
outros soluções de testes
• Isto é aplicável tanto a aplicações Web, quanto a soluções
mobile
Um novo exemplo,
agora com Selenium...
github.com/renatogroffe/InterCon2017_BDD
facebook.com/renatogroffe
medium.com/@renato.groffe/
http://renatogroffe.net/

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Overview de QA
Overview de QA Overview de QA
Overview de QA
 
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de códigoSeu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
 
TDD com Código Legado
TDD com Código LegadoTDD com Código Legado
TDD com Código Legado
 
RealDay: Introduction to TDD
RealDay: Introduction to TDDRealDay: Introduction to TDD
RealDay: Introduction to TDD
 
Facilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHPFacilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHP
 
Apresentação testes white box
Apresentação testes white boxApresentação testes white box
Apresentação testes white box
 
Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016
 
Instituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela S&T#001, Projeto de software com testes unitáriosInstituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela S&T#001, Projeto de software com testes unitários
 
Nunca foi tao facil testar
Nunca foi tao facil testarNunca foi tao facil testar
Nunca foi tao facil testar
 
BDD - Behaviour Driven Development
BDD - Behaviour Driven DevelopmentBDD - Behaviour Driven Development
BDD - Behaviour Driven Development
 
TDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVATDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVA
 
Qualidade e Teste de Software - O que preciso saber
Qualidade e Teste de Software - O que preciso saberQualidade e Teste de Software - O que preciso saber
Qualidade e Teste de Software - O que preciso saber
 
SEMINFO 2014 - Teste de software, uma área, uma carreira, um novo perfil.
SEMINFO 2014 -  Teste de software, uma área, uma carreira, um novo perfil.SEMINFO 2014 -  Teste de software, uma área, uma carreira, um novo perfil.
SEMINFO 2014 - Teste de software, uma área, uma carreira, um novo perfil.
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
QA Ninja Conference 2017
QA Ninja Conference 2017QA Ninja Conference 2017
QA Ninja Conference 2017
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados
 
Testes unitários
Testes unitáriosTestes unitários
Testes unitários
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous Delivery
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágil
 

Semelhante a InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Development) - Renato Groffe

Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
Carlos Gonzaga
 

Semelhante a InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Development) - Renato Groffe (20)

Behavior-Driven Development (BDD) - DevOps Summit 2016
Behavior-Driven Development (BDD) - DevOps Summit 2016Behavior-Driven Development (BDD) - DevOps Summit 2016
Behavior-Driven Development (BDD) - DevOps Summit 2016
 
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
 
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
 
TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017
 
Behavior-Driven Development (BDD) - Abril/2017
Behavior-Driven Development (BDD) - Abril/2017Behavior-Driven Development (BDD) - Abril/2017
Behavior-Driven Development (BDD) - Abril/2017
 
Docker para Ambientes de Desenvolvimento e Testes - Open Source Roadshow 2019...
Docker para Ambientes de Desenvolvimento e Testes - Open Source Roadshow 2019...Docker para Ambientes de Desenvolvimento e Testes - Open Source Roadshow 2019...
Docker para Ambientes de Desenvolvimento e Testes - Open Source Roadshow 2019...
 
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Grupo Bandeirantes - ...
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Grupo Bandeirantes - ...Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Grupo Bandeirantes - ...
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Grupo Bandeirantes - ...
 
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...
 
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
 
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Hertz - Janeiro-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Hertz - Janeiro-2018Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Hertz - Janeiro-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Hertz - Janeiro-2018
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ....NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
 
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por FuncionalidadesFeature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
 
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
 
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
 
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
kind + Kubernetes: ambientes locais, testes de integração | DevOps Experience...
kind + Kubernetes: ambientes locais, testes de integração | DevOps Experience...kind + Kubernetes: ambientes locais, testes de integração | DevOps Experience...
kind + Kubernetes: ambientes locais, testes de integração | DevOps Experience...
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 

Mais de iMasters

Mais de iMasters (20)

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
 

InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Development) - Renato Groffe

  • 1.
  • 2. • Microsoft Most Valuable Professional (MVP) • Multi-Plataform Technical Audience Contributor (MTAC) • Mais de 15 anos de experiência na área de Tecnologia • Autor Técnico e Palestrante • Um dos organizadores do Canal .NET Renato Groffe h t t p s : / / m e d i u m . c o m / @ re n a t o . g rof f e /
  • 3. Agenda • Testes de software: uma visão geral • Um pouco sobre BDD (Behavior-Driven Development) • Indo além com BDD...
  • 4. Testes de software: uma visão geral
  • 5. Por que testar um software? • Garantir que o projeto atende às especificações • Detectar falhas e defeitos antes da subida para produção • TDD (Test-Driven Development) é uma das abordagens mais conhecidas
  • 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
  • 7. Test-Driven Development (Red-Green-Refactor) Elaboração de um teste com falhas (Red) Execução com sucesso do teste definido anteriormente (Green) Identificar pontos de melhoria no código (Refactor)
  • 8. Um exemplo (.NET + xUnit)
  • 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?
  • 11. Behavior-Driven Development (BDD) • Uma resposta às dificuldades geradas por TDD • 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 Funcionalidade: Cenário: Dado E E Quando Então E E
  • 13. Behavior-Driven Development (BDD) Elaboração de um teste com falhas (Red) Execução com sucesso do teste definido anteriormente (Green) Identificar pontos de melhoria no código (Refactor) • Ciclo de desenvolvimento muito semelhante àquele existente para TDD
  • 14. Behavior-Driven Development (BDD) • Ciclo de desenvolvimento muito semelhante àquele existente para TDD 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 • As principais plataformas da atualidade contam com opções baseadas no Cucumber
  • 17. Analisando as possibilidades • Frameworks baseados no Cucumber são geralmente empregados no teste de classes • Mas o uso de técnicas de BDD e desses frameworks se resume apenas a isto?
  • 18. Indo além com BDD...
  • 19. O que mais podemos fazer? • Conforme já discutido, user stories podem descrever o comportamento de uma funcionalidade • Este comportamento pode descrever a interação do usuário com uma interface Web • Ou ainda em uma mobile app
  • 20. Há mais possibilidades com o Cucumber! • Frameworks baseados no Cucumber podem ser combinados a outros soluções de testes • Isto é aplicável tanto a aplicações Web, quanto a soluções mobile
  • 21. Um novo exemplo, agora com Selenium...