SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
BDD com
Marcelo Toledo - QA - IaaS
Agenda
- O que é BDD e Cucumber?
- Motivação
- Case
- Considerações
O que é BDD?
Behavior Driven Development é uma técnica
que evoluiu a partir do TDD
É uma descrição do comportamento do
sistema e a partir disso, se desenvolve o
sistema
Colaboração entre Dev + QA + P.O. + UX
O que é Cucumber
É um framework, que surgiu da evolução de:
Jbehave -> Rbehave -> RSpec -> Cucumber
Características
Especificação do comportamento escrita em linguagem natural.
A especificação se torna teste e critério de aceitação, descrevendo
exemplos de comportamento do software antes da implementação
(feedback cedo).
Como qualquer teste automatizado, esses testes são usados na
regressão durante a evolução do software.
É uma especificação baseada no valor do negócio através de
exemplos de uso e de fácil compreensão.
QA x QC ?
Motivação
Motivação
- QC - Utilizado no processo de desenvolvimento
de software tradicional (RUP, Waterfall, etc)
- QA - Processo Ágil
- Precisamos alterar o processo de teste na
Locaweb, deixar de ser QC e realmente
começar a ser QA.
Motivação
O que estamos deixando para trás:
nossa “pirâmide” atual:
Motivação
Para onde estamos
caminhando:
CASE
- POC em IaaS
Há uma série de "combos" para se usar o BDD com a
linguagem Ruby:
- RSpec + Selenium Webdriver (PhantonJS??)
-> Cucumber + RSpec + Capybara + PhantonJS (ou Selenium)
CASE
Lições aprendidas:
- Escrever features declarativas
- Inserir narrativa nas features
- Evitar steps conjuntivos (mais de uma ação no
mesmo step)
- Reusar step definitions (utilizar variáveis nos steps)
- Não abusar do uso de backgrounds
CASE
Iniciamos com apenas uma feature: BACKUP
Temos por enquanto:
19 scenarios
147 steps
3m32.067s
CASE
Exemplo no Jenkins e estrutura do projeto
Obstáculos
- Identificação de um padrão inicial
- Indefinição quanto ao local do projeto
- Aprendizado do time
- Quebra de paradigma - resistência
(aprendizado, já faço teste, tempo de feedback)
Obstáculos
- Demora na implementação e entrega
(como qualquer teste realizado, ganha-se na frente)
- Elaboração de cenários errada pode levar a adoção ao
fracasso (nem todos os testes devem ser automatizados)
- Nem todo teste é automatizável (?????)
Vantagens
- Cucumber facilita outside-in, mas não força você a usá-
la desta forma
- Fornece testes legíveis e atrativos para todas as partes
do time inclusive as não técnicas, o que possibilita a
inclusão de todos neste processo (QA, PO, UX)
- Aumento de comunicação, amenizando ambiguidade
- Regressão = garantia
Vantagens
Ajuda o time a:
- Compreender melhor os requisitos através
de exemplos.
- Ter uma documentação viva (executável) e
de fácil leitura.
- Mais uma forma de testes de regressão.
Considerações finais
- Testes não garantem ausência de defeitos.
- TDD contribui para qualidade interna e reduz custo e
tempo de manutenção do produto, portanto, pode ser
aplicado também.
- BDD contribui para qualidade externa e reduz custo e
tempo de revalidação das funcionalidades do produto.
- Eliminar gargalo em QA.
- Caminhar para Continuous Delivery/Deployment.
Testes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJs

Más contenido relacionado

La actualidad más candente

TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesSamanta Cicilia
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de softwareHeider Lopes
 
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile TestingDevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile TestingSamanta Cicilia
 
MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingSamanta Cicilia
 
Meetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por ExemploMeetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por ExemploSamanta Cicilia
 
WTM - Workshop Agile Testing
WTM - Workshop Agile TestingWTM - Workshop Agile Testing
WTM - Workshop Agile TestingSamanta Cicilia
 
Test-Driven Develpment - TDD
Test-Driven Develpment - TDDTest-Driven Develpment - TDD
Test-Driven Develpment - TDDKleber Bernardo
 
ATC BSB - Agile Testing
ATC BSB - Agile Testing ATC BSB - Agile Testing
ATC BSB - Agile Testing Samanta Cicilia
 
Visual Regression Tests - Dando um Upload nos seus testes de UI!
Visual Regression Tests - Dando um Upload nos seus testes de UI!Visual Regression Tests - Dando um Upload nos seus testes de UI!
Visual Regression Tests - Dando um Upload nos seus testes de UI!Mariana Elisa Moisés , CTFL-AT,MBA
 
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpsTDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpstdc-globalcode
 
