SlideShare une entreprise Scribd logo
1  sur  54
Télécharger pour lire hors ligne
Pyramid – BDD em Python

   Hugo Lopes Tavares
    Gustavo Rezende
    Rodrigo Manhães
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
stakeholder + dev
exemplos
http://www.agileprogrammer.com/uploads/bradwils/red_2Dgreen_2Drefactor.png
Mock Objects
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
Uma ferramenta para Test Doubles



             
     
     
     
     
     
Mock




            
Mock

Mocks são objetos pré-programados com
as   expectativas   que   formam    uma
especificação das chamadas que se espera
receber.



                
Stub



Stubs são objetos que se comportam segundo uma
dada programação, assim como os mocks.

Porém, diferentemente destes, a execução ou não
dos métodos programados são usados quando a
execução dos métodos programados não é o que o
exemplo corrente.

                   
Dummy




    Objeto dublê que não é influenciado
          diretamente no teste




                
     
     
     
should-dsl



expectativas para especificações
          automatizadas



http://github.com/hugobr/should-dsl
pyhistorian
PyCukes
Obrigado!
      Email: hltbra@gmail.com
        nsigustavo@gmail.com
         rmanhaes@gmail.com
           Twitter: @hltbra
            @rodrigomanhes
             @nsigustavo
  GitHub: http://github.com/hugobr
  http://github.com/rodrigomanhaes
    http://github.com/nsigustavo

Contenu connexe

Similaire à Pyramid - BDD em Python

TDC 2015 Floripa - Testes de Unidade com Robolectric
TDC 2015 Floripa - Testes de Unidade com RobolectricTDC 2015 Floripa - Testes de Unidade com Robolectric
TDC 2015 Floripa - Testes de Unidade com RobolectricStefan Teixeira
 
TDC 2015 - Testes de Unidade com Robolectric
TDC 2015 - Testes de Unidade com Robolectric TDC 2015 - Testes de Unidade com Robolectric
TDC 2015 - Testes de Unidade com Robolectric Lucas Albuquerque
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonIgor Sobreira
 
Mobile Conf 2015 - Testes de Unidade com Robolectric
Mobile Conf 2015 - Testes de Unidade com RobolectricMobile Conf 2015 - Testes de Unidade com Robolectric
Mobile Conf 2015 - Testes de Unidade com RobolectricLucas Albuquerque
 
Mobile Conf 2015 - Testes de Unidade com Robolectric
Mobile Conf 2015 - Testes de Unidade com RobolectricMobile Conf 2015 - Testes de Unidade com Robolectric
Mobile Conf 2015 - Testes de Unidade com RobolectricStefan Teixeira
 
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0Danilo J. S. Bellini
 
Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Bruno Rocha
 
Python com qualidade - testes funcionais com Python e Selenium Webdriver
Python com qualidade - testes funcionais com Python e Selenium WebdriverPython com qualidade - testes funcionais com Python e Selenium Webdriver
Python com qualidade - testes funcionais com Python e Selenium WebdriverRobson Agapito Correa
 
TDC2018SP | Trilha Python - Python com qualidade - testes funcionais com Pyth...
TDC2018SP | Trilha Python - Python com qualidade - testes funcionais com Pyth...TDC2018SP | Trilha Python - Python com qualidade - testes funcionais com Pyth...
TDC2018SP | Trilha Python - Python com qualidade - testes funcionais com Pyth...tdc-globalcode
 
Desenvolvimento Ágil de Software
Desenvolvimento Ágil de SoftwareDesenvolvimento Ágil de Software
Desenvolvimento Ágil de SoftwareAndre Carlucci
 
Nem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkNem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkRodrigo Matola
 
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho DuroTDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Durotdc-globalcode
 
Boas práticas de desenvolvimento para Jupyter Notebooks
Boas práticas de desenvolvimento para Jupyter NotebooksBoas práticas de desenvolvimento para Jupyter Notebooks
Boas práticas de desenvolvimento para Jupyter NotebooksJoel Pinho Lucas
 
CI&T Tech Summit 2017 - Machine Learning para Sistemas de Recomendação
CI&T Tech Summit 2017 - Machine Learning para Sistemas de RecomendaçãoCI&T Tech Summit 2017 - Machine Learning para Sistemas de Recomendação
CI&T Tech Summit 2017 - Machine Learning para Sistemas de RecomendaçãoGabriel Moreira
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.comricobl
 
O que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloO que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloIsmael
 
Django Object factory
Django Object factoryDjango Object factory
Django Object factoryitalomaia
 

Similaire à Pyramid - BDD em Python (20)

TDC 2015 Floripa - Testes de Unidade com Robolectric
TDC 2015 Floripa - Testes de Unidade com RobolectricTDC 2015 Floripa - Testes de Unidade com Robolectric
TDC 2015 Floripa - Testes de Unidade com Robolectric
 
