PHPSP TestFest 2010

  • 2,819 views
Uploaded on

Introduçao a testes PHPT

Introduçao a testes PHPT

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,819
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
31
Comments
0
Likes
4

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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