Papel do tester em projeto scrum
Papel do tester em projeto scrumPapel do tester em projeto scrum
Papel do tester em projeto scrumVinicius Sabadoti
 
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 2016Renato Groff
 

La actualidad más candente (19)

TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software
 
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile TestingDevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
 
O papel do qa (testador) em um time ágil
O papel do qa (testador) em um time ágilO papel do qa (testador) em um time ágil
O papel do qa (testador) em um time ágil
 
WTM - Entrega Contínua
WTM - Entrega ContínuaWTM - Entrega Contínua
WTM - Entrega Contínua
 
MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression Testing
 
Meetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por ExemploMeetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por Exemplo
 
Testes Automatizados
Testes AutomatizadosTestes Automatizados
Testes Automatizados
 
WTM - Workshop Agile Testing
WTM - Workshop Agile TestingWTM - Workshop Agile Testing
WTM - Workshop Agile Testing
 
Test-Driven Develpment - TDD
Test-Driven Develpment - TDDTest-Driven Develpment - TDD
Test-Driven Develpment - TDD
 
ATC BSB - Agile Testing
ATC BSB - Agile Testing ATC BSB - Agile Testing
ATC BSB - Agile Testing
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Visual Regression Tests - Dando um Upload nos seus testes de UI!
Visual Regression Tests - Dando um Upload nos seus testes de UI!Visual Regression Tests - Dando um Upload nos seus testes de UI!
Visual Regression Tests - Dando um Upload nos seus testes de UI!
 
Testes unitários e Mocks
Testes unitários e MocksTestes unitários e Mocks
Testes unitários e Mocks
 
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpsTDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
 
TDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVATDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVA
 
Papel do tester em projeto scrum
Papel do tester em projeto scrumPapel do tester em projeto scrum
Papel do tester em projeto scrum
 
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
 
BDD em Ação
BDD em AçãoBDD em Ação
BDD em Ação
 

Destacado

Automatização de testes funcionais em dispositivos móveis utilizando a técnic...
Automatização de testes funcionais em dispositivos móveis utilizando a técnic...Automatização de testes funcionais em dispositivos móveis utilizando a técnic...
Automatização de testes funcionais em dispositivos móveis utilizando a técnic...Rafael Chiavegatto
 
Jefferson Andrade - BDD - Behavior-Driven Development - ITA
Jefferson Andrade - BDD - Behavior-Driven Development - ITAJefferson Andrade - BDD - Behavior-Driven Development - ITA
Jefferson Andrade - BDD - Behavior-Driven Development - ITAJefferson Andrade
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 
JavaScript + Jenkins = Winning!
JavaScript + Jenkins = Winning!JavaScript + Jenkins = Winning!
JavaScript + Jenkins = Winning!Eric Wendelin
 
Test your Javascript! v1.1
Test your Javascript! v1.1Test your Javascript! v1.1
Test your Javascript! v1.1Eric Wendelin
 

Destacado (6)

Automatização de testes funcionais em dispositivos móveis utilizando a técnic...
Automatização de testes funcionais em dispositivos móveis utilizando a técnic...Automatização de testes funcionais em dispositivos móveis utilizando a técnic...
Automatização de testes funcionais em dispositivos móveis utilizando a técnic...
 
TDDing com Javascript
TDDing com JavascriptTDDing com Javascript
TDDing com Javascript
 
Jefferson Andrade - BDD - Behavior-Driven Development - ITA
Jefferson Andrade - BDD - Behavior-Driven Development - ITAJefferson Andrade - BDD - Behavior-Driven Development - ITA
Jefferson Andrade - BDD - Behavior-Driven Development - ITA
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
JavaScript + Jenkins = Winning!
JavaScript + Jenkins = Winning!JavaScript + Jenkins = Winning!
JavaScript + Jenkins = Winning!
 
Test your Javascript! v1.1
Test your Javascript! v1.1Test your Javascript! v1.1
Test your Javascript! v1.1
 

Similar a Testes utilizando cucumber + PhantomJs

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égiasKleitor Franklint Correa Araujo
 
Desenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeDesenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeUniversidade Tiradentes
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Diego Pacheco
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
 
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/2016Renato Groff
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)André Dias
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareNorberto Santos
 
Apresentação jasmine
Apresentação jasmineApresentação jasmine
Apresentação jasmineRangel Javier
 
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Renato Groff
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Boas práticas para deploy contínuo com drupal
Boas práticas para deploy contínuo com drupalBoas práticas para deploy contínuo com drupal
Boas práticas para deploy contínuo com drupalRenato Vasconcellos Gomes
 

