SlideShare uma empresa Scribd logo
1 de 14
SpecFlow (Specification-By-Example)
Criando uma “ponte” entre analistas e os desenvolvedores
através de regras de negócios legíveis e de exemplos
SpecFlow é um framework inspirado no Cucumber , ou seja, podemos
descrever cenário reais de uso de forma estruturada. Também é
possível descrever nossos cenários em diversos idiomas.
 O SpecFlow é um Plug-In para o Visual Studio e um framework de execução de
Acceptance Teste Driver Development (ATDD)” Desenvolvimento Orientado a
Testes de Aceitação” e Behavior Driven Development (BDD) “Desenvolvimento
Guiado por Comportamento)”
 Ele pode ser integrado com Nunit, MSTest, xUnit.
 Não funciona sozinho, ele precisa de uma ferramenta que faça a interação com o
browser com o *Selenium
 SpecFlow tem por premissa criar uma “ponte” entre analistas e os
desenvolvedores através de regras de negócios legíveis e de exemplos.
 O objetivo é trabalhar de fora pra dentro, começando pela história.
 A missão do SpecFlow é fornecer uma abordagem sem atrito através da
especificação.
O que é SpecFlow?
O mais interessante de trabalhar com SpecFlow é a facilidade
que ele tem de chamar um cenário ou outro através de
frases, frases essas que são nada mais nada menos que os
próprios critérios de aceite de uma estória.
O que é SpecFlow?
ENTÃO...
 Por onde começar?
Outside-in (fora p/dentro)
 O que testar?
User Story (história do usuário)
 O que não testar?
O resto
O que é SpecFlow?
As empresas de desenvolvimento de software sofriam para aprovar com o cliente
quando um software ou mesmo uma funcionalidade estava completa e
principalmente se ela estava se comportando como deveria.
Nesse ponto a abordagem de User Stories implementa os critérios de aceite
(acceptance criteria ou acceptance testing) que é uma abordagem bem parecida
com o nosso teste tradicional usando test cases, ou seja, são escritos testes e
executados manualmente após a implementação de alguma feature.
Histórias de usuário
É aí onde serão definidos as nossas User Stories e o comportamento de nossa App.
Aí que está o poder do BDD: Descrever comportamentos em uma linguagem mais
alto nível e testar automaticamente para garantir que estamos desenvolvendo
corretamente.
Observe que isto possibilita ao desenvolvedor aumentar seu entendimento de
negócio da aplicação. Além de favorecer os testes de regressão feitos
posteriormente.
Histórias de usuário
Apesar das pessoas terem algum foco específico, porque estudaram mais uma
determinada área, todas elas são consideras desenvolvedores dentro de um time
Ágil, porque todos Desenvolvem Software, utilizando seu conhecimento.
Teste em par
Visão de Time ágil
Baseado no livro da Lisa Crispin – Agile Testing
Funcionalidade: <descrição da funcionalidade>
Como um <usuário/ator>
Eu quero <meta a ser alcançada>
De modo que <a razão para alcançar a meta>
Cenário: <descrição do teste>
Dado <um estado conhecido>
Quando <um determinado evento ocorre>
Então <isso deve ocorrer>
Estrutura do Specflow
 Funcionalidade: Formulário de Contato
 Eu como usuário
 Preciso contatar o prestador de serviço
 Para que seja necessário um possível retorno.
 Preenchimento do formulario corretamente
 que eu esteja no site jobmidia
 eu clicar no link contato e preencher o formulario
 o site ira informar a mensagem 'Sua mensagem foi
enviada com sucesso.'
Exemplo VISUAL STUDIO
Deu pra notar como isso pode facilitar os testes
funcionais em uma aplicação maior? É uma vantagem e
ganho de tempo enorme. Somando isso ao utilizar com
um servidor de integração contínua (TFS ou JENKINS),
sua aplicação está bem mais testável, além de mapear
pontos mais sensíveis a quebra do sistema.
DÚVIDAS
Obrigado!
Contatos:
franklin.araujo@doqconsulting.com.br
Facebook: @doqconsulting
Skype:faraujo52
Cod GitHub: https://github.com/nilknarf52/SpecFlow
Site SpecFlow : http://www.specflow.org/
BDD: http://pt.slideshare.net/CintiaArmesto/bdd-com-spec-flow
Lisa Crispin: http://lisacrispin.com/

