SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
Behaviour-Driven Development
  especificando software de forma ágil



        Hugo Lopes Tavares
     Universidade Cândido Mendes - Campos
                 Novembro 2009
Por que ter
                        ?
especificações de software
http://upload.wikimedia.org/wikipedia/commons/0/08/Modelo_em_cascata.png
http://www.flickr.com/photos/toastforbrekkie/3488847960
http://www.flickr.com/photos/wongjunhao/2189540204
testes manuais
http://www.flickr.com/photos/vox/3966754898
http://www.flickr.com/photos/rwphoto/3476071029
http://www.flickr.com/photos/slipstreamblue/2677206060
O que é BDD
              ?
?
Como fazer BDD
  no dia-a-dia
http://www.flickr.com/photos/jnicho02/2827250133
stakeholder + dev
exemplos
http://www.agileprogrammer.com/uploads/bradwils/red_2Dgreen_2Drefactor.png
Mock Objects
um caso de falha:
                                                   pyhistorian




http://z.about.com/d/chemistry/1/0/G/f/stinkbomb.jpg
http://www.flickr.com/photos/wwworks/3337409383
YAGNI
http://www.flickr.com/photos/editor/172690560/
flexibilidade
http://www.flickr.com/photos/myelectricsheep/241058566
COLABORAÇÃO




http://www.flickr.com/photos/visionwithin/513293155
http://www.informit.com/ShowCover.aspx?isbn=0321125215
Ferramentas




http://www.flickr.com/photos/m2w2/191545978
pyhistorian
 pyccuracy
   Freshen
   pyCukes
   pyMock
   Mockito
   Ludibrio
Should-DSL
Cucumber
      Webrat
       RSpec
  Remarkable
       Mocha
  Factory Girl
    Machinist
Object Daddy
JBehave 2.0
     Easyb
   Mockito
 EasyMock
     JMock
  Hamcrest
      JUnit
    TestNG
Cuke4nuke
          Specflow
              Nspec
           Nbehave
              Mspec
          Specunit
Cucubmer + IronRuby
Obrigado!
       Email: hltbra@gmail.com
           Twitter: @hltbra
 Github: http://hugolt.wordpress.com
    Blog: http://github.com/hugobr

Mais conteúdo relacionado

Mais procurados

Ttyfu v7-angelpadorg
Ttyfu v7-angelpadorgTtyfu v7-angelpadorg
Ttyfu v7-angelpadorg
Rick Boardman
 
Indesign tutorials
Indesign tutorialsIndesign tutorials
Indesign tutorials
Jackie Scott
 
Writing Resume Practice
Writing Resume PracticeWriting Resume Practice
Writing Resume Practice
mhernandez186
 

Mais procurados (20)

Managing the Content Process
Managing the Content ProcessManaging the Content Process
Managing the Content Process
 
Technology Careers v2.0 SP1 Ultimate Edition
Technology Careers v2.0 SP1 Ultimate EditionTechnology Careers v2.0 SP1 Ultimate Edition
Technology Careers v2.0 SP1 Ultimate Edition
 
Orchestrating Content—FOWD NYC
Orchestrating Content—FOWD NYCOrchestrating Content—FOWD NYC
Orchestrating Content—FOWD NYC
 
Automação de testes funcionais com Python e Mechanize
Automação de testes funcionais com Python e MechanizeAutomação de testes funcionais com Python e Mechanize
Automação de testes funcionais com Python e Mechanize
 
Changing Content, Changing Culture
Changing Content, Changing CultureChanging Content, Changing Culture
Changing Content, Changing Culture
 
Flexible Content Requires Future-Ready Organizations
Flexible Content Requires Future-Ready OrganizationsFlexible Content Requires Future-Ready Organizations
Flexible Content Requires Future-Ready Organizations
 
Ttyfu v7-angelpadorg
Ttyfu v7-angelpadorgTtyfu v7-angelpadorg
Ttyfu v7-angelpadorg
 
Indesign tutorials
Indesign tutorialsIndesign tutorials
Indesign tutorials
 
20 Unterrichtswerkzeuge die Sie noch nicht kennen
20 Unterrichtswerkzeuge die Sie noch nicht kennen20 Unterrichtswerkzeuge die Sie noch nicht kennen
20 Unterrichtswerkzeuge die Sie noch nicht kennen
 
