Slides baseados no trabalho de Sebastian Bergmann, traduzido por
José Ricardo (PHPMS) e adaptado por Silvano Girardi (PHPSC)
Original: http://sebastian-bergmann.de/talks/
S
Olá eu sou a TestFest
S Objetivos
S Aumentar a abrangência do código do interpretador de PHP
(com testes)
S Motivar usuários a participar, (re|con)tribuir com o PHP
S Unir e motivar membros do grupo de usuário
S Qualificar o participante com uma nova ferramenta
S Atividade Global
S Em 2009: Países de todo mundorealizaram TestFests
S PHPSP: Grupo com maior número de testes em todo mundo
S Próximas oportunidades
S PHPSP: Setembro (Encerramento)
Apoio:
Olá eu sou a TestFest
S Benefícios
S Aprendizado de testes
S Uma linguagem mais estável
S Mais releases
S Sorteios entre todos participantes do mundo
S
2009: 5 participantes ganharam (1 caneca / 4 elephpantes)
S Se você gostar e ajudar bastante:
S
Email @php.net
S
Karma no repositório oficial (área de testes)
Apoio:
Como será nosso dia?
09h30
16h30
12h30
PALESTR
A
SUPORTE E CONFIGURAÇÃO
TESTES
TESTES
SORT
EIO
Pizza!
Patrocinado por:
#PHPinga
Apoio:
PHPT
S Cada arquivo .phpt possui um único teste
S Cada teste é executado por um processo separado
S Isolamento total do teste
S Configuração do PHP independente para cada teste
S A suite de testes sobrevive a erros fatais, segfaults, etc..
S PHPT: http://phpt.info
Apoio:
Dando nome ao seu filho
S Testes que ilustram falhas reportadas (bugs)
S bug<bugid>.phpt
S Testes de comportamento básico de uma função
S <functionname>_basic.phpt
S Testes de comportamento errôneo de uma função
S <functionname>_error.phpt
S Testes de variações no comportamento de uma função
S <functionname>_variation.phpt
S Testes variados para extensões
S <extname><no>.phpt
Apoio:
O Teste mais simples do
mundo
--TEST--
Hello World
--FILE-Hello World
--EXPECT-Hello World
Apoio:
Agora com PHP
--TEST-Hello World
--FILE-<?php print 'Hello World'; ?>
--EXPECT-Hello World
Apoio:
Expectativas
--TEST-Hello World
--FILE-<?php print 'Hello World
--EXPECTF-Parse error: syntax error, unexpected $end in %s.php on line %d
S %s - qualquer string
S %f - real
S %d - numero
S %x - hexadecimal
S %c - um character
S %e – separador de
S %w - espaço
S %i - inteiro
diretórios
Apoio:
Expectativas
--TEST-Hello World
--FILE-<?php print 'Hello World
--EXPECTREGEX-Parse error: (parse|syntax) error, unexpected
$end in .* on line .*
Apoio:
Limpando a sujeira
--TEST-Removendo arquivos temporá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--
Apoio:
Mexendo nas Configurações
--TEST-Definindo um fuso para portabilidade
--INI-date.timezone=UTC
--FILE---EXPECT--
Apoio:
Portavel e Seletivo
--TEST-Verificando se estamos em uma plataforma de 32
bits...
--SKIPIF-<?php
if (PHP_INT_SIZE != 4) die('32bit platforms
only');
?>
--FILE---EXPECT-Apoio:
Portavel e Seletivo
--TEST-Verificando se estamos no Linux...
--SKIPIF--
<?php
if (!stristr(PHP_OS, 'Linux')) die('Linux
only');
?>
--FILE---EXPECT-Apoio:
Fui eu!
--TEST-Um teste com uma seção de créditos
--CREDITS-Jack <[email protected]>
#testfest PHPSP on 2009-06-20
--FILE---EXPECT--
Apoio:
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--]
Apoio:
Roda ai Zé!
S $ make tests 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
=====================================================================
Apoio:
Roda na Janela!
S TEST_EXECUTABLE_PHP=auto sapi/cli/php run-tests.php
path/to/test
S Bash
S export
TEST_PHP_EXECUTABLE=/mnt/workspace/PHP/php53/sapi/cli/
php
S $TEST_PHP_EXECUTABLE /mnt/workspace/PHP/php53/runtests.php $*
Apoio:
Ambientes
S Versão para testes:
S PHP 5.3.2 ou 5.3.3-dev (SVN)
S Ambientes disponíveis
S Virtual Machine de Ubuntu (Virtual Box)
S Windows (run-tests.php)
S Seu ambiente local já compilado
Apoio:
O Que testar? Como achar?
S Verificar GCOV - http://gcov.php.net/
S Procurar linhas não testadas
S Extensões com pouca cobertura
S Página de Funções testadas - http://qa.php.net/tested-
methods.php
S Achar casos de uso não testados
Apoio:
Regras
S Tudo em inglês!
Faltou alguma informação?
http://wiki.php.net/qa/testfest-2010
Apoio:
Processo de escrita
S Selecione o que irá testar
S Avise o resto da sala
S Escreva o teste
S Rode o teste com PHP 5.3
S Rode o teste no Trunk e 5.2 [opcional]
S Commite o teste em nosso SVN
S Avise um monitor
Apoio:
Não Acabou!
S Evento se estende até setembro
S Repositório continuará aberto
S Não pare de contribuir!
S Setembro
S Palestra + testes
S Encerramento geral
Apoio:
Apoio
Ao código!!
S
License
S This presentation material is published under the Attribution-Share Alike 3.0
Unported license.
S You are free:
S
S
to Share – to copy, distribute and transmit the work.
to Remix – to adapt the work.
S Under the following conditions:
S
S
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.
S For any reuse or distribution, you must make clear to others the license
terms of this work.
S Any of the above conditions can be waived if you get permission from the
copyright holder.
S Nothing in this license impairs or restricts the author's moral rights.
Licença
S
Este material para apresentação é publicado sob a licença “Attribution-Share Alike 3.0
Unported”.
S
Você é livre para:
S
S
S
Compartilhar – copiar, distribuir e transmitir o trabalho.
Alterar – adaptar o trabalho.
Sob as seguintes condições:
S
S
Atribuição. Você deve atribuir o trabalho na maneira especificada pelo autor ou licenciador
(mas não de maneira a sugerir que eles te apóiam você ou a maneira como você utiliza o
trabalho).
Distribua da mesma forma. Se você alterar, transformar ou construir algo baseando-se neste
trabalho, você deve distribuir o trabalho resultante apenas sob a mesma licença, uma licença
similar ou compatível.
S
Para qualquer reuso ou distribuição, você deve deixar claro aos outros os termos de
licenciamento deste trabalho.
S
Qualquer uma das condições acima pode ser ignorada se você obtiver a permissões do
proprietário dos direitos autorais.
S
Nada nesta licença danifica ou restringe os direitos morais do autor.
Apoio:
Download

PHP: Aqui, lá e como chegar