You are on page 1of 4

PHP Quality Assurance Toolchain

V. O. L. Echeverria e G. P. O. Alencar
Resumo Ferramentas que auxiliam no desenvolvimento de
aplicaes e softwares so vastas, muitas linguagens possuem
ferramentas especficas, com a linguagem PHP no diferente,
ela possui diversas ferramentas que auxiliam no
desenvolvimento dos projetos. A importncia dessas
ferramentas para que o software obtenha a qualidade desejada
notvel. Com o auxilio desses frameworks possvel obter
um produto de qualidade.
Palavras-chave PHP, software, ferramentas, aplicaes,
linguagens.

I. INTRODUO
As pginas web e softwares tm sido cada vez mais
utilizados por empresas e pessoas. Por trs dessas
aplicaes existem linguagens de programao que
organizam e estruturam a aplicao. O PHP uma
linguagem de programao muito utilizada atualmente
principalmente em aplicaes WEB. uma linguagem
de interpretao livre que pode ser embutida em HTML
para o desenvolvimento de sites. Criar pginas em PHP
vantajoso, pois, ela oferece suporte a base de dados
como: Oracle, MySQL, SQLLite e outras. Tambm
oferece suporte a protocolos muito utilizados na internet
tais como: HTTP, IMAP, SNMP, POP3 entre outros.
O desenvolvimento de aplicaes web ou desktop
envolve fases de codificao, testes e documentao.
muito trabalhoso para o programador e para o tester
testar as aplicaes manualmente para encontrar bugs e
erros, pois existem diferentes tipos de testes de software
como: teste unitrio que visa testar trechos de cdigo do
programa, teste de segurana que verifica o
comportamento da aplicao quando h tentativa de
acesso ilegal, teste de integrao que visa garantir que as
partes
desenvolvidas
separadamente
funcionem
perfeitamente quando integradas e teste de desempenho
que verifica o tempo de resposta e desempenho da
aplicao de acordo com o que se espera.
Devido a esses fatores que foram criadas
ferramentas que ajudam os desenvolvedores a testar
softwares de maneira automatizada e dinmica.
importante utilizar ferramentas de testes, documentao e
anlise de cdigo a fim de verificar possveis bugs,
trechos de cdigo morto e mensurar desempenho.
Todas essas ferramentas que ajudam no
desenvolvimento de aplicaes contribuem para que a
equipe ou programador ganhem tempo, produtividade e
tenham um produto final com uma qualidade ideal.
Tambm ajudam a simplificar o processo de
desenvolvimento e podem aumentar as possibilidades de
encontrar defeitos antes que a aplicao seja
comercializada.
Para a linguagem PHP h um conjunto de ferramentas
criadas para auxiliar no desenvolvimento de aplicaes e
softwares, elas oferecem diversas funcionalidades como
testes automatizados, anlise de cdigo e documentao.
Existem diversas como: PHP Debug, PHP Dyn,
PHPUnit, PHP CodeSniffer, PHP Dox, PHP-IDS,

vfsStream, PHP LOC, PHP Copy/Paste Detector, PHP


Linq entre outros.
Esses programas possuem funes especificas e suas
aplicaes so vastas. PHP Debug e PHP Dyn so
exemplos de ferramentas de correo de erros, PHP Unit
utilizada para fazer testes de nos cdigos, PHP
CodeSniffer utilizado para ajudar a manter o cdigo
unificado, PHP Dox ajuda a pesquisar ttulos nas pginas
de documentao PHP.
Neste artigo sero apresentados o as principais
funcionalidades dessas e outras ferramentas e alguns
exemplos de uso.

II. FERRAMENTAS PARA


DESENVOLVIMENTO EM PHP
Existem diversas ferramentas que so utilizadas no
desenvolvimento de aplicaes em PHP, dentre elas
existem ferramentas de documentao como PHP
Documentator e PHP DOX. O primeiro uma ferramenta
de documentao utilizada em cdigos escritos na
linguagem, ele pode gerar documentao a partir de
comentrios feitos no cdigo e capaz de gerar arquivos
em formato HTML, PDF ou XML, sendo que possu
interface e linha de comandos, ele oferece a opo de que
seja escrito uma documentao especfica para
programadores e outra para usurios finais e organiza de
maneira encadeada os tutoriais ou explicaes de um
trecho de cdigo de modo que fiquem agrupados e
relacionados para fcil interpretao. J o PHP DOX
uma ferramenta que tambm gera documentao para
projetos escritos em PHP e documentao de API. Ele
coleta as informaes sobre um cdigo e gera um arquivo
no formato XML, neste documento pode ser agregada
informaes geradas a partir de outras ferramentas como
PHPUnit ou PHP CodeSniffer. O PHP Dox utiliza o
PHP-Parse a fim de sempre poder fazer analises e gerar
documentao de cdigos que utilizem sintaxes
atualizadas da linguagem, uma das principais
caractersticas do PHP DOX a sua velocidade para
gerar a documentao sendo capaz de cria-la em poucos
segundos.
O PHP Copy/Paste Detector um modulo utilizado
para encontrar trechos de cdigo duplicados no projeto,
mas tambm pode encontrar erros em potencial e trechos
de cdigo morto. baseado em um algoritmo de busca
de Rabin-Karp, e tambm h variaes para ser utilizado
nas linguagens C, C++, C# e Java.
Para detectar um erro no cdigo que possivelmente se
tornar grave se no for corrigido utilizado o PHP Code
Sniffer, que faz uma varredura completa no cdigo
buscando erros de semntica e no cdigo. Ele detecta
deficincias no projeta que, por mais que permitam a
execuo do cdigo, podem se gerar bugs ou prejudicar o
desenvolvimento do projeto.
Outro mdulo utilizado PHP Loc, que basicamente
serve para mensurar as linhas de cdigo escritas em um
projeto, fazendo com que fique mais fcil de encontrar os

