você está aqui: Home  → Coluna do Cesar Brod

De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Testes Ágeis em PHP - parte 1

Por Cesar Brod

Data de Publicação: 22 de Maio de 2014

Sempre que ministro um treinamento sobre metodologias ágeis, envolvendo Scrum e Extreme Programming (XP), a parte relativa à testes é uma das mais polêmicas.

Atualmente, estou desenvolvendo um trabalho de "coaching" de métodos ágeis na startup Sysvale de Juazeiro, na Bahia, criada para ser o local de residência em software público para os alunos da Univasf (Universidade do Vale do São Francisco). Essa residência, inspirada na que já é comum em cursos da área da saúde, visa especializar os estudantes em serviços e modelos de negócios empreendedores que tenham por base as soluções disponibilizadas no portal do software público brasileiro.

Assim, como estamos montando, aqui na Sysvale, nosso ambiente de testes ágeis em PHP, escrevo essa nova série de artigos relatando como estamos fazendo isso, ao mesmo tempo em que aproveito para revisar e atualizar o material que uso em meus cursos sobre o assunto. Ao final da série, disponibilizarei o ambiente virtualizado que pode ser usado para o aprendizado.

A escolha do ambiente integrado de desenvolvimento

Usar ou não um IDE (Integrated Development Environment, ou ambiente integrado de desenvolvimento) já é, em si, uma boa discussão. Pessoalmente acredito que, antes de se usar um IDE, é preciso ter um contato próximo com a linguagem de programação através de um editor de texto com destaque de sintaxe, um verificador de estilo e os comandos, no terminal, para trabalhar com o código em um repositório. Tenho que confessar, porém, que a facilidade de se clicar botões no IDE para executar as funções já mencionadas, além de testes unitários e outras coisas que desenvolvedores gostam (ou têm que aprender a gostar) de fazer, possibilita um considerável aumento de produtividade.

Tivemos algumas conversas e noites mal dormidas na Sysvale enquanto decidíamos sobre qual IDE usar. Afinal, fomos bastante influenciados por uma pesquisa do portal sitepoint e optamos pelo NetBeans. Ele estava em terceiro lugar na pesquisa, mas era primeiro entre os IDEs de código aberto.

A partir da página de downloads do NetBeans é possível escolher a versão para o desenvolvimento em PHP para as arquiteturas e sistemas operacionais diversos. No nosso caso, a arquitetura é de 64 bits e o sistema operacional é o Linux. Uma vez feito o download, a instalação ocorreu sem problemas em uma máquina rodando o Linux Mint 16:

sh netbeans-8.0-php-linux.sh

Ao final do processo, um conveniente lançador foi adicionado em Menu > Desenvolvimento > NetBeans IDE. Na tela inicial há um link para Trilha de Aprendizado de PHP e HTML5 - uma visita que vale a pena!

Padrões de codificação

Uma das regras do Extreme Programming é a de que a equipe de desenvolvimento deve chegar a um acordo quanto aos padrões de codificação. Na Sysvale, a bíblia para o padrão de codificação em PHP é o Drupal Coding Standards e a verificação automatizada da obediência ao padrão é feita com o phpcheckstyle.

Tome um tempo para instalar o phpcheckstyle seguindo as instruções na página do projeto. Em resumo, você deve escolher a versão mais recente do programa, disponível nesse link, descompactá-la em um diretório conveniente com o comando unzip e, claro, ter os prerrequisitos básicos para o desenvolvimento em php instalados. Por enquanto, basta garantir que você tenha esses prerrequisitos executando o comando a seguir:

sudo apt-get install php5-cli curl php5-json unzip

Dentro da pasta onde você descompactou o phpcheckstyle, use a sintaxe a seguir para testar se seu programa em PHP está dentro do padrão (adeque os caminhos de acordo com a sua instalação):

php run.php --src ../testes/teste.php

Aqui na Sysvale, como o phpcheckstyle é muito utilizado, os desenvolvedores adicionaram um alias em seu arquivo .bashrc:

alias phpstyle='php /opt/phpcheckstyle/run.php --config "/opt/phpcheckstyle/config/default.cfg.xml" --format console --src'

Dessa forma, fica bem mais fácil verificar o padrão de codificação de vários arquivos PHP que estejam, por exemplo, na pasta /var/www/htdocs:

phpstyle /var/www/htdocs

Usando o phpcheckstyle com o NetBeans

