SlideShare a Scribd company logo
1 of 13
Utilizando BDD com
Specflow e Selenium
para testes web
Cleiton Felipe de Moraes
Líder SoroCódigos / MTAC / GFT
Quem vos fala?
• Cleiton Felipe de Moraes
– Casado com uma blogueira literária,
Pai do Pedro e de dois gatos (Nina e Flash)
– Cruzeirense, Graffiteiro,
skatista(já faz um tempo que não ando rs)
– Líder e Co-Fundador da SoroCódigos Comunidade técnica
de Sorocaba e região e co-organizador da Open Dev Community.
– Associado MTAC (Multi_Platform Technical Audience Contributor)
– Trabalho com desenvolvimento a mais de 8 anos
• Plataforma .Net, PHP, Java e outras mais...
• Atualmente sou Analista Desenvolvedor Sênior na Coreon IT
Agenda
• O que é BDD?
• Onde se aplica o conceito do BDD?
• O que é Specflow/Cucumber?
• Automatizando(Selenium + Specflow)
• Referencias
O que é BDD?
BDD é o acronimo de Behavior Driven Development
Podemos chamar de modelo de desenvolvimento, que
foca em ter uma comunicação maior e mais efetiva
entre as partes:
• Técnica (Desenvolvedores, etc..)
• Qualidade (Analistas de testes, testes, etc...)
• Negócio ou não técnica (Analista de negócios,
funcional e usuário final...)
BDD - Behavior Driven Development
BDD está fundamentada em três princípios simples:
1. Negócio e Tecnologia deveriam “falar” sobre um
sistema da mesma forma;
2. Qualquer sistema deveria ter um valor identificável e
verificável para o “negócio”;
3. Análise, design e planejamento precoce tem, sempre,
retorno questionável.
BDD mata o TDD?
Óbvio que
NÃO!
BDD - Behavior Driven Development
Tecnologia e Negócios falando a mesma língua!
Seu Projeto
Compete ao “Negócio”
Funcionalidades
Cenário
Passos
Compete ao “TI”
Step Definitions
Codificação
Bibliotecas de Automação
O que é Specflow?
“Use SpecFlow to define, manage and execute automated
acceptance tests from business-readable specifications. SpecFlow
acceptance tests follow the BDD paradigm: define specifications
using examples understandable to business users as well as
developers and testers. SpecFlow integrates with Visual Studio, but
can be also used from the command line (e.g. on a build server).”
BDD + Selenim +
Specflow
Demo
Referências
https://specflow.org/
https://www.seleniumhq.org/
https://martinfowler.com/bliki/GivenWhenThen.html
Temos Vagas
Java
.Net
Front-End (Angular, JavaScript)
Cleiton.De-Moraes@gft.com
Onde me encontrar?
facebook.com/cleitonfelipedemoraes
facebook.com/cleitonfmoraes
twitter.com/cleiton_felipe
https://br.linkedin.com/in/cleiton-felipe-moraes-47555720
https://www.instagram.com/cleiton_felipe/
https://github.com/cleitonfelipe
Cleiton.felipe@yahoo.com.br
Cleiton.Moraes@mtac.org.br
Obrigado
@cleiton_felipe

More Related Content

What's hot

Documentação
DocumentaçãoDocumentação
Documentação
Luiz China
 
Principles and dimension of a design system
Principles and dimension of a design systemPrinciples and dimension of a design system
Principles and dimension of a design system
marieli cristine lemes
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
jamersonlima
 

What's hot (20)

BDD JBehave
BDD JBehaveBDD JBehave
BDD JBehave
 
XPCE - Qualidade no Código
XPCE - Qualidade no CódigoXPCE - Qualidade no Código
XPCE - Qualidade no Código
 
Testes Gourmetizados
Testes GourmetizadosTestes Gourmetizados
Testes Gourmetizados
 
Revisão de Código - Uma prática que depende da cultura
Revisão de Código - Uma prática que depende da culturaRevisão de Código - Uma prática que depende da cultura
Revisão de Código - Uma prática que depende da cultura
 
Prototipagem de Software para Devs
Prototipagem de Software para DevsPrototipagem de Software para Devs
Prototipagem de Software para Devs
 
BDD em Ação - Testadores 2015
BDD em Ação - Testadores 2015BDD em Ação - Testadores 2015
BDD em Ação - Testadores 2015
 
Apresentacao IzCode Web
Apresentacao IzCode  WebApresentacao IzCode  Web
Apresentacao IzCode Web
 
