Slides baseados no trabalho de SebastianBergmann, traduzido por José Ricardo (PHPMS) e adaptado por Silvano Girardi (PHPSC...
Olá eu sou a TestFest<br />Objetivos<br />Aumentar a abrangência do código do interpretador de PHP (com testes)<br />Motiv...
Olá eu sou a TestFest<br />Benefícios<br />Aprendizado de testes<br />Umalinguagemmaisestável<br />Mais releases<br />Sort...
Como seránossodia?<br />09h30<br />16h30<br />12h30<br />Almoço<br />Palestra<br />Suporteeconfiguração<br />Testes<br />T...
PHPT<br />Cada arquivo .phpt possui um único teste<br />Cada teste é executado por um processo separado<br />Isolamento to...
Dando nome ao seu filho<br />Testes queilustramfalhasreportadas (bugs)‏<br />bug<bugid>.phpt<br />Testes de comportamentob...
O Teste mais simples do mundo<br />--TEST--<br />Hello World<br />--FILE--<br />Hello World<br />--EXPECT--<br />Hello Wor...
Agora com PHP<br />--TEST--<br />Hello World<br />--FILE--<br /><?php print'Hello World'; ?><br />--EXPECT--<br />Hello Wo...
Expectativas<br />--TEST--<br />Hello World<br />--FILE--<br /><?php print'Hello World<br />--EXPECTF--<br />Parse error: ...
%d - numero
%c - um character
%w - espaço
%i - inteiro
%f - real
%x - hexadecimal
%e – separador de diretórios</li></li></ul><li>Expectativas<br />--TEST--<br />Hello World<br />--FILE--<br /><?php print'...
Limpando a sujeira<br />--TEST--<br />Removendoarquivostemporários<br />--FILE--<br /><?php<br />$temp_filename = dirname(...
Mexendo nas Configurações<br />--TEST--<br />Definindo um fusoparaportabilidade<br />--INI--<br />date.timezone=UTC<br />-...
Portavel e Seletivo<br />--TEST--<br />Verificando se estamosemumaplataforma de 32 bits...<br />--SKIPIF--<br /><?php<br /...
Portavel e Seletivo<br />--TEST--<br />Verificando se estamos no Linux...<br />--SKIPIF--<br /><?php<br />if (!stristr(PHP...
Fui eu!<br />--TEST--<br />Um teste com umaseção de créditos<br />--CREDITS--<br />Jack <jack@phpsp.org.br><br />#testfest...
Outras sessões<br />--TEST--<br />[--DESCRIPTION--]<br />[--CREDITS--]<br />[--SKIPIF--]<br />[--REQUEST--]<br />[--POST--...
Roda ai Zé!<br />$ maketests TESTS=path/to/ext/yourextension/tests<br />==================================================...
Roda na Janela!<br />TEST_EXECUTABLE_PHP=auto sapi/cli/php run-tests.php path/to/test<br />Bash<br />export TEST_PHP_EXECU...
Ambientes<br />Versão para testes:<br />PHP 5.3.2 ou 5.3.3-dev (SVN)<br />Ambientes disponíveis<br />Virtual Machine de Ub...
O Quetestar? Como achar?<br />Verificar GCOV - http://gcov.php.net/<br />Procurarlinhasnãotestadas<br />Extensões com pouc...
Regras<br />Tudo em inglês!<br />Faltoualgumainformação?<br />http://wiki.php.net/qa/testfest-2010<br />
Upcoming SlideShare
Loading in...5
×

PHPSP TestFest 2010

2,992

Published on

Introduçao a testes PHPT

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,992
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
32
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

PHPSP TestFest 2010

  1. 1. Slides baseados no trabalho de SebastianBergmann, traduzido por José Ricardo (PHPMS) e adaptado por Silvano Girardi (PHPSC)<br />Original: http://sebastian-bergmann.de/talks/<br />
  2. 2. Olá eu sou a TestFest<br />Objetivos<br />Aumentar a abrangência do código do interpretador de PHP (com testes)<br />Motivar usuários a participar, (re|con)tribuir com o PHP<br />Unir e motivar membros do grupo de usuário<br />Qualificar o participante com uma nova ferramenta<br />Atividade Global<br />Em 2009: Países de todo mundorealizaramTestFests<br />PHPSP: Grupo com maior número de testes em todo mundo<br />Próximas oportunidades<br />PHPSP: Setembro (Encerramento)<br />
  3. 3. Olá eu sou a TestFest<br />Benefícios<br />Aprendizado de testes<br />Umalinguagemmaisestável<br />Mais releases<br />Sorteios entre todosparticipantes do mundo<br />2009: 5 participantesganharam (1 caneca / 4 elephpantes)<br />Se vocêgostareajudarbastante:<br />Email @php.net<br />Karma no repositóriooficial (área de testes)<br />
  4. 4. Como seránossodia?<br />09h30<br />16h30<br />12h30<br />Almoço<br />Palestra<br />Suporteeconfiguração<br />Testes<br />Testes<br />Sorteio<br />#PHPinga<br />Pizza!<br />Patrocinadopor:<br />
  5. 5. PHPT<br />Cada arquivo .phpt possui um único teste<br />Cada teste é executado por um processo separado<br />Isolamento total do teste<br />Configuração do PHP independente para cada teste<br />A suite de testes sobrevive a erros fatais, segfaults, etc..<br />PHPT: http://phpt.info<br />
  6. 6. Dando nome ao seu filho<br />Testes queilustramfalhasreportadas (bugs)‏<br />bug<bugid>.phpt<br />Testes de comportamentobásico de umafunção<br /><functionname>_basic.phpt<br />Testes de comportamentoerrôneo de umafunção<br /><functionname>_error.phpt<br />Testes de variações no comportamento de umafunção<br /><functionname>_variation.phpt<br />Testes variadosparaextensões<br /><extname><no>.phpt<br />
  7. 7. O Teste mais simples do mundo<br />--TEST--<br />Hello World<br />--FILE--<br />Hello World<br />--EXPECT--<br />Hello World<br />
  8. 8. Agora com PHP<br />--TEST--<br />Hello World<br />--FILE--<br /><?php print'Hello World'; ?><br />--EXPECT--<br />Hello World<br />
  9. 9. Expectativas<br />--TEST--<br />Hello World<br />--FILE--<br /><?php print'Hello World<br />--EXPECTF--<br />Parse error: syntax error, unexpected $end in %s.php on line %d<br /><ul><li>%s - qualquer string
  10. 10. %d - numero
  11. 11. %c - um character
  12. 12. %w - espaço
  13. 13. %i - inteiro
  14. 14. %f - real
  15. 15. %x - hexadecimal
  16. 16. %e – separador de diretórios</li></li></ul><li>Expectativas<br />--TEST--<br />Hello World<br />--FILE--<br /><?php print'Hello World<br />--EXPECTREGEX--<br />Parse error: (parse|syntax) error, unexpected $end in .* on line .*<br />
  17. 17. Limpando a sujeira<br />--TEST--<br />Removendoarquivostemporários<br />--FILE--<br /><?php<br />$temp_filename = dirname(__FILE__) . '/foo.tmp';<br />$fp = fopen($temp_filename, 'w');<br />fwrite($fp, 'bar');<br />fclose($fp);<br />?><br />--CLEAN--<br /><?php<br />$temp_filename = dirname(__FILE__) . '/foo.tmp';<br />unlink($temp_filename);<br />?><br />--EXPECT--<br />
  18. 18. Mexendo nas Configurações<br />--TEST--<br />Definindo um fusoparaportabilidade<br />--INI--<br />date.timezone=UTC<br />--FILE--<br />--EXPECT--<br />
  19. 19. Portavel e Seletivo<br />--TEST--<br />Verificando se estamosemumaplataforma de 32 bits...<br />--SKIPIF--<br /><?php<br />if (PHP_INT_SIZE!=4)die('32bit platforms only');<br />?><br />--FILE--<br />--EXPECT--<br />
  20. 20. Portavel e Seletivo<br />--TEST--<br />Verificando se estamos no Linux...<br />--SKIPIF--<br /><?php<br />if (!stristr(PHP_OS, 'Linux'))die('Linux only');<br />?><br />--FILE--<br />--EXPECT--<br />
  21. 21. Fui eu!<br />--TEST--<br />Um teste com umaseção de créditos<br />--CREDITS--<br />Jack <jack@phpsp.org.br><br />#testfest PHPSP on 2009-06-20<br />--FILE--<br />--EXPECT--<br />
  22. 22. Outras sessões<br />--TEST--<br />[--DESCRIPTION--]<br />[--CREDITS--]<br />[--SKIPIF--]<br />[--REQUEST--]<br />[--POST-- | --POST_RAW-- | --GZIP_POST-- | --DEFLATE_POST-- | --GET--]<br />[--COOKIE--]<br />[--STDIN--]<br />[--INI--]<br />[--ARGS--]<br />[--ENV--]<br />--FILE-- | --FILEEOF-- | --FILE_EXTERNAL-- | --REDIRECTTEST--<br />[--HEADERS--]<br />[--CGI--]<br />[--XFAIL--]<br />[--EXPECTHEADERS--]<br />--EXPECT-- | --EXPECTF-- | --EXPECTREGEX--<br />[--CLEAN--]<br />
  23. 23. Roda ai Zé!<br />$ maketests TESTS=path/to/ext/yourextension/tests<br />=====================================================================<br />PHP : /Users/rdohms/Downloads/src/php-5.3.0RC4/sapi/cli/php <br />PHP_SAPI : cli<br />PHP_VERSION : 5.3.0RC4<br />ZEND_VERSION: 2.3.0<br />PHP_OS : Darwin - Darwin MacDohms.local 9.7.0 Darwin Kernel Version 9.7.0: …<br />INI actual : /Users/rdohms/Downloads/src/php-5.3.0RC4/tmp-php.ini<br />More .INIs : <br />CWD : /Users/rdohms/Downloads/src/php-5.3.0RC4<br />Extra dirs : <br />VALGRIND : Not used<br />=====================================================================<br />Running selected tests.<br />PASS Hello World [/Users/rdohms/dev/phpsp/testfest/SaoPauloUG/tests/basic/mytest.phpt] <br />=====================================================================<br />Number of tests : 1 1<br />Tests skipped : 0 ( 0.0%) --------<br />Tests warned : 0 ( 0.0%) ( 0.0%)<br />Tests failed : 0 ( 0.0%) ( 0.0%)<br />Expected fail : 0 ( 0.0%) ( 0.0%)<br />Tests passed : 1 (100.0%) (100.0%)<br />---------------------------------------------------------------------<br />Time taken : 0 seconds<br />=====================================================================<br />
  24. 24. Roda na Janela!<br />TEST_EXECUTABLE_PHP=auto sapi/cli/php run-tests.php path/to/test<br />Bash<br />export TEST_PHP_EXECUTABLE=/mnt/workspace/PHP/php53/sapi/cli/php<br />$TEST_PHP_EXECUTABLE /mnt/workspace/PHP/php53/run-tests.php $*<br />
  25. 25. Ambientes<br />Versão para testes:<br />PHP 5.3.2 ou 5.3.3-dev (SVN)<br />Ambientes disponíveis<br />Virtual Machine de Ubuntu (Virtual Box)<br />Windows (run-tests.php)<br />Seu ambiente local já compilado<br />
  26. 26. O Quetestar? Como achar?<br />Verificar GCOV - http://gcov.php.net/<br />Procurarlinhasnãotestadas<br />Extensões com poucacobertura<br />Página de Funçõestestadas - http://qa.php.net/tested-methods.php<br />Acharcasos de usonãotestados<br />
  27. 27. Regras<br />Tudo em inglês!<br />Faltoualgumainformação?<br />http://wiki.php.net/qa/testfest-2010<br />
  28. 28. Processo de escrita<br />Selecioneoqueirátestar<br />Aviseorestodasala<br />Escrevaoteste<br />Rode oteste com PHP 5.3<br />Rode oteste no Trunk e 5.2 [opcional]<br />Commiteotesteemnosso SVN<br />Avise um monitor<br />
  29. 29. NãoAcabou!<br />Evento se estendeatésetembro<br />Repositóriocontinuaráaberto<br />Não pare de contribuir!<br />Setembro<br />Palestra + testes<br />Encerramentogeral<br />
  30. 30. Apoio<br />
  31. 31. Ao código!!<br />
  32. 32. License<br />This presentation material is published under the Attribution-Share Alike 3.0 Unported license.<br />You are free:<br />to Share – to copy, distribute and transmit the work.<br />to Remix – to adapt the work.<br />Under the following conditions:<br />Attribution. You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).<br />Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under the same, similar or a compatible license.<br />For any reuse or distribution, you must make clear to others the license terms of this work.<br />Any of the above conditions can be waived if you get permission from the copyright holder.<br />Nothing in this license impairs or restricts the author's moral rights.<br />
  33. 33. Licença<br />Este material paraapresentaçãoépublicado sob a licença “Attribution-Share Alike 3.0 Unported”.<br />Vocêélivrepara:<br />Compartilhar – copiar, distribuiretransmitirotrabalho.<br />Alterar – adaptarotrabalho.<br />Sob as seguintescondições:<br />Atribuição. Vocêdeveatribuirotrabalhonamaneiraespecificadapeloautoroulicenciador (masnão de maneira a sugerirqueelesteapóiamvocêou a maneiracomovocêutilizaotrabalho).<br />Distribuadamesma forma. Se vocêalterar, transformarouconstruiralgobaseando-se nestetrabalho, vocêdevedistribuirotrabalhoresultanteapenas sob a mesmalicença, umalicença similar oucompatível.<br />Para qualquerreusooudistribuição, vocêdevedeixarclaroaosoutrosostermos de licenciamentodestetrabalho. <br />Qualqueruma das condiçõesacimapode ser ignorada se vocêobtiver a permissões do proprietário dos direitosautorais. <br />Nada nestalicençadanificaourestringeosdireitosmorais do autor.<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×