Mais conteúdo relacionado

Mais procurados

Introdução a testes unitários com jUnit
Introdução a testes unitários com jUnitIntrodução a testes unitários com jUnit
Introdução a testes unitários com jUnitLeonardo Soares
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de softwareAlex Camargo
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례if kakao
 
Test automation using selenium
Test automation using seleniumTest automation using selenium
Test automation using seleniumshreyas JC
 
Manual de instalação do xampp
Manual de instalação do xamppManual de instalação do xampp
Manual de instalação do xamppZe'eduardo Silva
 
Anatomia de uma entrevista
Anatomia de uma entrevistaAnatomia de uma entrevista
Anatomia de uma entrevistaAllan Pires
 
Testing with JUnit 5 and Spring - Spring I/O 2022
Testing with JUnit 5 and Spring - Spring I/O 2022Testing with JUnit 5 and Spring - Spring I/O 2022
Testing with JUnit 5 and Spring - Spring I/O 2022Sam Brannen
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilAriane Izac
 
Introduction to Automation Testing and Selenium overiew
Introduction to Automation Testing and Selenium overiewIntroduction to Automation Testing and Selenium overiew
Introduction to Automation Testing and Selenium overiewDisha Srivastava
 
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Cypress e2e automation testing -  day1 intor by: Hassan HameedCypress e2e automation testing -  day1 intor by: Hassan Hameed
Cypress e2e automation testing - day1 intor by: Hassan HameedHassan Muhammad
 
Selenium Architecture
Selenium ArchitectureSelenium Architecture
Selenium Architecturerohitnayak
 

Mais procurados (20)

Teste de software
Teste de softwareTeste de software
Teste de software
 
Aula01-JavaScript
Aula01-JavaScriptAula01-JavaScript
Aula01-JavaScript
 
Introdução a testes unitários com jUnit
Introdução a testes unitários com jUnitIntrodução a testes unitários com jUnit
Introdução a testes unitários com jUnit
 
Jenkins api
Jenkins apiJenkins api
Jenkins api
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de software
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Test link
Test linkTest link
Test link
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
 
Component testing with cypress
Component testing with cypressComponent testing with cypress
Component testing with cypress
 
Cypress E2E Testing
Cypress E2E TestingCypress E2E Testing
Cypress E2E Testing
 
Test automation using selenium
Test automation using seleniumTest automation using selenium
Test automation using selenium
 
Manual de instalação do xampp
Manual de instalação do xamppManual de instalação do xampp
Manual de instalação do xampp
 
Anatomia de uma entrevista
Anatomia de uma entrevistaAnatomia de uma entrevista
Anatomia de uma entrevista
 
Padrões de Projeto de Software
Padrões de Projeto de SoftwarePadrões de Projeto de Software
Padrões de Projeto de Software
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Testing with JUnit 5 and Spring - Spring I/O 2022
Testing with JUnit 5 and Spring - Spring I/O 2022Testing with JUnit 5 and Spring - Spring I/O 2022
Testing with JUnit 5 and Spring - Spring I/O 2022
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágil
 
Introduction to Automation Testing and Selenium overiew
Introduction to Automation Testing and Selenium overiewIntroduction to Automation Testing and Selenium overiew
Introduction to Automation Testing and Selenium overiew
 
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Cypress e2e automation testing -  day1 intor by: Hassan HameedCypress e2e automation testing -  day1 intor by: Hassan Hameed
Cypress e2e automation testing - day1 intor by: Hassan Hameed
 
Selenium Architecture
Selenium ArchitectureSelenium Architecture
Selenium Architecture
 