Similar a Testes utilizando cucumber + PhantomJs (20)

Metodologias Ageis
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
 
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
 
Teste Driven Development
Teste Driven DevelopmentTeste Driven Development
Teste Driven Development
 
Desenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeDesenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por teste
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
Qaladies apresentacao
Qaladies apresentacaoQaladies apresentacao
Qaladies apresentacao
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
 
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
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
Maio 2016 - O QA em um Time Ágil
Maio 2016 - O QA em um Time Ágil Maio 2016 - O QA em um Time Ágil
Maio 2016 - O QA em um Time Ágil
 
Apresentação jasmine
Apresentação jasmineApresentação jasmine
Apresentação jasmine
 
Workshop ietec Devops Testing
Workshop ietec Devops TestingWorkshop ietec Devops Testing
Workshop ietec Devops Testing
 
Métodos Ágeis - Aula02
Métodos Ágeis - Aula02Métodos Ágeis - Aula02
Métodos Ágeis - Aula02
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Apresentação testes white box
Apresentação testes white boxApresentação testes white box
Apresentação testes white box
 
ES4.ppt
ES4.pptES4.ppt
ES4.ppt
 
Boas práticas para deploy contínuo com drupal
Boas práticas para deploy contínuo com drupalBoas práticas para deploy contínuo com drupal
Boas práticas para deploy contínuo com drupal
 

Más de Locaweb

Random testing
Random testingRandom testing
Random testingLocaweb
 
Princípios de Concorrência em Ruby e Além
Princípios de Concorrência em Ruby e AlémPrincípios de Concorrência em Ruby e Além
Princípios de Concorrência em Ruby e AlémLocaweb
 
AngularJS
AngularJSAngularJS
AngularJSLocaweb
 
Celery for SysAdmins
Celery for SysAdminsCelery for SysAdmins
Celery for SysAdminsLocaweb
 
Isolamento e mvcc
Isolamento e mvccIsolamento e mvcc
Isolamento e mvccLocaweb
 
Overview Sobre Varnish
Overview Sobre VarnishOverview Sobre Varnish
Overview Sobre VarnishLocaweb
 
Tech talkrubocop
Tech talkrubocopTech talkrubocop
Tech talkrubocopLocaweb
 
Ambient Light Events- Wylkon Queiroz
Ambient Light Events- Wylkon QueirozAmbient Light Events- Wylkon Queiroz
Ambient Light Events- Wylkon QueirozLocaweb
 
Lua tech talk
Lua tech talkLua tech talk
Lua tech talkLocaweb
 
Uso de estatísticas pelo postgre sql
Uso de estatísticas pelo postgre sqlUso de estatísticas pelo postgre sql
Uso de estatísticas pelo postgre sqlLocaweb
 
Linux cgroups and namespaces
Linux cgroups and namespacesLinux cgroups and namespaces
Linux cgroups and namespacesLocaweb
 
Sistemas Distribuidos
Sistemas DistribuidosSistemas Distribuidos
Sistemas DistribuidosLocaweb
 
Soluções para sua empresa vender na Internet
Soluções para sua empresa vender na InternetSoluções para sua empresa vender na Internet
Soluções para sua empresa vender na InternetLocaweb
 
Comercio eletronico - Dicas práticas
Comercio eletronico - Dicas práticasComercio eletronico - Dicas práticas
Comercio eletronico - Dicas práticasLocaweb
 
API Do Email Marketing Locaweb
API Do Email Marketing LocawebAPI Do Email Marketing Locaweb
API Do Email Marketing LocawebLocaweb
 

Más de Locaweb (16)

Random testing
Random testingRandom testing
Random testing
 
Princípios de Concorrência em Ruby e Além
Princípios de Concorrência em Ruby e AlémPrincípios de Concorrência em Ruby e Além
Princípios de Concorrência em Ruby e Além
 
AngularJS
AngularJSAngularJS
AngularJS
 
Celery for SysAdmins
Celery for SysAdminsCelery for SysAdmins
Celery for SysAdmins
 
Isolamento e mvcc
Isolamento e mvccIsolamento e mvcc
Isolamento e mvcc
 
Overview Sobre Varnish
Overview Sobre VarnishOverview Sobre Varnish
Overview Sobre Varnish
 
Freenas
FreenasFreenas
Freenas
 
Tech talkrubocop
Tech talkrubocopTech talkrubocop
Tech talkrubocop
 