Uml
UmlUml
Uml
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
 
TDD e UnitTest em Java
TDD e UnitTest em JavaTDD e UnitTest em Java
TDD e UnitTest em Java
 
Documentação
DocumentaçãoDocumentação
Documentação
 
Design de Interação - Capítulo 8 - Design, Prototipação e Construção -
Design de Interação - Capítulo 8 - Design, Prototipação e Construção - Design de Interação - Capítulo 8 - Design, Prototipação e Construção -
Design de Interação - Capítulo 8 - Design, Prototipação e Construção -
 
Principles and dimension of a design system
Principles and dimension of a design systemPrinciples and dimension of a design system
Principles and dimension of a design system
 
Clean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareClean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de Software
 
Engenharia De Software Baseada Em Componentes
Engenharia De Software Baseada Em ComponentesEngenharia De Software Baseada Em Componentes
Engenharia De Software Baseada Em Componentes
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Engenharia de Software II - Aula 7
Engenharia de Software II - Aula 7Engenharia de Software II - Aula 7
Engenharia de Software II - Aula 7
 
Desenvolvimento Incremental com Test Driven Development
Desenvolvimento Incremental com Test Driven DevelopmentDesenvolvimento Incremental com Test Driven Development
Desenvolvimento Incremental com Test Driven Development
 
Engenharia de Software II - Aula 9
Engenharia de Software II - Aula 9Engenharia de Software II - Aula 9
Engenharia de Software II - Aula 9
 

Similar to Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba

Similar to Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba (20)

Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
 
Xamarin UI Test + BDD Specflow
Xamarin UI Test + BDD SpecflowXamarin UI Test + BDD Specflow
Xamarin UI Test + BDD Specflow
 
Webinar projetos e ti - business intelligence - como fazer
Webinar   projetos e ti - business intelligence - como fazerWebinar   projetos e ti - business intelligence - como fazer
Webinar projetos e ti - business intelligence - como fazer
 
Engenharia Ágil
Engenharia ÁgilEngenharia Ágil
Engenharia Ágil
 
tdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdftdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdf
 
O futuro do arquiteto e das arquiteturas Java Enterprise
O futuro do arquiteto e das arquiteturas Java EnterpriseO futuro do arquiteto e das arquiteturas Java Enterprise
O futuro do arquiteto e das arquiteturas Java Enterprise
 
20141128-Carlos-Eduardo-Capparelli
20141128-Carlos-Eduardo-Capparelli20141128-Carlos-Eduardo-Capparelli
20141128-Carlos-Eduardo-Capparelli
 
Apresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e SeleniumApresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e Selenium
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
Palestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresaPalestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresa
 
Domain driven design - Visão Geral
Domain driven design - Visão GeralDomain driven design - Visão Geral
Domain driven design - Visão Geral
 
Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008
 
Arquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócioArquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócio
 
Operações - Base de Conhecimento - Parte 01
Operações - Base de Conhecimento - Parte 01Operações - Base de Conhecimento - Parte 01
Operações - Base de Conhecimento - Parte 01
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
 
DDD
DDDDDD
DDD
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
 
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
 
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
 
{FAN} Formação de Analistas de Negócios
{FAN} Formação de Analistas de Negócios{FAN} Formação de Analistas de Negócios
{FAN} Formação de Analistas de Negócios
 

More from Cleiton Felipe Moraes

More from Cleiton Felipe Moraes (10)

Xamarin UI Test + Specflow TDC
Xamarin UI Test + Specflow TDCXamarin UI Test + Specflow TDC
Xamarin UI Test + Specflow TDC
 
Criando uma Arquitetura Testável
Criando uma Arquitetura TestávelCriando uma Arquitetura Testável
Criando uma Arquitetura Testável
 
Minha App com Analise de Sentimentos...Pode isso?
Minha App com Analise de Sentimentos...Pode isso?Minha App com Analise de Sentimentos...Pode isso?
Minha App com Analise de Sentimentos...Pode isso?
 
Entendendo o que é o Xamarin e desenvolvendo sua primeira app - Meetup Xamari...
Entendendo o que é o Xamarin e desenvolvendo sua primeira app - Meetup Xamari...Entendendo o que é o Xamarin e desenvolvendo sua primeira app - Meetup Xamari...
Entendendo o que é o Xamarin e desenvolvendo sua primeira app - Meetup Xamari...
 
Xamarin UI Test e VS Mobile Center
Xamarin UI Test e VS Mobile CenterXamarin UI Test e VS Mobile Center
Xamarin UI Test e VS Mobile Center
 