Destaque

Acceptance test driven development (attd) cycle
Acceptance test driven development (attd) cycleAcceptance test driven development (attd) cycle
Acceptance test driven development (attd) cycleGiuseppe Torchia
 
ATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven DevelopmentATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven DevelopmentNaresh Jain
 
Introduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven DevelopmentIntroduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven DevelopmentElisabeth Hendrickson
 
Moving to tdd bdd
Moving to tdd bddMoving to tdd bdd
Moving to tdd bddKim Carter
 
Acceptance Test Driven Development With Spec Flow And Friends
Acceptance Test Driven Development With Spec Flow And FriendsAcceptance Test Driven Development With Spec Flow And Friends
Acceptance Test Driven Development With Spec Flow And FriendsChristopher Bartling
 
Acceptance Test Driven Development at StarWest 2014
Acceptance Test Driven Development at StarWest 2014Acceptance Test Driven Development at StarWest 2014
Acceptance Test Driven Development at StarWest 2014jaredrrichardson
 
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NETNDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NETjbandi
 
Agile Acceptance testing with Fitnesse
Agile Acceptance testing with FitnesseAgile Acceptance testing with Fitnesse
Agile Acceptance testing with FitnesseClareMcLennan
 
Writing Acceptance Tests Using Fitnesse
Writing Acceptance Tests Using FitnesseWriting Acceptance Tests Using Fitnesse
Writing Acceptance Tests Using FitnesseFacundo Farias
 
How To Fit Testing Into The Iteration
How To Fit Testing Into The IterationHow To Fit Testing Into The Iteration
How To Fit Testing Into The IterationRally Software
 
SpecFlow and some things I've picked up
SpecFlow and some things I've picked upSpecFlow and some things I've picked up
SpecFlow and some things I've picked upMarcus Hammarberg
 
ATDD in Practice
ATDD in PracticeATDD in Practice
ATDD in PracticeSteven Mak
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Gáspár Nagy
 
ATDD Using Robot Framework
ATDD Using Robot FrameworkATDD Using Robot Framework
ATDD Using Robot FrameworkPekka Klärck
 
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...Zohirul Alam Tiemoon
 
REST API testing with SpecFlow
REST API testing with SpecFlowREST API testing with SpecFlow
REST API testing with SpecFlowAiste Stikliute
 
How to Automate API Testing
How to Automate API TestingHow to Automate API Testing
How to Automate API TestingBruno Pedro
 

Destaque (20)

Acceptance test driven development (attd) cycle
Acceptance test driven development (attd) cycleAcceptance test driven development (attd) cycle
Acceptance test driven development (attd) cycle
 
ATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven DevelopmentATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven Development
 
Introduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven DevelopmentIntroduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven Development
 
Specflow
SpecflowSpecflow
Specflow
 
Moving to tdd bdd
Moving to tdd bddMoving to tdd bdd
Moving to tdd bdd
 
ATDD in practice
ATDD in practiceATDD in practice
ATDD in practice
 
Acceptance Test Driven Development With Spec Flow And Friends
Acceptance Test Driven Development With Spec Flow And FriendsAcceptance Test Driven Development With Spec Flow And Friends
Acceptance Test Driven Development With Spec Flow And Friends
 
Acceptance Test Driven Development at StarWest 2014
Acceptance Test Driven Development at StarWest 2014Acceptance Test Driven Development at StarWest 2014
Acceptance Test Driven Development at StarWest 2014
 
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NETNDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
 
Agile Acceptance testing with Fitnesse
Agile Acceptance testing with FitnesseAgile Acceptance testing with Fitnesse
Agile Acceptance testing with Fitnesse
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
 
Writing Acceptance Tests Using Fitnesse
Writing Acceptance Tests Using FitnesseWriting Acceptance Tests Using Fitnesse
Writing Acceptance Tests Using Fitnesse
 