Já deu pra ver o quanto é fácil verificar o estilo de programas em PHP usando o phpcheckstyle na linha de comando. Para poder usá-lo no NetBeans temos que instalar o phpMD / PHP CodeSniffer Netbeans Plugin. Faça o download do mesmo a partir da página do projeto e o instale usando o sistema de Plugins do NetBeans. Para isso, no menu do NetBeans vá para Ferramentas > Plug-ins, escolha Obtidos por Download e Adicionar Plug-ins. Na nova janela aberta, navegue em seu sistema de arquivos até a pasta onde você fez o download do novo plugin (ele terá a extensão *nbm*) e selecione-o. Tome um tempo para ler a sua descrição e clique em Instalar. Siga o passo-a-passo da instalação, aceitando a licença do plugin e, uma vez finalizado o processo, verifique que ele está ativado na aba Instalados. Aproveite para ver os demais plugins que a distribuição para PHP do NetBeans já deixa ativados por padrão.

Agora, vá para o menu Ferramentas > Opções e clique em PHP. Na aba Checkstyle, use a opção para detectar o PHP em linha de comando (CLI), tipicamente /usr/bin/php e em PHPCheckstyle run file navegue até o local onde você descompactou o programa (se você seguiu os passos exatamente como descritos aqui, ele estará em /opt/phpcheckstyle/run.php).

Ainda na mesma janela, em *Config*, especifique o caminho para o arquivo de configuração do PHPCheckstyle (/opt/phpcheckstyle/config/default.cfg.xml). Clique em Aplicar e Ok. Instruções detalhadas para todo esse processo estão nesse link.

Vamos criar um novo projeto com um programa em PHP dentro dele. Para isso, use o menu Novo > Projeto e selecione PHP, Aplicação PHP e clique em Próximo. Dê um nome para o projeto e escolha uma pasta onde seus arquivos serão armazenados e clique em Finalizar. Na janela superior esquerda do NetBeans, clique em Arquivos de Código-Fonte e, em seguida, clique no ícone que corresponde a Novo arquivo (o primeiro ícone à esquerda, logo abaixo do menu principal). Escolha PHP, Arquivo PHP e clique em Próximo. Dê um nome ao seu arquivo, por exemplo, teste. Clique em Finalizar.

Na janela do editor de código, digite o seguinte:

<?php

require 'calculadora.php';

class TesteCalculadora extends PHPUnit_Framework_TestCase
{
 public function testeSoma()
 {
   $c = New Calculadora;
   $resultado = $c->soma(4, 3);
   $this->assertEquals(7, $resultado);
 }
}

Não se preocupe em entender esse código agora. Depois falaremos mais sobre ele. Se você já conhecer PHP, pode usar um de seus programas nessa experiência.

Na janela Projetos, no campo superior esquerdo da interface do NetBeans, clique no nome do programa recém criado e, uma vez que ele aparece destacado (fica com o fundo esverdeado), clique nele com o botão direito do mouse. No menu contextual deve aparecer, bem abaixo, o checkstyle. Clique nele e veja os erros de estilo, aplicando as correções devidas. Lembre-se de salvar seu programa antes de rodar novamente o checkstyle.

No próximo artigo dessa série falarei sobre testes unitários com o PHP.

Conheça o livro "Scrum: Guia Prático para Projetos Ágeis", de autoria de Cesar Brod

Resenha: O maior desafio desta obra é tornar-se um livro de cabeceira e referência simultaneamente. A expectativa do autor é a de que os leitores o leiam de cabo a rabo e, ao final, o guardem na biblioteca pública de sua preferência para que ele esteja ao seu alcance e ao alcance de todos os demais que, por qualquer razão, não pagaram por ele.

O livro não discute se o Scrum é um processo de engenharia, um método ágil ou um conjunto de ferramentas. O Scrum é uma atitude. Aqui você encontrará histórias sobre o Scrum e métodos ágeis, começando por suas origens, suas aplicações, sempre ilustrando com casos práticos de uso. Várias referências serão apontadas (algumas escritas pelo próprio autor, outras em parceria com Joice Käfer), muitas mais ou menos acadêmicas, para enriquecer a experiência do leitor, mas apenas como acessórios à leitura deste livro.

Em resumo, aqui você encontrará história, contextualização, aplicação, método e documentação. Não espere encontrar burocracia, chatice e opressão. Todo método deve ser divertido. Qualquer livro deve ser prazeroso. Temos plena consciência dos excelentes competidores na prateleira a seu lado, atraindo sua visão.

Downloads

»»» Saiba mais sobre esta obra «««

Sobre o autor

Cesar Brod usa Linux desde antes do kernel atingir a versão 1.0. Dissemina o uso (e usa) métodos ágeis antes deles ganharem esse nome. Ainda assim, não está extinto! Escritor, consultor, pai e avô, tem como seu princípio fundamental a liberdade ampla, total e irrestrita, em especial a do conhecimento.

Mais sobre o Cesar Brod: [ Linkedin ] | [ Twitter ] | [ Tumblr ].

Veja a relação completa dos artigos de Cesar Brod