Entendendo o Xamarin UiTest no TDC
Entendendo o Xamarin UiTest no TDCEntendendo o Xamarin UiTest no TDC
Entendendo o Xamarin UiTest no TDC
 
Bdd-Visual Studio Summit 2015
Bdd-Visual Studio Summit 2015Bdd-Visual Studio Summit 2015
Bdd-Visual Studio Summit 2015
 
Azure blob xamarin-tdc2016
Azure blob xamarin-tdc2016Azure blob xamarin-tdc2016
Azure blob xamarin-tdc2016
 
Reconhecimento de voz no Windows Phone
Reconhecimento de voz no Windows PhoneReconhecimento de voz no Windows Phone
Reconhecimento de voz no Windows Phone
 
Desenvolvimento para windows phone
Desenvolvimento para windows phoneDesenvolvimento para windows phone
Desenvolvimento para windows phone
 

Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba

Editor's Notes

  1. Behavior Driven Development (BDD ou ainda uma tradução Desenvolvimento Guiado por Comportamento) é uma técnica de desenvolvimento Ágil que encoraja colaboração entre desenvolvedores, setores de qualidade e pessoas não-técnicas ou de negócios num projeto de software. Foi originalmente concebido em 2003, por Dan North [1] como uma resposta à Test Driven Development (Desenvolvimento Guiado por Testes), e tem se expandido bastante nos últimos anos.[2] Os focos do BDD são a linguagem e as interações usadas no processo de desenvolvimento de software. Desenvolvedores usam sua língua nativa em combinação com a linguagem ubíqua (ubiquitous language), que lhes permite concentrar nas razões pelas quais o código deve ser criado, e não em detalhes técnicos, além de minimizar traduções entre a linguagem técnica na qual o código é escrito e outras linguagens de domínio, usuários, clientes, gerência do projeto, etc. Dan North criou o primeiro framework de BDD, JBehave[1], em Java, seguido de um framework em Ruby a nível de história chamado RBehave[1], o qual foi depois incorporado ao projeto RSpec. Ele também trabalhou com David Chelimsky, Aslak Hellesøy e outros para desenvolver o framework RSpec e também escrever "The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends". O primeiro framework baseado em histórias no RSpec foi posteriormente substituído pelo Cucumber[3], desenvolvido principalmente por Alask Hellesøy. Referencia: https://pt.wikipedia.org/wiki/Behavior_Driven_Development
  2. BDD está fundamentada em três princípios simples: Negócio e Tecnologia deveriam “falar” sobre um sistema da mesma forma; Qualquer sistema deveria ter um valor identificável e verificável para o “negócio”; Análise, design e planejamento precoce tem, sempre, retorno questionável.
  3. BDD expressa mais a parte de negócio do que tecnologia Compete ao “negócio” a definição de: Features – representam, em alto nível, os principais características do sistema – correspondem a uma descrição resumida dos “valores” que estamos entregando (ex: autenticação de usuários, cadastro de clientes, cálculo de imposto, emissão de nota); Cenários – descrições de “casos de uso”, com pré-requisitos, ações e resultado esperado (ex: cadastro de novo usuário, usuário esqueceu senha, etc.) Passos/Etapas (steps) – interações entre agente externo (usuário ou sistema) e resultado esperado para um dado cenário. Compete ao “TI”: Definições para etapas (Step definitions) – correspondências, usando um framework de testes, entre testes de unidade e etapas definidas pelo negócio; Código – implementação efetiva de código para atender as definições do negócio; Biblioteca de automação (opcional) – para simular, caso necessário, ações de um usuário na interface do sistema (WatiN, por exemplo). BDD garante “documentação viva” BDD associa os benefícios de uma documentação formal, escrita e mantida pelo “negócio”, com testes de unidade que “demonstram” que essa documentação é efetivamente válida. Na prática, isso garante que a documentação deixa de ser um registro estático, que se converte em algo gradualmente ultrapassado, em um artefato “vivo” que reflete constantemente o estado atual de um projeto.
  4. Ref: http://www.specflow.org/ O Specflow é o Cucumber for .net quem vem do Ruby já conhece o cucumber e o specflow tem a mesmo função que é disponibilizar um framework que facilita a vida dos desenvolvedores testes e pessoas de negócios para uma comunicação mais simples em tempo de desenvolvimento da aplicação. Trazendo com sigo o tipo de linguagem chamado Gherkin