• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
PHPSP TestFest 2010
 

PHPSP TestFest 2010

on

  • 3,704 views

Introduçao a testes PHPT

Introduçao a testes PHPT

Statistics

Views

Total Views
3,704
Views on SlideShare
3,645
Embed Views
59

Actions

Likes
4
Downloads
30
Comments
0

1 Embed 59

http://www.slideshare.net 59

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    PHPSP TestFest 2010 PHPSP TestFest 2010 Presentation Transcript

    • Slides baseados no trabalho de SebastianBergmann, traduzido por José Ricardo (PHPMS) e adaptado por Silvano Girardi (PHPSC)
      Original: http://sebastian-bergmann.de/talks/
    • 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)
    • 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)
    • Como seránossodia?
      09h30
      16h30
      12h30
      Almoço
      Palestra
      Suporteeconfiguração
      Testes
      Testes
      Sorteio
      #PHPinga
      Pizza!
      Patrocinadopor:
    • 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
    • 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
    • O Teste mais simples do mundo
      --TEST--
      Hello World
      --FILE--
      Hello World
      --EXPECT--
      Hello World
    • Agora com PHP
      --TEST--
      Hello World
      --FILE--
      <?php print'Hello World'; ?>
      --EXPECT--
      Hello World
    • Expectativas
      --TEST--
      Hello World
      --FILE--
      <?php print'Hello World
      --EXPECTF--
      Parse error: syntax error, unexpected $end in %s.php on line %d
      • %s - qualquer string
      • %d - numero
      • %c - um character
      • %w - espaço
      • %i - inteiro
      • %f - real
      • %x - hexadecimal
      • %e – separador de diretórios
    • Expectativas
      --TEST--
      Hello World
      --FILE--
      <?php print'Hello World
      --EXPECTREGEX--
      Parse error: (parse|syntax) error, unexpected $end in .* on line .*
    • 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--
    • Mexendo nas Configurações
      --TEST--
      Definindo um fusoparaportabilidade
      --INI--
      date.timezone=UTC
      --FILE--
      --EXPECT--
    • Portavel e Seletivo
      --TEST--
      Verificando se estamosemumaplataforma de 32 bits...
      --SKIPIF--
      <?php
      if (PHP_INT_SIZE!=4)die('32bit platforms only');
      ?>
      --FILE--
      --EXPECT--
    • Portavel e Seletivo
      --TEST--
      Verificando se estamos no Linux...
      --SKIPIF--
      <?php
      if (!stristr(PHP_OS, 'Linux'))die('Linux only');
      ?>
      --FILE--
      --EXPECT--
    • 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--
    • 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--]
    • 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
      =====================================================================
    • 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 $*
    • 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
    • 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
    • Regras
      Tudo em inglês!
      Faltoualgumainformação?
      http://wiki.php.net/qa/testfest-2010
    • 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
    • NãoAcabou!
      Evento se estendeatésetembro
      Repositóriocontinuaráaberto
      Não pare de contribuir!
      Setembro
      Palestra + testes
      Encerramentogeral
    • Apoio
    • Ao código!!
    • 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.
    • 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.