How To Fit Testing Into The Iteration
How To Fit Testing Into The IterationHow To Fit Testing Into The Iteration
How To Fit Testing Into The Iteration
 
SpecFlow and some things I've picked up
SpecFlow and some things I've picked upSpecFlow and some things I've picked up
SpecFlow and some things I've picked up
 
ATDD in Practice
ATDD in PracticeATDD in Practice
ATDD in Practice
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
 
ATDD Using Robot Framework
ATDD Using Robot FrameworkATDD Using Robot Framework
ATDD Using Robot Framework
 
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
 
REST API testing with SpecFlow
REST API testing with SpecFlowREST API testing with SpecFlow
REST API testing with SpecFlow
 
How to Automate API Testing
How to Automate API TestingHow to Automate API Testing
How to Automate API Testing
 

Semelhante a Specflow - Criando uma ponte entre desenvolvedores.

Fdd em uma casca de banana
Fdd em uma casca de bananaFdd em uma casca de banana
Fdd em uma casca de bananaejedelmal
 
BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015Renato Groff
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)Renato Groff
 
Specificationby example
Specificationby example Specificationby example
Specificationby example Laís Berlatto
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeisQualister
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Fábio Nogueira de Lucena
 
Requisitos no Processo Iterativo
Requisitos no Processo IterativoRequisitos no Processo Iterativo
Requisitos no Processo IterativoFatec
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes ExploratóriosAlan Carlos
 
Workshop Agilizando Projetos com SCRUM
Workshop Agilizando Projetos com SCRUMWorkshop Agilizando Projetos com SCRUM
Workshop Agilizando Projetos com SCRUMElumini Outdoing IT
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilElias Nogueira
 
Agile Brazil 2018
Agile Brazil 2018Agile Brazil 2018
Agile Brazil 2018Karla Silva
 
[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018Larissa Soares
 

Semelhante a Specflow - Criando uma ponte entre desenvolvedores. (20)

Desenvolvimento ágil de software
Desenvolvimento ágil de softwareDesenvolvimento ágil de software
Desenvolvimento ágil de software
 
BDD com SpecFlow
BDD com SpecFlowBDD com SpecFlow
BDD com SpecFlow
 
Bdd com spec flow
Bdd com spec flowBdd com spec flow
Bdd com spec flow
 
Fdd em uma casca de banana
Fdd em uma casca de bananaFdd em uma casca de banana
Fdd em uma casca de banana
 
BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)
 
Specificationby example
Specificationby example Specificationby example
Specificationby example
 
Julho 2016 - BDD com SpecFlow
Julho 2016 - BDD com SpecFlowJulho 2016 - BDD com SpecFlow
Julho 2016 - BDD com SpecFlow
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeis
 
Xamarin UI Test + BDD Specflow
Xamarin UI Test + BDD SpecflowXamarin UI Test + BDD Specflow
Xamarin UI Test + BDD Specflow
 
DevQA: UI Testing , como fazer?
DevQA: UI Testing , como fazer?DevQA: UI Testing , como fazer?
DevQA: UI Testing , como fazer?
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Requisitos no Processo Iterativo
Requisitos no Processo IterativoRequisitos no Processo Iterativo
Requisitos no Processo Iterativo
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes Exploratórios
 
Workshop Agilizando Projetos com SCRUM
Workshop Agilizando Projetos com SCRUMWorkshop Agilizando Projetos com SCRUM
Workshop Agilizando Projetos com SCRUM
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
 
Agile Brazil 2018
Agile Brazil 2018Agile Brazil 2018
Agile Brazil 2018
 