erros apontados por um compilador em linha de


comando. Tambm pode ser usado para facilitar as
estimativas de custo do software por linhas de cdigo.
Um framework que pode ser utilizado para testar o
sistema de arquivos de um projeto vfsStream, que testa
se o sistema de arquivo realmente foi gerado sendo que
os testes no afetam sistema de arquivos real, apenas
uma cpia que simula o sistema de arquivos. Outra
caracterstica que ele oferece testar o aplicativo fora do
espao do disco, para isso preciso definir uma cota para
o tamanho total da estrutura do arquivo.
Um mdulo utilizado para fazer teste unitrios em
cdigos escritos em PHP5, o PHPUnit que serve para
escrever e executar os testes automatizados. Ele suporta
que uma declarao de dependncia seja entre os
mtodos.
Uma ferramenta Open Source que fornece
informaes a respeito do PHP e que pode ser utilizada
para encontrar e corrigir erros em cdigos o PHP
Debug. Ele pode mostrar informaes dos tempos de
processamento dos cdigos, verificar o desempenho e
capaz de gerar um grfico com essas informaes.
Dentre as ferramentas de segurana existe o Pixy:
PHP Security Scanner que foi desenvolvido em Java, ele
faz pesquisas automticas em PHP4 a fim de detectar
vulnerabilidades de injeo de cdigo XSS e SQL aps a
pesquisa ele gera um relatrio que contm as provveis
vulnerabilidades encontradas na varredura. Importante
para aplicaes que trabalham com banco de dados.

quantidade de constantes, o tamanho do projeto que


possui informaes relativas quantidade de linhas de
cdigo, linhas comentadas, as dependncias e a
complexidade. Um exemplo de documentao gerada
pode ser visto na figura 2.
Figura 2 Documentao gerada pelo PHP Dox

III. EXEMPLOS PRTICOS


Um framework utilizado analisar o padro do cdigo e
verificar se h inconsistncias o PHP Code Sniffer, ele
analisa o cdigo a partir de um padro definido para o
projeto, este padro pode ser comercial ou definido pelo
usurio, para verificar quais so os padres que vm
instalados com ele basta executar na linha de comando:
phpcs i, ele exibir quais so os padres que ele contm.
Para analisar um projeto de acordo com um padro basta
executar o seguinte comando no terminal: phpcs
standard=Squiz nomedoprojeto.php, ele ir gerar uma
sada apontando os erros encontrados e em quais linhas
esto. Para gerar um sumrio com os erros e avisos
encontrado basta adicionar o parmetro report=sumary,
e a sada ficar como na figura 1.

Fonte: Site do PHP Dox2.


Testar cdigos que trabalham com sistemas de
arquivos pode ser ruim se for preciso manipular o
sistema real, ento se utiliza o VfsStream, que simula um
diretrio ou sistema de arquivos para que os mtodos
possam ser testados em um cdigo, como na figura 3.
Figura 3

Figura 1

Fonte: Adlers Blog1.


O PHP Dox gera uma documentao com
informaes relativas ao projeto tais como: a estrutura
geral do projeto contendo o nmero de interfaces, a
quantidade de classes, de mtodos e o seu escopo, a
1

Disponvel em: <http:// adlermedrado.com.br/2012/06/ phpcodesniffer.html>. Acessado em: 02 de nov. de 2014

Disponvel em: <http://phpdox.de/demo/phpDox/index.xhtml>Acesso


em 02 nov. de 2014.

Fonte: Site m-takagi3.


Utilizar o VfsStream pode ser vantajoso pois o teste
tem mais preciso, o sistema de arquivos a ser utilizado
fica a cargo do desenvolvedor que far os testes e no
preciso utilizar mtodos que verifiquem se o diretrio
existe depois do teste, reduzindo cdigo e operaes.
Mensurar as linhas de cdigo e analisar a estrutura de
um projeto que faz a ferramenta PHP LOC. Ao analisar
um diretrio o PHP LOC ir gera uma sa com a
quantidade de diretrios listados, de arquivos listados, a
quantidade de linhas de cdigo, classes, funes
dependncias e outras informaes como pode ser visto
na figura 4.