TDC 2015 - Testes de Unidade com Robolectric
TDC 2015 - Testes de Unidade com Robolectric TDC 2015 - Testes de Unidade com Robolectric
TDC 2015 - Testes de Unidade com Robolectric
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 
Mobile Conf 2015 - Testes de Unidade com Robolectric
Mobile Conf 2015 - Testes de Unidade com RobolectricMobile Conf 2015 - Testes de Unidade com Robolectric
Mobile Conf 2015 - Testes de Unidade com Robolectric
 
Mobile Conf 2015 - Testes de Unidade com Robolectric
Mobile Conf 2015 - Testes de Unidade com RobolectricMobile Conf 2015 - Testes de Unidade com Robolectric
Mobile Conf 2015 - Testes de Unidade com Robolectric
 
Cp2011 python agil-ramiroluz
Cp2011 python agil-ramiroluzCp2011 python agil-ramiroluz
Cp2011 python agil-ramiroluz
 
Mocking Test
Mocking TestMocking Test
Mocking Test
 
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0
 
Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011
 
Python com qualidade - testes funcionais com Python e Selenium Webdriver
Python com qualidade - testes funcionais com Python e Selenium WebdriverPython com qualidade - testes funcionais com Python e Selenium Webdriver
Python com qualidade - testes funcionais com Python e Selenium Webdriver
 
TDC2018SP | Trilha Python - Python com qualidade - testes funcionais com Pyth...
TDC2018SP | Trilha Python - Python com qualidade - testes funcionais com Pyth...TDC2018SP | Trilha Python - Python com qualidade - testes funcionais com Pyth...
TDC2018SP | Trilha Python - Python com qualidade - testes funcionais com Pyth...
 
Desenvolvimento Ágil de Software
Desenvolvimento Ágil de SoftwareDesenvolvimento Ágil de Software
Desenvolvimento Ágil de Software
 
Nem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkNem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot Framework
 
Machine Learning Black Boxes
Machine Learning Black BoxesMachine Learning Black Boxes
Machine Learning Black Boxes
 
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho DuroTDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
 
Boas práticas de desenvolvimento para Jupyter Notebooks
Boas práticas de desenvolvimento para Jupyter NotebooksBoas práticas de desenvolvimento para Jupyter Notebooks
Boas práticas de desenvolvimento para Jupyter Notebooks
 
CI&T Tech Summit 2017 - Machine Learning para Sistemas de Recomendação
CI&T Tech Summit 2017 - Machine Learning para Sistemas de RecomendaçãoCI&T Tech Summit 2017 - Machine Learning para Sistemas de Recomendação
CI&T Tech Summit 2017 - Machine Learning para Sistemas de Recomendação
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
O que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloO que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São Paulo
 
Django Object factory
Django Object factoryDjango Object factory
Django Object factory
 

Plus de Hugo Lopes Tavares

Quero ser programador! #comofas?
Quero ser programador! #comofas?Quero ser programador! #comofas?
Quero ser programador! #comofas?Hugo Lopes Tavares
 
Python Packaging: Passado, Presente e Futuro
Python Packaging: Passado, Presente e FuturoPython Packaging: Passado, Presente e Futuro
Python Packaging: Passado, Presente e FuturoHugo Lopes Tavares
 
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)Hugo Lopes Tavares
 
Collaborative Coding: Git + Github
Collaborative Coding: Git + GithubCollaborative Coding: Git + Github
Collaborative Coding: Git + GithubHugo Lopes Tavares
 
Behaviour-Driven Development: escrevendo especificações ágeis
Behaviour-Driven Development: escrevendo especificações ágeisBehaviour-Driven Development: escrevendo especificações ágeis
Behaviour-Driven Development: escrevendo especificações ágeisHugo Lopes Tavares
 
Behaviour-Driven Development (BDD) em Python
Behaviour-Driven Development (BDD) em PythonBehaviour-Driven Development (BDD) em Python
Behaviour-Driven Development (BDD) em PythonHugo Lopes Tavares
 

Plus de Hugo Lopes Tavares (6)

Quero ser programador! #comofas?
Quero ser programador! #comofas?Quero ser programador! #comofas?
Quero ser programador! #comofas?
 
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)
 
Collaborative Coding: Git + Github
Collaborative Coding: Git + GithubCollaborative Coding: Git + Github
Collaborative Coding: Git + Github
 
Behaviour-Driven Development: escrevendo especificações ágeis
Behaviour-Driven Development: escrevendo especificações ágeisBehaviour-Driven Development: escrevendo especificações ágeis
Behaviour-Driven Development: escrevendo especificações ágeis
 
Behaviour-Driven Development (BDD) em Python
Behaviour-Driven Development (BDD) em PythonBehaviour-Driven Development (BDD) em Python
Behaviour-Driven Development (BDD) em Python
 

Pyramid - BDD em Python