1. Criando testes com Plone.
Ramiro Luz, Héctor Velarde
7 de Novembro de 2014
Ramiro Luz, Héctor Velarde Criando testes com Plone. 7 de Novembro de 2014 1 / 17
2. Sobre os autores
Ramiro Batista da Luz, pós-graduado em Engenharia de Software pela
UTFPR em mestrado prossional, ênfase em métodos ágeis.
Programador, iniciou a carreira em 1996, organizador da
PythonBrasil[6].
Héctor Velarde, engenheiro em Telecomunicações que virou gerente de
projetos, cheerleader da comunidade e membro do Testing Team do
Plone.
Ramiro Luz, Héctor Velarde Criando testes com Plone. 7 de Novembro de 2014 2 / 17
3. Sobre a palestra
O que é Plone.
Ferramentas
Tipos de teste.
Exemplos de teste.
Ramiro Luz, Héctor Velarde Criando testes com Plone. 7 de Novembro de 2014 3 / 17
4. Produtos e ferramentas para testes
buildout
plone.testing
plone.app.testing
plone.app.robotframework
plone.recipe.codeanalysis
coverage
Ramiro Luz, Héctor Velarde Criando testes com Plone. 7 de Novembro de 2014 4 / 17
6. Tipos de teste de software
Teste unitário
Teste de integração
Teste de sistema
Teste de aceitação
Teste de performance
Testes de conguração, operação, segurança, integridade, etc ...
Ramiro Luz, Héctor Velarde Criando testes com Plone. 7 de Novembro de 2014 6 / 17
7. Teste unitário
Sequência de collatz: http://va.mu/Ah3UI
def test_quatro_retorna_quatro_dois_um ( self ):
self . assertEqual ( Collatz (4). retorna_sequencia (), (4 ,2 ,1))
def test_oito_retorna_oito_quatro_dois_um ( self ):
self . assertEqual ( Collatz (8). retorna_sequencia (), (8 ,4 ,2 ,1))
Ramiro Luz, Héctor Velarde Criando testes com Plone. 7 de Novembro de 2014 7 / 17
8. Teste de integração
Faceted navigation: http://va.mu/Ah3UY
self . loginAsPortalOwner ()
fid = portal . invokeFactory ('Folder ', 'folder ')
folder = portal . _getOb (fid)
folder . setTitle ('Faceted navigation folder test ')
request = folder . REQUEST
Ramiro Luz, Héctor Velarde Criando testes com Plone. 7 de Novembro de 2014 8 / 17
9. Buildout
zc.buildout é uma ferramenta poderosa para criar congurações de
ambientes replicáveis
Ramiro Luz, Héctor Velarde Criando testes com Plone. 7 de Novembro de 2014 9 / 17
10. plone.testing e plone.app.testing
produtos complementares
plone.testing implementa primitivas de baixo nível que não dependem
do Plone para gestionar test layers e testar aplicações Zope
plone.app.testing toma conta da criação de um Plone site em um teste
de integração
Ramiro Luz, Héctor Velarde Criando testes com Plone. 7 de Novembro de 2014 10 / 17
11. Selenium, Robot Framework e plone.app.robotframework
Selenium ferramenta de automatização de aplicações para testes
Robot Framework framework de genérico de automatização de testes
de aceitação e ATDD
plone.app.robotframework ferramentas e recursos para
desenvolvimento de testes de aceptação no Plone
Ramiro Luz, Héctor Velarde Criando testes com Plone. 7 de Novembro de 2014 11 / 17
12. plone.app.codeanalysis
Receita do zc.buildout
Implementa analise estático de código para projetos Python
Inclui PEP 8, Pyakes, CSSLint, JSHint e outros
Ramiro Luz, Héctor Velarde Criando testes com Plone. 7 de Novembro de 2014 12 / 17
13. Ferramentas do codeanalysis
code-analysis-clean-lines, code-analysis-csslint
code-analysis-debug-statements, code-analysis-deprecated-aliases
code-analysis-nd-untranslated, code-analysis-ake8
code-analysis-hasattr, code-analysis-imports
code-analysis-jscs, code-analysis-jshint
code-analysis-pep3101, code-analysis-prefer-single-quotes
code-analysis-utf8-header, code-analysis-zptlint
Ramiro Luz, Héctor Velarde Criando testes com Plone. 7 de Novembro de 2014 13 / 17