Business Communications Week 10 Ethan Chazin
Business Communications Week 10 Ethan ChazinBusiness Communications Week 10 Ethan Chazin
Business Communications Week 10 Ethan Chazin
 
Bazata-Jaret-pcp-1511
Bazata-Jaret-pcp-1511Bazata-Jaret-pcp-1511
Bazata-Jaret-pcp-1511
 
Change, Adaptation, and Revolutions in Libraries
Change, Adaptation, and Revolutions in LibrariesChange, Adaptation, and Revolutions in Libraries
Change, Adaptation, and Revolutions in Libraries
 
Writing Resume Practice
Writing Resume PracticeWriting Resume Practice
Writing Resume Practice
 
I tried to dockerize my app but I had to PaaS
I tried to dockerize my app but I had to PaaSI tried to dockerize my app but I had to PaaS
I tried to dockerize my app but I had to PaaS
 
Automating all the wrong things - You Gotta Love Frontend Keynote
Automating all the wrong things - You Gotta Love Frontend KeynoteAutomating all the wrong things - You Gotta Love Frontend Keynote
Automating all the wrong things - You Gotta Love Frontend Keynote
 
Orchestrating Content
Orchestrating ContentOrchestrating Content
Orchestrating Content
 
Fix price fix scope fix date-pecha_kuchas-journeeagile2014
Fix price fix scope fix date-pecha_kuchas-journeeagile2014Fix price fix scope fix date-pecha_kuchas-journeeagile2014
Fix price fix scope fix date-pecha_kuchas-journeeagile2014
 
Games, Develop & Html5 for BlackBerry PlayBook
Games, Develop & Html5 for BlackBerry PlayBookGames, Develop & Html5 for BlackBerry PlayBook
Games, Develop & Html5 for BlackBerry PlayBook
 
NROC Meeting 2011 - Embracing OER
NROC Meeting 2011 - Embracing OERNROC Meeting 2011 - Embracing OER
NROC Meeting 2011 - Embracing OER
 
Tech For Chairs Slides
Tech For Chairs SlidesTech For Chairs Slides
Tech For Chairs Slides
 

Destaque

The English Alphabet
The English AlphabetThe English Alphabet
The English Alphabet
aliciamv700
 
L O N D O N S I G H T
L O N D O N  S I G H TL O N D O N  S I G H T
L O N D O N S I G H T
aliciamv700
 
Pinturas de robert duncan
Pinturas de robert duncanPinturas de robert duncan
Pinturas de robert duncan
Anjovison .
 

Destaque (9)

Python Packaging: Passado, Presente e Futuro
Python Packaging: Passado, Presente e FuturoPython Packaging: Passado, Presente e Futuro
Python Packaging: Passado, Presente e Futuro
 
Collaborative Coding: Git + Github (NSI Tech Talks)
Collaborative Coding: Git + Github (NSI Tech Talks)Collaborative Coding: Git + Github (NSI Tech Talks)
Collaborative Coding: Git + Github (NSI Tech Talks)
 
The English Alphabet
The English AlphabetThe English Alphabet
The English Alphabet
 
L O N D O N S I G H T
L O N D O N  S I G H TL O N D O N  S I G H T
L O N D O N S I G H T
 
Pinturas de robert duncan
Pinturas de robert duncanPinturas de robert duncan
Pinturas de robert duncan
 
Quero ser programador! #comofas?
Quero ser programador! #comofas?Quero ser programador! #comofas?
Quero ser programador! #comofas?
 
Collaborative Coding: Git + Github
Collaborative Coding: Git + GithubCollaborative Coding: Git + Github
Collaborative Coding: Git + Github
 
Pyramid - BDD em Python
Pyramid - BDD em PythonPyramid - BDD em Python
Pyramid - BDD em Python
 
Behaviour-Driven Development (BDD) em Python
Behaviour-Driven Development (BDD) em PythonBehaviour-Driven Development (BDD) em Python
Behaviour-Driven Development (BDD) em Python
 

Semelhante a Behaviour-Driven Development: escrevendo especificações ágeis