[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018
 

Último

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
 
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
 
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
 
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
 
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
 
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
 

Último (6)

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
 
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
 
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
 
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
 
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
 
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
 

Specflow - Criando uma ponte entre desenvolvedores.

  • 1. SpecFlow (Specification-By-Example) Criando uma “ponte” entre analistas e os desenvolvedores através de regras de negócios legíveis e de exemplos
  • 2. SpecFlow é um framework inspirado no Cucumber , ou seja, podemos descrever cenário reais de uso de forma estruturada. Também é possível descrever nossos cenários em diversos idiomas.
  • 3.  O SpecFlow é um Plug-In para o Visual Studio e um framework de execução de Acceptance Teste Driver Development (ATDD)” Desenvolvimento Orientado a Testes de Aceitação” e Behavior Driven Development (BDD) “Desenvolvimento Guiado por Comportamento)”  Ele pode ser integrado com Nunit, MSTest, xUnit.  Não funciona sozinho, ele precisa de uma ferramenta que faça a interação com o browser com o *Selenium
  • 4.  SpecFlow tem por premissa criar uma “ponte” entre analistas e os desenvolvedores através de regras de negócios legíveis e de exemplos.  O objetivo é trabalhar de fora pra dentro, começando pela história.  A missão do SpecFlow é fornecer uma abordagem sem atrito através da especificação. O que é SpecFlow?
  • 5. O mais interessante de trabalhar com SpecFlow é a facilidade que ele tem de chamar um cenário ou outro através de frases, frases essas que são nada mais nada menos que os próprios critérios de aceite de uma estória. O que é SpecFlow?
  • 6. ENTÃO...  Por onde começar? Outside-in (fora p/dentro)  O que testar? User Story (história do usuário)  O que não testar? O resto O que é SpecFlow?
  • 7. As empresas de desenvolvimento de software sofriam para aprovar com o cliente quando um software ou mesmo uma funcionalidade estava completa e principalmente se ela estava se comportando como deveria. Nesse ponto a abordagem de User Stories implementa os critérios de aceite (acceptance criteria ou acceptance testing) que é uma abordagem bem parecida com o nosso teste tradicional usando test cases, ou seja, são escritos testes e executados manualmente após a implementação de alguma feature. Histórias de usuário
  • 8. É aí onde serão definidos as nossas User Stories e o comportamento de nossa App. Aí que está o poder do BDD: Descrever comportamentos em uma linguagem mais alto nível e testar automaticamente para garantir que estamos desenvolvendo corretamente. Observe que isto possibilita ao desenvolvedor aumentar seu entendimento de negócio da aplicação. Além de favorecer os testes de regressão feitos posteriormente. Histórias de usuário
  • 9. Apesar das pessoas terem algum foco específico, porque estudaram mais uma determinada área, todas elas são consideras desenvolvedores dentro de um time Ágil, porque todos Desenvolvem Software, utilizando seu conhecimento. Teste em par Visão de Time ágil Baseado no livro da Lisa Crispin – Agile Testing
  • 10. Funcionalidade: <descrição da funcionalidade> Como um <usuário/ator> Eu quero <meta a ser alcançada> De modo que <a razão para alcançar a meta> Cenário: <descrição do teste> Dado <um estado conhecido> Quando <um determinado evento ocorre> Então <isso deve ocorrer> Estrutura do Specflow  Funcionalidade: Formulário de Contato  Eu como usuário  Preciso contatar o prestador de serviço  Para que seja necessário um possível retorno.  Preenchimento do formulario corretamente  que eu esteja no site jobmidia  eu clicar no link contato e preencher o formulario  o site ira informar a mensagem 'Sua mensagem foi enviada com sucesso.'
  • 12. Deu pra notar como isso pode facilitar os testes funcionais em uma aplicação maior? É uma vantagem e ganho de tempo enorme. Somando isso ao utilizar com um servidor de integração contínua (TFS ou JENKINS), sua aplicação está bem mais testável, além de mapear pontos mais sensíveis a quebra do sistema.
  • 14. Obrigado! Contatos: franklin.araujo@doqconsulting.com.br Facebook: @doqconsulting Skype:faraujo52 Cod GitHub: https://github.com/nilknarf52/SpecFlow Site SpecFlow : http://www.specflow.org/ BDD: http://pt.slideshare.net/CintiaArmesto/bdd-com-spec-flow Lisa Crispin: http://lisacrispin.com/