duplicadas de um total de linhas e o tempo gasto para


analisar e a memria consumida.
Figura 5

Figura 4

Fonte: Github5.
Teste de software uma das fases mais importantes do
desenvolvimento de softwares, para tornar os testes
automatizados e detectar erros e bugs existem softwares
que controlam esses testes, o PHP Unit uma ferramenta
utilizada para esse fim. O PHP Unit framework de
cdigo aberto, baseado no JUnit, utilizado para gerar
testes unitrios e automatizados para projetos em PHP.
Uma das caractersticas dele o fato de ser integrado
com IDEs como o NetBeans, alm disso ele permite a
criao de cdigos de testes de maneira rpida e tambm
muito utilizado.

IV. OPINIO
As ferramentas para de desenvolvimento de projeto na
linguagem PHP so vastas, muitas apresentam funes
especficas e por isso possvel desenvolver aplicaes
com qualidade. Algumas ferramentas so complicadas de
instalar, mas cumprem com o especificado. Seja para
testar o programa ou para apenas contar as linhas, essas
ferramentas se mostram fundamentais para que seja
ganho tempo e qualidade no desenvolvimento dos
projetos.
Fonte: Github4.

V. CONCLUSO

Em grandes ou pequenos projetos comum que


existam trechos de cdigo duplicados, porm isso
aumenta o tamanho do cdigo e pode deixar trechos de
cdigo intil. Para verificar se um cdigo est com
cdigo duplicado preciso utilizar o PHP Copy/Paste
Detector, que capaz de fazer uma varredura nos
diretrios e arquivos do projeto e encontrar o que est
duplicado. A figura 5 demonstra a sada gerada por um
teste do PHP Copy/Paste Detector.
Na figura 5 o teste aponta que foram encontrados 34
clones, sendo que existem 1273 linhas duplicadas em 11
arquivos, tambm mostra o percentual de linhas

Com o crescimento da procura por novas tecnologias


o desenvolvimento de softwares passou a ser cada vez
mais requisitado, empresas renem equipes e projetam
um software que ser comercializado.
O desenvolvimento de softwares envolve vrias etapas
dentre elas o teste e a verificao da qualidade do
produto final. Essa etapa exaustiva se feita sem auxlio
de ferramentas com as apresentadas no artigo.
A criao das ferramentas citadas no artigo e outras
tem o intuito de facilitar e diminuir o tempo gasto para
desenvolvimento de softwares a fim de garantir uma
excelente qualidade no produto que ser gerado.
Por
fim,
para
continuar
melhorando
o
desenvolvimento de softwares necessrio que as
ferramentas que auxiliam o processo continuem sendo

Disponvel em: <http://www.m- takagi.org/docs/php/pocket_ guide/


4.0/pt_br/test-doubles.html>. Acesso em: 02 nov. de 2014.
Disponvel em: <https://github.com/sebastianbergmann/phploc/
blob/master/README.md>. Acesso em: 02 nov. de 2014.

Disponvel em :< https://github.com/sebastianbergmann/phpcpd>


Acesso em: 02 de nov. de 2014.

criadas e sempre atualizadas, pois cada vez mais sero


necessrias essas ferramentas.

VI. REFERNCIAS
[1] Beaver, G. (2011) Php Documentator guider
to create fantastic documentation. Disponvel
em:<http://manual.phpdoc.org/HTMLframesCo
nverter/default/>. Acesso em: 02 nov. 2014.
[2] Php Dox Software documentation (2014).
Disponvel
em:
<http://phpdox.de/demo/phpDox/index.xhtml>.
Acesso em: 02 nov. 2014.
[3] Bergmann, S. (2014). PHP LOC. Disponvel
em:<https://github.com/sebastianbergmann/php
loc>. Acesso em: 02 nov. 2014.
[4] Bergmann, Sebastian. (2014). PHP LOC.

Disponvel
em:
<https://github.com/sebastianbergmann/phploc/
blob/master/README.md>. Acesso em: 02
nov. 2014.
[5] Php_CodeSniffer (2014). Disponvel em:
<http://pear.php.net/manual/pt_BR/package.php
.php-codesniffer.intro.php>. Acesso em: 02 nov.
2014.
[6] Kleine, Frank. (2014) VfsStream. Disponvel
em:<https://github.com/mikey179/vfsStream/wi
ki>. Acesso em: 02 nov. 2014.
[7] Pixy; the PHP security scanner (2007).

Disponvel
em:
<http://blog.evaria.com/2007/pixy-the-phpsecurity-scanner/>. Acesso em: 02 nov. 2014.
[8] Medrado, Adler (2014). Como usar o
PHP_CodeSniffer.
Disponvel
em:<http://adlermedrado.com.br/2012/06/phpcodesniffer.html>. Acesso em: 02 nov. 2014.
[9] Bergmann, Sebastian. (2014). PHP Unit.

Disponvel
em:
<http://www.mtakagi.org/docs/php/pocket_guid
e/4.0/pt_br/test-doubles.html>. Acesso em: 02
nov 2014.

You might also like