A Path for Presentations
A Path for Presentations A Path for Presentations
A Path for Presentations
Emory Maiden
 
Don't a Digital Dinosaur - Web 2.0 2011
Don't a Digital Dinosaur - Web 2.0 2011Don't a Digital Dinosaur - Web 2.0 2011
Don't a Digital Dinosaur - Web 2.0 2011
Samantha Starmer
 
Play withmultimedia mac
Play withmultimedia macPlay withmultimedia mac
Play withmultimedia mac
Maso Lin
 

Semelhante a Behaviour-Driven Development: escrevendo especificações ágeis (20)

A DevOps Discussion
A DevOps DiscussionA DevOps Discussion
A DevOps Discussion
 
Arduino Project
Arduino ProjectArduino Project
Arduino Project
 
Don't be a Digital Dinosaur - Design for the Space Between
Don't be a Digital Dinosaur - Design for the Space BetweenDon't be a Digital Dinosaur - Design for the Space Between
Don't be a Digital Dinosaur - Design for the Space Between
 
Arduino Project - Ciclo de palestras CEET Vasco Coutinho
Arduino Project - Ciclo de palestras CEET Vasco CoutinhoArduino Project - Ciclo de palestras CEET Vasco Coutinho
Arduino Project - Ciclo de palestras CEET Vasco Coutinho
 
Developing for Mobile
Developing for MobileDeveloping for Mobile
Developing for Mobile
 
A Path for Presentations
A Path for Presentations A Path for Presentations
A Path for Presentations
 
Create Successful Cross Channel Experiences - IA Summit 2011
Create Successful Cross Channel Experiences - IA Summit 2011Create Successful Cross Channel Experiences - IA Summit 2011
Create Successful Cross Channel Experiences - IA Summit 2011
 
Just Too Late
Just Too LateJust Too Late
Just Too Late
 
Projeto Arduino - Hardware para fazer coisas legais - FOCAI
Projeto Arduino - Hardware para fazer coisas legais - FOCAIProjeto Arduino - Hardware para fazer coisas legais - FOCAI
Projeto Arduino - Hardware para fazer coisas legais - FOCAI
 
Don't a Digital Dinosaur - Web 2.0 2011
Don't a Digital Dinosaur - Web 2.0 2011Don't a Digital Dinosaur - Web 2.0 2011
Don't a Digital Dinosaur - Web 2.0 2011
 
The Future of Design is Not Just the Web - Web Visions Workshop 2011
The Future of Design is Not Just the Web - Web Visions Workshop 2011The Future of Design is Not Just the Web - Web Visions Workshop 2011
The Future of Design is Not Just the Web - Web Visions Workshop 2011
 
Mobile Web Speed Bumps
Mobile Web Speed BumpsMobile Web Speed Bumps
Mobile Web Speed Bumps
 
Christian Heilmann's 'State of the Browser in 2011'
Christian Heilmann's 'State of the Browser in 2011'Christian Heilmann's 'State of the Browser in 2011'
Christian Heilmann's 'State of the Browser in 2011'
 
The Importance of Storytelling in Web Design, WordCamp Miami 2013
The Importance of Storytelling in Web Design, WordCamp Miami 2013The Importance of Storytelling in Web Design, WordCamp Miami 2013
The Importance of Storytelling in Web Design, WordCamp Miami 2013
 
Creating User Friendly Joomla! Websites and Forms [English]
Creating User Friendly Joomla! Websites and Forms [English]Creating User Friendly Joomla! Websites and Forms [English]
Creating User Friendly Joomla! Websites and Forms [English]
 
LeapMotion for Web with React and Flux
LeapMotion for Web with React and FluxLeapMotion for Web with React and Flux
LeapMotion for Web with React and Flux
 
O que tu queres?
O que tu queres? O que tu queres?
O que tu queres?
 
Introduction to HTML5 & CSS3
Introduction to HTML5 & CSS3Introduction to HTML5 & CSS3
Introduction to HTML5 & CSS3
 
Play withmultimedia mac
Play withmultimedia macPlay withmultimedia mac
Play withmultimedia mac
 
10 Tips
10 Tips10 Tips
10 Tips
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

Behaviour-Driven Development: escrevendo especificações ágeis