Ambient Light Events- Wylkon Queiroz
Ambient Light Events- Wylkon QueirozAmbient Light Events- Wylkon Queiroz
Ambient Light Events- Wylkon Queiroz
 
Lua tech talk
Lua tech talkLua tech talk
Lua tech talk
 
Uso de estatísticas pelo postgre sql
Uso de estatísticas pelo postgre sqlUso de estatísticas pelo postgre sql
Uso de estatísticas pelo postgre sql
 
Linux cgroups and namespaces
Linux cgroups and namespacesLinux cgroups and namespaces
Linux cgroups and namespaces
 
Sistemas Distribuidos
Sistemas DistribuidosSistemas Distribuidos
Sistemas Distribuidos
 
Soluções para sua empresa vender na Internet
Soluções para sua empresa vender na InternetSoluções para sua empresa vender na Internet
Soluções para sua empresa vender na Internet
 
Comercio eletronico - Dicas práticas
Comercio eletronico - Dicas práticasComercio eletronico - Dicas práticas
Comercio eletronico - Dicas práticas
 
API Do Email Marketing Locaweb
API Do Email Marketing LocawebAPI Do Email Marketing Locaweb
API Do Email Marketing Locaweb
 

Último

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 

Último (8)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Testes utilizando cucumber + PhantomJs

  • 2. Agenda - O que é BDD e Cucumber? - Motivação - Case - Considerações
  • 3. O que é BDD? Behavior Driven Development é uma técnica que evoluiu a partir do TDD É uma descrição do comportamento do sistema e a partir disso, se desenvolve o sistema Colaboração entre Dev + QA + P.O. + UX
  • 4. O que é Cucumber É um framework, que surgiu da evolução de: Jbehave -> Rbehave -> RSpec -> Cucumber
  • 5. Características Especificação do comportamento escrita em linguagem natural. A especificação se torna teste e critério de aceitação, descrevendo exemplos de comportamento do software antes da implementação (feedback cedo). Como qualquer teste automatizado, esses testes são usados na regressão durante a evolução do software. É uma especificação baseada no valor do negócio através de exemplos de uso e de fácil compreensão.
  • 6. QA x QC ? Motivação
  • 7. Motivação - QC - Utilizado no processo de desenvolvimento de software tradicional (RUP, Waterfall, etc) - QA - Processo Ágil - Precisamos alterar o processo de teste na Locaweb, deixar de ser QC e realmente começar a ser QA.
  • 8. Motivação O que estamos deixando para trás: nossa “pirâmide” atual:
  • 10. CASE - POC em IaaS Há uma série de "combos" para se usar o BDD com a linguagem Ruby: - RSpec + Selenium Webdriver (PhantonJS??) -> Cucumber + RSpec + Capybara + PhantonJS (ou Selenium)
  • 11. CASE Lições aprendidas: - Escrever features declarativas - Inserir narrativa nas features - Evitar steps conjuntivos (mais de uma ação no mesmo step) - Reusar step definitions (utilizar variáveis nos steps) - Não abusar do uso de backgrounds
  • 12. CASE Iniciamos com apenas uma feature: BACKUP Temos por enquanto: 19 scenarios 147 steps 3m32.067s
  • 13. CASE Exemplo no Jenkins e estrutura do projeto
  • 14. Obstáculos - Identificação de um padrão inicial - Indefinição quanto ao local do projeto - Aprendizado do time - Quebra de paradigma - resistência (aprendizado, já faço teste, tempo de feedback)
  • 15. Obstáculos - Demora na implementação e entrega (como qualquer teste realizado, ganha-se na frente) - Elaboração de cenários errada pode levar a adoção ao fracasso (nem todos os testes devem ser automatizados) - Nem todo teste é automatizável (?????)
  • 16. Vantagens - Cucumber facilita outside-in, mas não força você a usá- la desta forma - Fornece testes legíveis e atrativos para todas as partes do time inclusive as não técnicas, o que possibilita a inclusão de todos neste processo (QA, PO, UX) - Aumento de comunicação, amenizando ambiguidade - Regressão = garantia
  • 17. Vantagens Ajuda o time a: - Compreender melhor os requisitos através de exemplos. - Ter uma documentação viva (executável) e de fácil leitura. - Mais uma forma de testes de regressão.
  • 18. Considerações finais - Testes não garantem ausência de defeitos. - TDD contribui para qualidade interna e reduz custo e tempo de manutenção do produto, portanto, pode ser aplicado também. - BDD contribui para qualidade externa e reduz custo e tempo de revalidação das funcionalidades do produto. - Eliminar gargalo em QA. - Caminhar para Continuous Delivery/Deployment.