Você está na página 1de 184

Automao e

Gerenciamento de Testes

Aumentando a Produtividade
com as Principais Solues
Open Source e Gratuitas

Cristiano Caetano
1

Prefcio ...................................................................................................5
Agradecimentos .......................................................................................7
Introduo...............................................................................................8
Proposta deste livro................................................................................ 11
Consideraes iniciais ............................................................................. 12
Captulo 1 Gesto de defeitos ............................................................... 14
Mantis................................................................................................ 15
Instalando e configurando ................................................................ 16
Criando um novo projeto.................................................................. 17
Registrando e modificando um bug ................................................... 19
Meus Bugs ...................................................................................... 22
Sumrio dos bugs ............................................................................ 23
News .............................................................................................. 24
Change Log..................................................................................... 25
Documentao do projeto ................................................................ 25
Configurao do Mantis .................................................................... 26
Captulo 2 Gesto de testes .................................................................. 27
TestLink ............................................................................................. 28
Instalando e configurando ................................................................ 29
Criando um novo projeto.................................................................. 30
Adicionando requisitos ..................................................................... 31
Adicionando test cases ..................................................................... 34
Associando test cases aos requisitos.................................................. 38
Associando keywords aos test cases.................................................. 39
Criando test suites ........................................................................... 41
Associando nveis de prioridade a test suite ....................................... 44
Associando usurios ao test suite ...................................................... 44
Criando builds e milestones .............................................................. 45
Executando os Test Cases ................................................................ 46
Captulo 3 Gesto de projetos ............................................................... 49
php-collab .......................................................................................... 50
Instalando e configurando ................................................................ 51
Criando um novo projeto.................................................................. 52
Adicionando tarefas ......................................................................... 55
Visualizando o calendrio do projeto ................................................. 56
Listas de discusses ......................................................................... 57
Adicionando arquivos ao projeto ....................................................... 59
Bookmarks compartilhados ............................................................... 61
Adicionando clientes ........................................................................ 62
Requisies de suporte..................................................................... 65
Relatrios........................................................................................ 66
Captulo 4 Automao de testes funcionais e de aceitao....................... 67
Selenium ............................................................................................ 68
Selenium Core ................................................................................. 69

Selenium IDE .................................................................................. 73


Selenium RC (Remote Control).......................................................... 78
Marathon ........................................................................................... 83
Criando um novo projeto.................................................................. 84
Criando um script de teste................................................................ 87
Criando um mdulo reutilizvel ......................................................... 90
Executando os scripts de teste por meio do JUnit ............................... 92
Criando uma fixture ......................................................................... 93
SoapUI............................................................................................... 95
Criando um novo projeto.................................................................. 96
Criando um test case ..................................................................... 100
Criando asseres.......................................................................... 102
Depurando os Test Cases ............................................................... 104
Adicionando novos Test Steps ao Test Case ..................................... 105
Criando testes de desempenho e stress ........................................... 107
Captulo 5 Automao de testes de performance .................................. 109
JMeter ............................................................................................. 110
Configurando um test plan ............................................................. 111
Adicionando e configurando um thread group .................................. 112
Gravando um teste por meio de um HTTP Proxy .............................. 114
Adicionando asseres ................................................................... 117
Adicionando um timer .................................................................... 120
Adicionando listeners (relatrios) .................................................... 121
Executando e visualizando os resultados.......................................... 123
Monitorando a performance do servidor........................................... 126
Microsoft WEB Application Stress........................................................ 131
Gravando um teste por meio de um HTTP Proxy .............................. 132
Executando e visualizando os resultados.......................................... 136
Configurando o comportamento dos testes ...................................... 138
Configurando Page Groups ............................................................. 139
Configurando usurios para autenticao......................................... 141
Captulo 6 Controle de verses............................................................ 142
CVS ................................................................................................. 143
TortoiseCVS .................................................................................. 146
Repositrio.................................................................................... 147
Importao ................................................................................... 147
Retirada dos arquivos do repositrio................................................ 151
Modificando os arquivos ................................................................. 152
Inspecionando as modificaes ao longo do tempo........................... 154
Configurando o TortoiseCVS ........................................................... 155
Captulo 7 Ferramentas de apoio......................................................... 156
Tail for Win32................................................................................... 157
HeavyLoad ....................................................................................... 158
Process Explorer ............................................................................... 159

VMWARE .......................................................................................... 160


Microsoft Pairwise Independent Combinatorial Testing ......................... 161
Burp Suite ........................................................................................ 162
Camstudio ........................................................................................ 163
MWSnap .......................................................................................... 164
WinMerge......................................................................................... 165
Data Generator ................................................................................. 166
Firebug ............................................................................................ 167
Consideraes Finais ............................................................................ 168
Ferramentas similares no apresentadas neste livro............................. 168
Repositrios de ferramentas Open Source ........................................... 171
Alternativas comerciais ...................................................................... 173
Referncias sobre teste de software ................................................... 177
Sobre o autor ................................................................................... 178
Bibliografia Recomendada ..................................................................... 179
Bibliografia .......................................................................................... 181
ndice Remissivo .................................................................................. 182

Prefcio
Caro Leitor,
O grande escritor e poeta Carlos Drummond de Andrade disse uma vez que
todas as vezes que se abre uma livraria deveramos comemorar com festa, tal
qual o nascimento de uma criana. Da mesma forma que quando nasce um
livro, seja por qual mdia ou formato que ele venha, deveramos comemorar
com festa e grande orgulho. Um livro representa uma expresso viva de um
conjunto de conhecimentos que se acumularam e que foi compartilhado. Este
conhecimento pode ser um conto, uma histria, um conhecimento tcnico, ou
at mesmo um pouco de sabedoria que todos ns aprendemos diariamente.
Este livro um reflexo da experincia profissional madura em Teste e
Qualidade de Software vivida pelo autor, meu amigo Cristiano Caetano.
Quando vemos os altos custos do processo de desenvolvimento subindo cada
vez mais e se exigindo nveis de excelncia cada vez maiores, percebe-se que
a necessidade em se conhecer ferramentas que tenham custo zero se tornou
uma exigncia.
A maioria das empresas usa, ou vo usar ainda, alguma ferramenta Open
Source ou Gratuita. O Linux um exemplo real disto e tem tomado cada vez
mais espao. Muitas grandes empresas tm aberto o cdigo de seus produtos
e optado por ter lucro atravs da venda de servio associado ferramenta,
ao invs de "ganhar" puramente com a venda da ferramenta. um modelo
novo de negcio. uma nova viso. algo que veio pra ficar. Voc pode at
no gostar e evitar. Pode desconfiar, mas impossvel negar o que est a.
uma nova transformao. Concluso: Transforme-se ou voc ser
transformado. Ser transformado em um profissional que se "esqueceu" de
se atualizar. Infelizmente, no mercado de trabalho, quem se esquece tornase um esquecido.
Leve este livro para todos os lados e no tenha medo de perguntar ao
Cristiano, ou de pesquisar nas referncias citadas no livro. Este livro , em
essncia, uma ferramenta de apoio para quem deseja usar solues em
Automao e Gerenciamento de Testes de Software.
Quando o Cristiano me convidou em um primeiro instante para prefaciar o
seu livro, relutei um pouco, talvez porque queria entender a "alma" do livro.
Afinal sou escritor, e cada livro para mim como um filho. Aceitei, e me
orgulho do convite aceito, porque percebi a essncia central deste livro:
compartilhar com convico honesta uma grande experincia na rea de
Testes e Qualidade de Software. Repito: compartilhar. Disseminar. Dividir. No

caso aqui: dividir para conquistar a sua transformao no modo de ver como
as solues Open Source podem ser teis no seu trabalho. Este livro como
um afilhado para mim, e como "padrinho" dei sugestes que foram
aproveitadas de modo a aproximar voc, caro Leitor, fazendo-o sentir-se em
casa.
Devido a limitaes de tamanho do livro e por algumas questes de
inviabilidade tcnica no foi possvel colocar "tudo de tudo" no que se refere
a automao de testes. A cada dia surgem novas solues, e algumas
amadurecem como o caso do Testlink, usado mundialmente e suportado por
um grupo forte de usurios, e outras tantas acabam no vingando. Por isso o
Cristiano colocou as que ele considerou mais usadas ou mais maduras. Mas
lembre-se: a nica certeza a mudana. Por mais que o livro seja tambm
uma "foto", este tambm uma ferramenta madura e extremamente til,
tendo um pouco de tudo tal qual um "canivete suo". Essa a proposta do
Cristiano. Simples, prtica e multiuso.
O livro se divide em grandes reas que vo ajud-lo a tirar o mximo de
proveito do conhecimento aqui colocado. Por exemplo, se voc no desejar
ler o livro de forma seqencial, pode faz-lo indo direto no conhecimento que
voc precisa. O livro tanto servir como livro base como livro de referncia.
Muitos tm medo de compartilhar conhecimento, mas o Cristiano Caetano
no teve medo de compartilhar o conhecimento aqui colocado, da mesma
forma que no tive medo em escrever de forma transparente aqui. O maior
conhecimento e aquele que dividido e de preferncia no menor espao de
tempo. O futuro ainda no foi escrito, e cada um escreve o seu. Este livro
uma ferramenta para lhe ajudar a escrever de forma positiva o seu futuro na
rea de Automao de Testes de Software.
Caro Leitor, acredite em voc e no tenha medo. Boa leitura.

Leonardo Molinari
Consultor de Qualidade de Software, Palestrante e Autor de diversos livros
como "Testes de Software", "BTO - Otimizao da Tecnologia do Negcio",
"Gesto de Projetos" e "Gerncia de Configurao".
E-mail: lm7k@yahoo.com.br
Blog: http://diariodaqualidade.blogspot.com/
site: http://br.geocities.com/lm7k/testes.html

Agradecimentos
Eu gostaria de agradecer todas as pessoas que direta ou indiretamente
contriburam para a realizao desta obra. Estou muito grato pelas crticas,
conselhos e sugestes dos revisores: Leonardo Molinari, Renan Sucupira,
Daniel Cunha, Jos Papo, Cristiane Machado e Sagiane Dvila.
Um obrigado especial para os meus gestores na HP Invent. O apoio,
compreenso e aquele empurrozinho especial na hora certa foram
essenciais para a finalizao desta obra e de outras realizaes na minha vida
pessoal. Sem vocs, esse livro no seria possvel: obrigado.

Introduo
"If you don't have the right equipment for
the job, you just have to make it yourself"
MacGyver
Coloque um rdio transistorizado prximo ao processador do computador

em que o teste estiver rodando, sintonize aproximadamente na estao 975


AM e voc poder literalmente escutar o zumbido do processador
funcionando. Essa tcnica bastante interessante para voc descobrir se o
processador est realmente realizando algum processamento durante algum
teste ou se nada est acontecendo. O cenrio descrito no pargrafo anterior,
apesar de representar uma situao extrema, um timo exemplo de um
testador altamente eficaz em ao. medida que se queira executar os
testes com maior eficincia, torna-se necessrio estar familiarizado com a
maior gama de ferramentas que possam vir a ajudar a execuo dos testes,
simular um componente de hardware ou software que no estiver disponvel,
observar o trfego da rede, entre outros cenrios. As situaes so ilimitadas,
tudo depende do tipo de aplicao que estiver sendo testada
O trecho apresentado acima parte de um dos meus artigos mais
conhecidos: Os 7 hbitos dos Testadores Altamente Eficazes1; e o fio
condutor deste livro. Aps a publicao do artigo Os 7 hbitos dos
Testadores Altamente Eficazes a idia de criar um novo artigo apresentando
quais eram as ferramentas que os testadores altamente eficazes
normalmente usam ficou martelando na minha cabea por semanas. Eu
acabei me envolvendo com outros temas e escrevendo outros artigos at o
dia em que eu comecei a ler o Guide to the CSTE Common Body of
Knowledge do QAI. Em certo ponto do livro desta certificao de teste de
software abordado o tema Utilizao de ferramentas. O livro afirma que
apesar de no existir uma categorizao amplamente difundida das
ferramentas de teste, a experincia tem mostrado elas so normalmente
agrupadas em 8 reas distintas:
1.
2.
3.
4.
5.
6.
7.
8.
1

Ferramentas
Ferramentas
Ferramentas
Ferramentas
Ferramentas
Ferramentas
Ferramentas
Ferramentas

de automao de testes de regresso;


para gesto de defeitos;
para testes de Performance/Estresse;
manuais;
de rastreabilidade;
de cobertura de cdigo;
para gesto de testes;
de apoio execuo dos testes;

http://www.linhadecodigo.com.br/artigos.asp?id_ac=1083

Naquele momento, entre riscos e rabiscos numa folha em branco o artigo


ganhou forma. Uma das premissas bsicas originais era de que somente
ferramentas Open Source2 e gratuitas fariam parte do escopo. Entretanto, o
escopo sofreu muitas modificaes ao longo da sua histria. O artigo que iria
abordar apenas ferramentas utilizadas por testadores altamente eficazes,
acabou abraando ferramentas das reas sugeridas pelo Guide to the CSTE
Common Body of Knowledge, tais como ferramentas para gesto de
defeitos, gesto de testes, automao de testes de regresso e assim por
diante. Assim que finalizei o primeiro rascunho do MindMap contendo as
reas e ferramentas que seriam abordadas no artigo, ficou muito claro que
no daria para apresentar tudo o que eu queria apenas num artigo; ficaria
exageradamente superficial.
Ento surgiu a idia do livro. Aps uma pequena pesquisa, cheguei a
concluso de que o escopo deveria ser reduzido a fim de evitar que o livro
levasse muito tempo para ser escrito e ficasse muito desatualizado (as
ferramentas Open Source evoluem numa velocidade fantstica). Dessa forma
eu tinha um escopo e um deadline definidos. As primeiras pginas deste livro
foram escritas em dezembro de 2006 e, entre semanas extremamente
produtivas e semanas sem nenhuma pgina escrita, as ltimas pginas foram
finalizadas em julho de 2007 (a ltima linha sendo escrita no ltimo dia, mas
dentro do prazo previsto).
Mas no pensem que foi fcil. Como voc poder notar mais adiante no
captulo Ferramentas similares no apresentadas neste livro, o escopo
original era bastante extenso e interessante. Foi duro ter que remover o
Bugzilla, o XPlanner, o WEBLoad, entre outros do escopo. De qualquer forma,
o escopo teve que ser redefinido tendo em mente as ferramentas realmente
essenciais; outro ponto que pesou muito foi a facilidade de uso e o tamanho
das comunidades apoiando e suportando estas ferramentas. Ferramentas
com grandes comunidades e liberaes freqentes foram privilegiadas em
relao s outras.
De qualquer forma, tive o cuidado de manter as ferramentas do escopo
original para que o leitor possa explorar as outras alternativas no
apresentadas neste livro. Considere isso, um atalho onde o joio j foi
separado do trigo para voc.
No entanto, por mais abrangente que sejam as categorias e ferramentas
apresentadas neste livro, seria ingnuo pensar que ele ofereceria solues
que atendessem a necessidade de todos os leitores. Pensando neste cenrio,
fiz uma pesquisa extensa cujo resultado uma lista detalhada com os
maiores e melhores repositrios de ferramentas Open Source do mundo, a
2

http://en.wikipedia.org/wiki/Open_source

fim de permitir que voc leitor, possa escolher a soluo que atenda a sua
necessidade.
E para voc, que estava prestes a perguntar sobre as ferramentas
comerciais. Sim, elas esto listadas no captulo Alternativas comerciais.
Para cada categoria apresentada neste livro, foram listadas algumas das
solues comerciais existentes. No foram esgotadas as opes, mas j um
bom ponto de partida.
Ah, e para leitor que quiser aprender ou aprimorar os seus conhecimentos
em teste de software, o captulo Referncias sobre teste de software
apresenta uma listagem dos livros nacionais mais importantes da atualidade
sobre esse tema.
Este livro foi escrito com muito cuidado e fundamentado na experincia e
na pesquisa realizada pelo autor. No entanto, podem existir erros,
inconsistncias ou omisses que no foram percebidas durante as revises.
Sinta-se vontade para entrar em contato com o autor para que as devidas
correes sejam realizadas.
Boa leitura,
Cristiano Caetano
c_caetano@hotmail.com
http://softwarequality.spaces.live.com/

Julho/2007
1a Edio v1.0

10

Proposta deste livro


A proposta deste livro apresentar as ferramentas Open Source e gratuitas
essenciais para a gesto e automao de testes de software, sem no entanto,
esgotar o assunto. O livro tem o propsito de apresentar um catlogo das
melhores opes disponveis atualmente e os seus principais recursos. Porm,
no faz parte do escopo deste livro, detalhar todos os recursos existentes,
todas as possibilidades de configurao ou tornar os leitores especialistas nas
ferramentas apresentadas.
Dessa forma, o objetivo principal deste livro fornecer informaes e
subsdios a fim de que o leitor seja capaz de utilizar os conhecimentos
adquiridos para aprofundar-se no assunto e escolher a soluo que melhor
atenda a sua necessidade.
Por ltimo, devemos lembrar que este livro no foi escrito para substituir o
manual de nenhuma das ferramentas apresentadas. Dvidas especficas
devem ser sanadas por meio dos manuais ou por meio dos fruns de
discusses das comunidades que suportam as ferramentas.
Tambm no faz parte do escopo deste livro apresentar a teoria ou tcnicas
de teste de software. O captulo Referncias sobre teste de software
apresenta uma listagem com os livros nacionais mais importantes da
atualidade sobre esse tema.
Este livro ser unicamente comercializado por meio eletrnico (e-book). Esta
foi uma deciso pessoal do autor para viabilizar a venda do livro por um
preo justo a fim de permitir que todas as pessoas interessadas possam
compr-lo. Tambm foi deciso do autor no utilizar nenhum tipo de
mecanismo de segurana ou senha neste livro com base na premissa de que
o livro tem um preo justo e que qualquer um pode pagar por ele.
com base nessa relao de confiana que voc est neste momento lendo
estas linhas por um preo justo. Mas, no entanto, se por algum motivo este
livro est sendo til para voc, mas voc no pagou por ele, peo que voc
prestigie o autor e compre o livro no endereo abaixo para que o autor possa
escrever outros livros com preos acessveis tanto para voc quanto para
outras pessoas interessadas em teste de software:
http://shop.linhadecodigo.com.br/

11

Consideraes iniciais
Desenvolver software de qualidade no mais um requinte para poucos,
transformou-se num fator de competitividade num mercado cada vez mais
exigente. O filsofo Nietzsche, no sculo passado, alertava: "Com o aumento
da competio, a qualidade se torna mera propaganda. Vence aquele que
melhor engana".
Essa receita muito simples e fcil de seguir, todavia, quem tomar esse tipo
de postura estar fadado ao fracasso. Nos dias de hoje, a qualidade tornouse requisito imprescindvel para garantir a sobrevida de um software no
mercado.
Podemos concluir que as empresas mais competitivas so as empresas que
trabalham sob a tica da melhoria contnua dos processos para aumentar a
qualidade do processo de desenvolvimento e, conseqentemente, aumentar
a qualidade do produto final.
Neste contexto, devemos destacar adoo crescente de ferramentas para dar
suporte ao processo de melhoria contnua. Estas ferramentas servem para
dar suporte a todas as atividades relacionadas ao ciclo de vida de
desenvolvimento de software: da concepo implantao.
Como mencionamos anteriormente, a proposta deste livro apresentar as
ferramentas Open Source e gratuitas essenciais para a gesto e automao
de testes de software. Dessa forma, a figura abaixo apresenta a relevncia
de cada tipo de ferramenta apresentada neste livro em relao s fases de
um ciclo de vida de desenvolvimento de software:

12

Neste livro sero apresentadas e sugeridas diversas ferramentas Open Source


e gratuitas. Para o autor, considerado Open Source Software 3 (OSS) todo e
qualquer software que permita simultaneamente:
A sua utilizao para qualquer fim e sem restries;
A distribuio de cpias sem restries;
O acesso ao seu cdigo fonte e o estudo do seu funcionamento;
A sua adaptao s necessidades de cada um;
A possibilidade de disponibilizar a terceiros quaisquer alteraes
introduzidas;
Est fora do escopo deste livro, comparar e debater as vantagens da
utilizao de ferramentas Open Source em relao a ferramentas comerciais4.
No entanto, devemos destacar que a principal vantagem na adoo de
ferramentas Open Source a economia na aquisio de licenas, uma vez
que estas ferramentas so distribudas gratuitamente. Por outro lado, existe o
custo de formao, suporte e manuteno. Neste caso, cada organizao
deve utilizar os seus prprios critrios para calcular o ROI (Return of
Investment) e o TCO (Total Cost of Ownership) na ocasio da adoo de uma
ferramenta Open Source.

3
4

http://www.opensource.org/
http://cio.uol.com.br/estrategias/2005/08/22/idgnoticia.2005-08-22.4315880495

13

Captulo 1 Gesto de defeitos


A gesto de defeitos uma das atividades primordiais de um processo de
teste de software. Por meio da gesto de defeitos podemos acompanhar a
qualidade do software em teste com base nos defeitos cadastrados pelos
testadores ao longo de um ciclo de teste. Com base nesses dados, podemos
identificar reas problemticas da aplicao onde os riscos so maiores e
planejar atividades preventivas.
A gesto de defeitos pode ser implementada por meio de ferramentas
automatizadas (bug tracking system). Estas ferramentas devem oferecer um
repositrio central e padronizado onde todos os membros do time podero
cadastrar os defeitos, acompanhar o ciclo de vida destes defeitos e emitir
relatrios de gesto.
Na figura abaixo, voc poder visualizar os principais passos de um processo
de gesto de defeitos formal e os papis associados:

Na tabela abaixo voc poder ver a ferramenta que ser apresentada nas
prximas sees:
Mantis

http://www.mantisbt.org/

14

Mantis
O Mantis5 uma ferramenta Open Source cujo principal objetivo registrar e
acompanhar os bugs encontrados em um projeto, desde o seu nascimento
at o seu fechamento. Neste cenrio, o ciclo de vida gerenciado pelo Mantis
inicia-se quando um bug registrado; as fases seguintes so empregadas
para a confirmao, correo, reviso e o fechamento do bug. Cada bug
recebe um nmero seqencial nico a fim de identific-lo durante as
operaes de consulta, relatrios e modificaes. Por outro lado, diversas
informaes so agregadas ao bug durante as fases que compem o seu
ciclo de vida, como por exemplo, status, prioridade, severidade, comentrios,
anexos, etc.
Entre as diversas funcionalidades oferecidas pelo Mantis, devemos destacar
as seguintes:
Pode ser executado em qualquer plataforma que suportar PHP/Apache
(Windows, Linux, Mac, Solaris, AS400/i5, etc);
Suporta vrios bancos de dados (MySQL, MS SQL, PostgreSQL);
Suporta mltiplos mecanismos de autenticao (Interna, LDAP, HTTP
Basic, Active Directory);
Traduzido em 68 lnguas diferentes (incluindo "portuguese_brazil");
Criao ilimitada de projetos e relatos de defeitos;
Controle de acesso e nveis de permisses para os usurios;
Ciclo de vida dos defeitos (worflow) personalizvel;
Gerador interno de relatrios e grficos (possibilidade para exportar os
dados nos formatos CSV, Excel e Word);
Mecanismo para a criao de campos personalizveis (custom fields);
Notificaes por email automticas ou por meio de RSS Feeds;
Integrao com ferramentas de controle de verses (Subversion e
CVS);
Interface Webservice (SOAP) para integrao com outras ferramentas;
MantisWAP Suporte a dispositivos mveis (funcionalidade paga);

http://www.mantisbt.org/ (os exemplos deste livro so apresentados com a verso 1.0.5)

15

Instalando e configurando
Para instalar o Mantis, voc dever seguir os seguintes passos (a ttulo de
exemplo estamos sugerindo a utilizao do XAMMP a fim de satisfazer os
softwares requeridos para a utilizao do Mantis (Apache, MySQL, PHP)).
1. Faa o download do XAMMP6.
2. Instale e inicialize o XAMMP conforme a orientao do manual ou
descompacte o arquivo zip em alguma pasta no seu computador.
3. Aps instalado, configure um password para o usurio root do Mysql
usando um dos mtodos sugeridos no site do XAMMP7.
4. Faa o download do Mantis.
5. Descompacte o arquivo zip na pasta htdocs do XAMMP (ex: c:\xamppwin32-1.6.2\xampp\htdocs\mantis_1.0.5).
6. Abra o seu navegador e acesse o seguinte endereo:
(http://localhost/mantis_1.0.5/).
7. Na janela Pre-Installation Check, preencha os campos username com
'root' e o campo password com a senha configurada no passo 3.
8. Deixe os valores default nos demais campos.
9. Pressione o boto Install/Upgrade Database.
10. Abra o seu navegador e acesse o seguinte endereo:
(http://localhost/mantis_1.0.5/login_page.php).
11. Faa o login com o usurio padro (administrator/root). Lembre-se de
mudar a senha deste usurio.
Caso voc prefira utilizar esta ferramenta com todos os textos traduzidos
para a lngua portuguesa, ento siga os passos descritos abaixo:
1. Faa o login normalmente com o seu usurio e senha.
2. Clique no menu My Account e ento selecione a
Preferences.
3. No campo Language selecione a opo "portuguese_brazil".
4. Pressione o boto "Update Prefs".

6
7

opo

http://www.apachefriends.org/en/xampp.html
http://www.apachefriends.org/pt_br/faq-xampp-windows.html

16

Criando um novo projeto


To logo o Mantis seja instalado e configurado, a sua primeira ao dever
ser cadastrar um novo projeto para que seja possvel cadastrar bugs e utilizar
as demais funcionalidades. Para tal tarefa, voc dever clicar no menu
Manage e ento selecionar a opo Manage Projects. A pgina Add
Project dever ser exibida, conforme o exemplo apresentado na Figura 1.

Figura 1: Criando um novo projeto no Mantis

Nesta pgina voc poder fornecer diversas informaes sobre o projeto,


como por exemplo: o Nome do projeto, Status, Descrio do projeto entre
outras informaes. Uma vez que o projeto for cadastrado, voc poder
selecion-lo na lista de projetos existentes e inserir informaes adicionais,
tais como: SubProjetos, Categorias, Verses, Campos Personalizados,

17

Usurios do projeto, entre outras informaes conforme o exemplo


apresentado na Figura 2.

Figura 2: Configurando um projeto no Mantis

18

Registrando e modificando um bug


Para registrar (cadastrar) um bug no Mantis, voc dever clicar no menu
Report Issue. A pgina Enter Report Details dever ser exibida, como
pode ser visto na Figura 3. Nesta pgina voc dever preencher os campos
de acordo com o comportamento do bug encontrado. Se for necessrio voc
poder anexar alguma imagem ou arquivo para auxiliar o entendimento e
evidenciar a existncia do bug. O Mantis oferece tambm a opo de registro
de bugs por meio de uma pgina avanada Advanced Report. A pgina
Advanced Report exibe novos campos de preenchimento. Esta pgina
usada normalmente por usurios mais experientes que conseguem fornecer
mais detalhes sobre o bug encontrado.

Figura 3: Registrando um bug no Mantis

Se for necessrio voc poder ver a lista dos bugs existentes. Para tal tarefa,
voc dever clicar no menu View Issues. A pgina Viewing Issues dever
ser exibida, como pode ser visto na Figura 4. Esta pgina, por default, lista
todos os bugs abertos. No entanto, voc poder configurar filtros especficos

19

conforme a sua necessidade com base nos campos de filtragem exibidos na


parte superior desta pgina. O Mantis tambm permite que voc salve o filtro
para posterior utilizao.

Figura 4: Visualizando os bugs abertos

importante ressaltar que os bugs listados so apresentados em diferentes


cores. Cada cor significa o status do bug conforme a legenda apresentada na
parte inferior desta pgina (Figura 4) Voc poder clicar sobre qualquer bug
da lista a fim de abrir a pgina Viewing Issue e modificar qualquer
informao relacionada ao bug, como pode se visto no exemplo apresentado
na Figura 5.

20

Figura 5: Modificando um bug

Uma vez dentro desta pgina, alm de modificar as informaes do bug, voc
poder criar uma associao de relacionamento com outros bugs (relacionado
a, filho de, pai de, etc) e tambm poder selecionar a opo para monitorar o
bug e receber um e-mail sempre que alguma informao for modificada.

21

Meus Bugs
O Mantis oferece uma pgina onde voc poder visualizar de forma resumida
e consolidada todos os bugs. Para visualizar esta pgina, voc dever clicar
no menu My View. Basicamente, esta pgina exibe os bugs registrados,
atribudos e monitorados por voc. Alm dessas informaes, voc poder
tambm visualizar os bugs recentemente modificados, bugs que no foram
atribudos e assim por diante, como pode visto no exemplo apresentado na
Figura 6. De qualquer maneira, caso seja necessrio, voc poder modificar
os filtros default usados para exibir as informaes nesta pgina por meio do
link [^] existente em cada seo.

Figura 6: Meus bugs

22

Sumrio dos bugs


O Mantis oferece uma pgina onde voc poder visualizar o sumrio de todos
os bugs registrados. Para tal tarefa, voc dever clicar no menu Summary.
Nesta pgina, voc poder visualizar o sumrio dos bugs, gerar relatrios e
grficos com estatsticas, como pode ser visto no exemplo apresentado na
Figura 7.

Figura 7: Sumrio dos bugs

23

News
O Mantis tambm oferece uma funcionalidade para a divulgao de notcias
News. Por meio desta funcionalidade, voc poder registrar qualquer
novidade ou aviso aos demais usurios do Mantis. Para tal tarefa, voc
dever clicar no menu News. A pgina Add News dever ser exibida,
como pode ser visto na Figura 8. A notcia registrada poder ser vista na
pgina principal do Mantis.

Figura 8: Registrando novidades e avisos

24

Change Log
Por meio do Change Log, voc poder ver todas as correes associadas a
um determinado release (verso). Para visualizar o Change Log, voc dever
clicar no menu Change Log, como pode ser visto no exemplo apresentado
na Figura 9.

Figura 9: Change Log

Documentao do projeto
Outra funcionalidade interessante a possibilidade de adicionar a
documentao do projeto no Mantis. Para realizar tal tarefa, voc dever
clicar no menu Docs e fazer o upload dos documentos, como pode ser visto
no exemplo apresentado na Figura 10.

Figura 10: Documentao do projeto

25

Configurao do Mantis
O Mantis oferece uma srie de pginas de configuraes que voc poder
utilizar para realizar customizaes a fim de atender as suas necessidades.
Para tal tarefa, voc dever clicar no menu Manage. Basicamente, esta
pgina exibe as diversas reas que voc poder realizar algum tipo de
customizao tais como: criao de campos personalizados, gesto de
usurios, configurao de workflows, notificao por email, entre outros
(como pode ser observado no exemplo apresentado na Figura 11).

Figura 11: Configurando o Mantis

26

Captulo 2 Gesto de testes


A gesto de testes o corao de um processo de teste de software. A
gesto de testes importante para o planejamento e controle das atividades
de um projeto de teste.
A gesto de testes pode ser implementada por meio de ferramentas
automatizadas (test management system). Estas ferramentas devem oferecer
um repositrio central e padronizado onde os lderes de testes podero criar
suites com casos de testes, atribuir os casos de testes aos testadores,
acompanhar o status da execuo dos testes e emitir os relatrios com
mtricas e estatsticas.
Na figura abaixo, voc poder visualizar os principais passos de um processo
de gesto de testes formal e os papis associados:

Na tabela abaixo voc poder ver a ferramenta que ser apresentada nas
prximas sees:
TestLink

http://www.teamst.org/

27

TestLink
O TestLink8 uma aplicao Open Source cujo principal objetivo gerenciar
as atividades de testes de um projeto. Por meio do TestLink voc poder criar
Test Cases e organiz-los em Test Suites.
Voc tambm poder associar um conjunto de Test Cases a um testador e
acompanhar os resultados da execuo dos testes, assim como, gerar
relatrios com diversas mtricas para o acompanhamento da execuo dos
testes.
O TestLink oferece um recurso para que voc possa registrar e organizar os
requisitos do projeto, assim como, associar os Test Cases aos requisitos.
Dessa forma, voc poder garantir o rastreamento entre os requisitos e os
Test Cases por meio de uma matriz de rastreabilidade.
Adicionalmente, o TestLink permite a integrao com Mantis. Por meio dessa
integrao, quando um Test Case falhar, voc conseguir associar os bugs
cadastrados no Mantis a este Test Case.
Entre as diversas funcionalidades oferecidas pelo TestLink, devemos destacar
as seguintes:
Pode ser executado em qualquer plataforma que suportar
PHP/Apache/Mysql (Windows, Linux, Mac, Solaris, AS400/i5, etc);
Traduzido em vrias lnguas diferentes (incluindo "Brazil Portuguese");
Controle de acesso e nveis de permisses por papis (Lder, Testador,
etc);
Os casos de testes so organizados hierarquicamente em sutes;
Os casos de testes podem ser classificados por palavras-chave
"keyword" para facilitar a pesquisa e organizao;
Criao ilimitada de projetos e casos de testes;
Os ciclos de testes podem ser priorizados e atribudos aos testadores;
Gerador interno de relatrios e grficos (possibilidade para exportar os
dados nos formatos CSV, Excel e Word);
Integrao com ferramentas de gesto de defeitos (Bugzilla, Mantis,
Jira);

http://www.teamst.org/ (os exemplos deste livro so apresentados com a verso 1.6.2)

28

Instalando e configurando
Para instalar o TestLink, voc dever seguir os seguintes passos (a ttulo de
exemplo estamos sugerindo a utilizao do XAMMP a fim de satisfazer os
softwares requeridos para a utilizao do TestLink (Apache, MySQL, PHP)).
1. Faa o download do XAMMP9.
2. Instale e inicialize o XAMMP conforme a orientao do manual ou
descompacte o arquivo zip em alguma pasta no seu computador.
3. Aps instalado, configure um password para o usurio root do Mysql
usando um dos mtodos sugeridos no site do XAMMP10.
4. Faa o download do TestLink.
5. Descompacte o arquivo zip na pasta htdocs do XAMMP (ex: c:\xamppwin32-1.6.2\xampp\htdocs\testlink-1.6.2).
6. Abra o seu navegador e acesse o seguinte endereo: (http://localhost/
testlink-1.6.2/install/index.php).
7. Na janela de instalao, selecione a opo New installation.
8. Na janela TestLink Setup, preencha os campos login com 'root' e o
campo password com a senha configurada no passo 3.
9. Deixe os valores default nos demais campos.
10. Pressione o boto Setup TestLink.
11. Abra o seu navegador e acesse o seguinte endereo:
(http://localhost/testlink-1.6.2/login.php).
12. Faa o login com o usurio padro (admin/admin). Lembre-se de
mudar a senha deste usurio.
Caso voc prefira utilizar esta ferramenta com todos os textos traduzidos
para a lngua portuguesa, ento siga os passos descritos abaixo:
1.
2.
3.
4.

Faa o login normalmente com o seu usurio e senha.


Clique no menu Personal.
No campo Locale selecione a opo "Portuguese (Brazil)".
Pressione o Boto "Update".

http://www.apachefriends.org/en/xampp.html
http://www.apachefriends.org/pt_br/faq-xampp-windows.html

10

29

Criando um novo projeto


Assim que o TestLink for instalado e configurado, a sua primeira ao dever
ser criar um novo produto (projeto). Para tal tarefa, voc dever ir para a
seo Product Management e ento clicar no menu Create New Products.
A pgina Product Management dever ser exibida, conforme o exemplo
apresentado na Figura 12.

Figura 12: Criando um novo projeto no TestLInk

importante ressaltar que durante a criao do projeto, voc poder


desabilitar o recurso de gerenciamento de requisitos oferecido pelo TestLink,
caso voc utilize alguma outra ferramenta para este fim. Alm disso, voc
poder associar uma cor ao projeto criado. Dessa forma, o fundo das pginas
sempre sero da mesma cor que foi associada ao projeto neste passo.

30

Adicionando requisitos
Assim que o projeto for criado, o prximo passo a criao dos requisitos
(caso voc tenha habilitado o recurso de gerenciamento de requisitos).
Primeiro, voc dever adicionar uma Especificao de Requisito. Para realizar
tal tarefa, v para a seo Requirements e ento clique no menu
Requirement Specification. A pgina Requirement Specification dever ser
exibida, conforme o exemplo apresentado na Figura 13. importante
ressaltar que segundo a organizao do TestLink, cada requisito deve ser
associado a uma Especificao de Requisito, que representa a grosso modo
um agrupador de requisitos semelhantes (algo como uma sute ou seo de
requisitos), como pode ser visto no modelo apresentado na Figura 14.

Figura 13: Adicionando uma especificao de requisito

31

Figura 14: Relacionamento entre os componentes do TestLink

To logo a Especificao de Requisito seja criada, voc dever clicar sobre


ela. A pgina Edit Requirement Specification dever ser exibida, conforme o
exemplo apresentado na Figura 15.

Figura 15: Edio das especificaes de requisitos

32

Nesta pgina voc poder importar os requisitos por meio de um arquivo


externo (*.CSV) ou adicionar o requisito manualmente. Observe ainda que,
nesta pgina voc poder tambm visualizar a lista de requisitos existentes,
assim como, gerar um relatrio (por meio do boto Analyze) que demonstra
um sumrio dos requisitos cobertos e os no cobertos por testes.
Para adicionar um requisito manualmente, voc dever clicar no boto
Create New REQ. A pgina Create a new Requirement dever ser exibida,
conforme o exemplo apresentado na Figura 16. Convm lembrar, alis, que
durante a criao do requisito, voc poder identificar no campo Status se
o requisito testvel ou no.

Figura 16: Criando um novo requisito

33

Adicionando test cases


Assumindo que os requisitos j foram criados, o prximo passo deve ser a
criao dos Test Cases. Em primeiro lugar, no entanto, voc dever criar uma
Especificao de Teste. Para tal tarefa, clique no menu Specification. A
pgina Test Specification dever ser exibida, conforme o exemplo
apresentado na Figura 17. Nesta pgina clique no boto New Component
para criar um novo componente.

Figura 17: Criando um novo Componente

De forma similar aos requisitos, a Especificao de Teste dever obedecer a


uma organizao hierrquica definida pelo TestLink. Nessa condio, segundo
a hierarquia do TestLink, cada Especificao de Teste composta por um ou
mais Componentes, que por sua vez pode ter uma ou mais Categorias. Cada
Categoria agrupa um ou mais Test Cases, como pode ser visto no modelo
apresentado na Figura 18.

34

Figura 18: Elementos de uma Configurao de Teste

Uma vez que o Componente for criado, voc dever selecion-lo na lista dos
componentes disponveis e clicar no boto New Category. A pgina Create
Category dever ser exibida, conforme o exemplo apresentado na Figura 19.

Figura 19: Criando uma nova Categoria

35

Finalmente, uma vez que a Categoria for criada, voc dever selecion-la na
lista de categorias a fim de criar um novo Test Case. Nesta pgina voc
poder importar os Test Cases por meio de um arquivo externo (*.CSV) ou
criar o Test Case manualmente. Para tal tarefa, voc dever clicar no boto
Create Test Cases. A pgina Create Test Case dever ser exibida,
conforme o exemplo apresentado na Figura 20.

Figura 20: Criando um novo Test Case

36

O TestLink tambm permite a impresso dos Test Cases de uma Categoria ou


Componente. Para realizar tal tarefa, voc dever ir para a seo Test
Specification e ento clicar no menu Print Test Cases. A pgina Print Test
Case Specification dever ser exibida, conforme o exemplo apresentado na
Figura 21. Nesta pgina voc dever selecionar a Categoria ou Componente
que voc deseja imprimir e configurar as opes de impresso na seo
Print Options.

Figura 21: Imprimindo Test Cases

37

Associando test cases aos requisitos


Conforme discutido anteriormente, o TestLink permite que voc possa
associar os Test Cases aos requisitos. Dessa forma, voc poder garantir o
rastreamento entre os requisitos e os Test Cases por meio de uma matriz de
rastreabilidade. Para realizar tal tarefa, voc dever ir para a seo
Requirements e ento clicar no menu Assign Requirements. A pgina
Assign Requirements to Test Case dever ser exibida, conforme o exemplo
apresentado na Figura 22. Nesta pgina voc dever selecionar o Test Case
desejado, depois selecionar os requisitos disponveis e, por ltimo, associar o
Test Case aos requisitos (por meio do boto Assign).

Figura 22: Associando test cases aos requisitos

38

Associando keywords aos test cases


O TestLink permite que uma keyword (palavra-chave) seja associada aos
Test Cases. As keywords facilitam a realizao de pesquisas ou filtros dos
Test Cases disponveis. Para criar uma Keyword, voc dever ir para a seo
Keywords e ento clicar no menu Create Keywords. A pgina Enter New
Keyword dever ser exibida, conforme o exemplo apresentado na Figura 23.

Figura 23: Criando keywords

To logo as keywords sejam criadas, voc poder associa-las aos Test Cases.
Para realizar tal tarefa, voc dever ir para a seo Keywords e ento clicar
no menu Assign Keywords. Uma vez dentro desta pgina, voc dever
selecionar o Test Case desejado. A pgina Assign Keywords dever ser
exibida, conforme o exemplo apresentado na Figura 24. Nesta pgina voc
dever selecionar a keyword desejada e, por ltimo, associa-la ao Test Case
(por meio do boto Assign).

39

Figura 24: Associando keywords

40

Criando test suites


Voc poder criar Test Suites para agrupar os Test Cases por similaridade.
Para criar uma Test Suite, voc dever ir para a seo Test Suite
Management e ento clicar no menu Create Test Suite. A pgina New
Test Suite dever ser exibida, conforme o exemplo apresentado na Figura
25. Voc poder criar uma Test Suite baseada em outra j existente. Alm
disso, durante a criao da Test Suite voc dever informar se deseja
controlar a permisso de acesso (dessa forma, voc poder determinar quais
usurios podem visualizar e executar os testes desta Test Suite).

Figura 25: Criando test suites

Uma vez que a primeira Test Suite for criada, um novo conjunto de menus e
opes ser exibido na rea esquerda da pgina principal do TestLink. A
maioria dessas novas opes serve para o gerenciamento da Test Suite,
execuo dos Test Cases e gerao de relatrios, como pode ser visto no
exemplo apresentado na Figura 26. preciso lembrar que voc deve
selecionar a Test Suite (seta vermelha da Figura 26) antes de comear a
realizar qualquer operao para evitar modificaes na Test Suite errada.

41

Figura 26: Gerenciamento das Test Suites

Por ltimo, voc dever associar os Test Cases a Test Suite recm criada.
Para tal tarefa, voc dever selecionar a Test Suite desejada, conforme
orientado no pargrafo anterior. Em seguida, v para a seo Test Case
Suite e ento clique no menu Add Test Cases. A pgina Add Test Cases to
the Test Suite dever ser exibida, conforme o exemplo apresentado na
Figura 27.

42

Figura 27: Associando Test Cases a Test Suite

Nesta pgina voc dever selecionar o Test Case desejado (com base no
Componente ou Categoria selecionada) e associar ao Test Suite por meio do
boto Add selected Test Cases. importante lembrar que voc poder
utilizar as keywords para filtrar os Test Cases conforme a sua necessidade.

43

Associando nveis de prioridade a test suite


Voc tambm poder associar nveis de prioridade, nveis de risco e um dono
para a Test Suite. Para tal tarefa, voc dever ir para a seo Test Case
Suite e ento clicar no menu Assign Risk and Ownership. A pgina Assign
Ownership dever ser exibida, conforme a Figura 28.

Figura 28: Associando riscos ao Test Suite

Associando usurios ao test suite


Voc poder associar e realizar o controle de permisses de usurios nos
Test Suites existentes. Para tal tarefa, voc dever ir para a seo Test Suite
Management e ento clicar no menu Define User / Test Suite Rights. A
pgina Assign Ownership dever ser exibida, conforme a Figura 29.

Figura 29: Associando usurios ao Test Suite

44

Criando builds e milestones


medida que se queira executar os Test Cases de um Test Suite voc dever
criar um Build. Um Build identifica uma verso ou liberao do software que
ser testado. Toda execuo dos Test Cases deve ser associada a um Build.
Para criar um Build, voc dever ir para a seo Test Suite Management e
ento clicar no menu Build Management. A pgina Create build for Test
Suite dever ser exibida, conforme a Figura 30.

Figura 30: Criando um Build

Convm lembrar, alis, que voc poder criar Milestones a fim de definir
marcos no tempo do seu projeto. Um Milestone define critrios mnimos que
devem ser atingidos baseado nos nveis de prioridades associados aos Test
Suites. Para criar um Milestone, voc dever ir para a seo Test Suite
Management e ento clicar no menu Edit / Delete Milestones.

45

Executando os Test Cases


Uma vez que os Test Suites e os Builds tenham sido criados, voc poder
executar os Test Cases existentes. Para tal tarefa, voc dever ir para a
seo Test Execution e ento clicar no menu Execute Tests. A pgina
Test Results dever ser exibida, conforme a Figura 31.

Figura 31: Executando os Test Cases

Nesta pgina, o testador poder selecionar os Test Cases com base nos Test
Suites existentes ou por meio de filtros criados no menu Navigation Filter &
Settings (rea esquerda desta pgina).
Aps a execuo do Test Case, o testador dever definir o resultado da
execuo (Not run, Pass, Failed ou Blocked) e algum comentrio caso seja
necessrio. importante lembrar que as mtricas e relatrios so gerados a
partir dos dados informados pelos testadores durante a execuo dos Test
Cases.
Adicionalmente, o TestLink oferece uma configurao especial que permite a
integrao com Mantis (e outras ferramentas de gesto de defeitos). Essa

46

configurao dever ser realizada manualmente, conforme descrito no


manual do TestLink11. Dessa forma, voc poder registrar um bug no Mantis
e associar este bug ao Test Case que falhou no TestLink, como pode ser visto
no exemplo apresentado na Figura 32.

Figura 32: Associando bugs aos test cases

Por fim, para gerar os relatrios com as mtricas de execuo dos testes,
voc dever ir para a seo Test Execution e ento clicar no menu Test
reports and Metrics. A pgina Overview of available Test Reports and
Metrics dever ser exibida. Nesta pgina voc poder gerar mtricas ou
relatrios de acordo com o Build selecionado. Os diversos relatrios
existentes agrupam as informaes por Build, Test Suite, Componente,
Keyword, Milestone, Prioridade e at mesmo por Requisito, como pode ser
observado na Figura 33.
11

http://testlink.org/mantis/file_download.php?file_id=72&type=bug

47

Figura 33: Mtricas e relatrios gerados pelo TestLink

48

Captulo 3 Gesto de projetos


A gesto de projetos, assim como a gesto de testes, faz parte do corao de
um processo de teste (e desenvolvimento) de software. Por meio da gesto
de projetos, as atividades do projeto so planejadas, organizadas e
controladas num nvel mais macro. A gesto de projetos define e acompanha
as fases e os principais marcos de um projeto, assim como, os recursos
humanos e o esforo necessrio para atingir os objetivos do projeto.
A gesto de projetos pode ser implementada por meio de ferramentas
automatizadas (project management system). Essas ferramentas, alm de
viabilizar a gesto de projetos, tambm oferecem diversas facilidades, como
por exemplo: repositrios de arquivos, agendas e calendrios compartilhados,
wikis, entre outros. Na figura abaixo, voc poder visualizar a seqncia
tpica de fases no ciclo de vida de um projeto, conforme descrito no
Conjunto de Conhecimentos em Gerenciamento de projetos (PMBOK):

Na tabela abaixo voc poder ver a ferramenta que ser apresentada nas
prximas sees:
php-collab

http://www.php-collab.org

49

php-collab
O php-Collab12 uma aplicao Open Source cujo principal objetivo
gerenciar projetos e facilitar a colaborao entre os membros de um time. O
php-Collab oferece um recurso onde o projeto pode ser gerenciado sob o
ponto de vista do time do projeto (gerenciando e exibindo todas as
informaes especficas do projeto) ou do cliente (oferecendo apenas
informaes relevantes ao cliente e dados para o acompanhamento das
atividades). Entre as diversas funcionalidades oferecidas pelo php-collab,
devemos destacar as seguintes:
Pode ser executado em qualquer plataforma que suportar
PHP/Apache/Mysql (Windows, Linux, Mac, Solaris, AS400/i5, etc);
Permite a criao de duas vises do projeto: viso do time e viso do
cliente;
Criao ilimitada de projetos e tarefas;
Gerador interno de relatrios e grficos (possibilidade para exportar os
dados nos formatos CSV, Excel e Word);
Controle de acesso e nveis de permisses por usurio;
Organizao do projeto por meio de fases, tarefas e sub-tarefas;
Integrao com o Mantis (ferramenta de gesto de defeitos);
Gerenciador integrado de requisies de suporte tcnico;
Calendrios e Bookmarks compartilhados;
Gerenciador de listas de discusses;
Versionamento de artefatos;

12

http://www.php-collab.org (os exemplos deste livro so apresentados com a verso 2.5)

50

Instalando e configurando
Para instalar o php-collab, voc dever seguir os seguintes passos (a ttulo de
exemplo estamos sugerindo a utilizao do XAMMP a fim de satisfazer os
softwares requeridos para a utilizao do php-collab (Apache, MySQL, PHP)).
1. Faa o download do XAMMP13.
2. Instale e inicialize o XAMMP conforme a orientao do manual ou
descompacte o arquivo zip em alguma pasta no seu computador.
3. Aps instalado, configure um password para o usurio root do Mysql
usando um dos mtodos sugeridos no site do XAMMP14.
4. Crie um database no Mysql por meio do phpMyAdmin integrado no
XAMMP (http://localhost/phpmyadmin/).
5. Faa o download do php-Collab.
6. Descompacte o arquivo zip na pasta htdocs do XAMMP (ex: c:\xamppwin32-1.6.2\xampp\htdocs\phpcollab-2.5).
7. Abra o seu navegador e acesse o seguinte endereo:
(http://localhost/phpcollab-2.5/installation/setup.php).
8. Na janela de instalao, selecione a opo Offline installation
(firewall/intranet, no update checker).
9. Na janela Settings, preencha o campo database com o nome do
database criado no passo 4. Preencha os campos login com 'root' e o
campo password com a senha configurada no passo 3. Preencha o
campo Admin Password com o password que voc quiser atribuir ao
administrador.
10. Deixe os valores default nos demais campos e pressione o boto Save.
11. Abra o seu navegador e acesse o seguinte endereo:
(http://localhost/phpcollab-2.5/).
12. Faa o login com o usurio padro (admin/a senha definida no passo
9).
Caso voc prefira utilizar esta ferramenta com todos os textos traduzidos
para a lngua portuguesa, ento siga os passos descritos abaixo:
1. Abra a janela de login do php-collab.
2. No campo Language selecione a opo "Brazilian Portuguese".
3. Faa o login normalmente com o seu usurio e senha.

13
14

http://www.apachefriends.org/en/xampp.html
http://www.apachefriends.org/pt_br/faq-xampp-windows.html

51

Criando um novo projeto


To logo o php-collab for instalado e configurado, a sua primeira ao dever
ser criar um novo projeto. Para tal tarefa, voc dever realizar o login e
entrar na pgina principal do php-collab. Esta pgina exibe todos os projetos,
tarefas, discusses e notas que estiverem associadas ao seu usurio, como
pode ser visto na Figura 34.

Figura 34: Pgina principal do php-collab

52

Uma vez dentro da pgina principal, voc poder criar um novo projeto por
meio do cone Add do menu Projects. Durante a criao do projeto, voc
dever informar o nome do projeto, prioridade, status, entre outras
informaes, como pode ser observado na Figura 35. O campo Enable
Phases habilita a organizao do projeto em fases. Dessa forma, cada tarefa
cadastrada dever ser associada a uma fase distinta do projeto. O campo
Client Organization habilita a criao e publicao de Websites para o
cliente, como veremos mais adiante.

Figura 35: Criando um novo projeto

Assim que o projeto for criado, voc ser remetido automaticamente para a
pgina de visualizao e alterao dos dados do projeto. Nesta pgina, voc
poder ver as fases associadas ao projeto, o status de cada fase, a
quantidade de tarefas existentes, a quantidade de tarefas no concludas,

53

entre outras informaes, como pode ser visto no exemplo apresentado na


Figura 36.

Figura 36: Visualizando e alterando um projeto

54

Adicionando tarefas
Para adicionar uma tarefa, voc dever entrar na pgina do projeto e
selecionar a fase na qual a tarefa ser associada. Uma vez dentro da pgina
da fase selecionada, voc dever ir para a seo Tasks e ento clicar no
cone Add. Durante o cadastramento da tarefa, voc dever informar o
nome da tarefa, a descrio, a prioridade, o responsvel, o tempo estimado,
entre outras informaes, como pode ser visto na Figura 37.

Figura 37: Adicionando tarefas ao php-collab

55

Visualizando o calendrio do projeto


O php-collab oferece um ambiente de gerenciamento integrado, dessa forma,
todas as tarefas so listadas num calendrio comum ao projeto como pode
ser visto no exemplo apresentado na Figura 38.

Figura 38: Calendrio compartilhado do projeto

56

Listas de discusses
A lista de discusso do php-collab oferece um canal comum e integrado para
todos os membros do time. Para criar um tpico, voc dever entrar na
pgina do projeto. Uma vez dentro desta pgina, voc dever ir para a seo
Discussions e ento clicar no cone Add, conforme o exemplo apresentado
na Figura 39.

Figura 39: Criando uma lista de discusso

Qualquer membro do time pode criar um tpico ou postar uma mensagem.


Alm disso, assim que a discusso for concluda o php-collab permite que o
tpico seja fechado pelo seu criador, como pode ser observado na Figura 40.

57

Figura 40: Postando tpicos na lista de discusso

58

Adicionando arquivos ao projeto


O php-collab tambm permite que arquivos sejam adicionados e associados a
um projeto. Para adicionar um arquivo, voc dever entrar na pgina do
projeto. Uma vez dentro desta pgina, voc dever ir para a seo Linked
Content e ento clicar no cone Add, conforme o exemplo apresentado na
Figura 41.

Figura 41: Adicionando arquivos ao projeto

Alm de armazenar o arquivo, o php-collab faz o controle do status


(pendente, aprovado, etc) e o controle de verses do arquivo, como pode ser
observado na Figura 42.

59

Figura 42: Controle de verses e status dos arquivos

60

Bookmarks compartilhados
O php-collab tambm oferece uma funcionalidade para gerenciar bookmarks
compartilhados. Para tal tarefa, voc dever clicar no menu Bookmarks e
ento clicar no cone Add, conforme o exemplo apresentado na Figura 43.

Figura 43: Adicionando bookmarks compartilhados

61

Adicionando clientes
To logo o projeto seja criado voc poder adicionar clientes e associ-los ao
projeto. Para tal tarefa, voc dever clicar no menu Clients e ento clicar no
cone Add. A pgina Add Client Organization dever ser exibida conforme
o exemplo apresentado na Figura 44. Nesta pgina, voc dever informar o
nome do cliente, endereo, telefone, entre outras informaes.

Figura 44: Adicionando clientes

Uma vez que o cliente tenha sido adicionado, voc poder associa-lo a um
projeto. Na pgina de visualizao das informaes do cliente, voc tambm
poder criar o site do projeto (sob o ponto de vista do cliente). Para realizar
tal tarefa, voc dever clicar no link <details>, como pode ser observado
no exemplo exibido na Figura 45.

62

Figura 45: Visualizando informaes dos clientes

Assim que voc realizar esta operao, a pgina Create Project Site dever
ser exibida, conforme o exemplo apresentado na Figura 46. Nesta pgina,
voc dever clicar no boto Create para criar definitivamente o site do
projeto.
Assim que o site do projeto for criado, qualquer usurio cadastrado (Client
Users) poder realizar o login e entrar no site do projeto automaticamente.
Voc tambm poder acessar o site do projeto por meio do link Go to
projects site localizado no topo direito da pgina principal do php-collab.

Figura 46: Criando o site do projeto

63

No site do projeto, o cliente poder visualizar as tarefas existentes, os


documentos e as listas de discusses, como pode ser visto na Figura 47.
As informaes no so disponibilizadas ao site do projeto automaticamente.
Para que elas sejam visualizadas no site do projeto, voc dever realizar a
publicao por meio do cone Add to project site (presente na maior parte
dos menus do php-collab).

Figura 47: Site do projeto

64

Requisies de suporte
O cliente, por meio do site do projeto, tambm poder realizar requisies de
suporte. Basicamente, o php-collab fornece um mecanismo simples de gesto
de requisies de suporte, como pode ser visto no exemplo apresentado na
Figura 48.

Figura 48: Adicionando requisies de suporte

Uma vez que as requisies tenham sido cadastradas pelos clientes, elas
podero ser visualizadas e gerenciadas por meio da seo Support
localizada na pgina do projeto, como pode ser visto na Figura 49.

Figura 49: Gerenciando requisies de suporte

65

Relatrios
O php-collab fornece tambm um recurso para a gerao de relatrios. Por
meio desse recurso, voc poder filtrar e listar as tarefas com base no
projeto, cliente, prioridade, data de finalizao entre outros filtros, como
pode ser visto no exemplo apresentado na Figura 50. Adicionalmente, voc
poder salvar os filtros criados para que o relatrio possa ser executado
posteriormente.

Figura 50: Relatrios

66

Captulo 4 Automao de testes


funcionais e de aceitao
Nos ltimos tempos, a automao de testes tem se tornado uma atividade
vital em projetos de teste de software. A maturidade das ferramentas e a
vasta quantidade de opes comerciais e Open Source so algumas das
razes motivadoras para essa mudana de enfoque. Somado a isto, a
promessa de testes de regresso repetitveis com baixo custo e o aumento da
cobertura dos testes, reforam esse sbito interesse na automao de testes.
Aplicaes cada vez mais complexas e oramentos curtssimos tornam as
ferramentas Open Source mais atraentes no mar de opes existentes. Na
tabela abaixo voc poder ver as ferramentas que sero apresentadas nas
prximas sees:
selenium

http://www.openqa.org/selenium/
marathon

http://www.marathontesting.com/marathon/
soapUI
http://www.soapui.org/

67

Selenium
O Selenium15 uma ferramenta Open Source usada para a criao de testes
de regresso automatizados para aplicaes WEB. O Selenium foi escrito
utilizando Java Script e DHTML. Em funo disso, os testes rodam
diretamente a partir do navegador. Na realidade, em virtude desta
caracterstica do Selenium, os testes podem rodar virtualmente em qualquer
navegador que suporte Java Script (Internet Explorer, Firefox, Opera, Safari,
Konqueror, etc).
Basicamente, os testes do Selenium so escritos em tabelas HTML. Nestas
tabelas, voc informar as operaes ou asseres de um teste e os seus
respectivos argumentos. O Selenium responsvel por interpretar os
comandos das tabelas HTML e executar as aes, simulando um usurio real.
O Selenium dividido em dois modos diferentes:
Selenium Core: Neste modo os testes so executados a partir do WEB
Server que a aplicao WEB estiver sendo executada. Os testes so
escritos previamente em tabelas HTML e o TestRunner (Gerenciador
da execuo dos testes) responsvel pela execuo dos testes.
Selenium RC (Remote Control): Neste modo os testes so dirigidos por
uma das linguagens suportadas pelo Selenium (Ruby16, Python, etc).

15

http://www.openqa.org/selenium/ (os exemplos deste livro so apresentados com a


verso 0.8.2)
16
http://pt.wikipedia.org/wiki/Ruby_(linguagem_de_programao)

68

Selenium Core
Conforme mencionado anteriormente, neste modo chamado de Selenium
Core, os testes so executados a partir do WEB Server em que a aplicao
WEB estiver sendo executada. Para que o Selenium Core funcione
corretamente, voc dever habilitar o acesso de leitura e escrita nos
diretrios onde ele for instalado.

Figura 51: TestRunner do Selenium Core

Para instalar o Selenium Core, voc dever fazer o download17 a partir do site
do Selenium. Uma vez feito o download, voc dever descompactar os
arquivos sob o diretrio de deploy do seu WEB Server (Ex: DocumentRoot,
htdocs, www ou webroot).
Uma vez instalado, voc poder testar se houve sucesso por meio da
abertura da pgina TestRunner.html. O TestRunner a pgina que gerencia
a execuo dos testes e exibe o relatrio de progresso da execuo.
Normalmente esta pgina est localizada sob o diretrio core, como pode
ser observado no exemplo apresentado na Figura 51.

17

http://www.openqa.org/selenium-core

69

A pgina do TestRunner dividida em quatro diferentes reas:


Test Suite: Nesta rea voc dever escolher a Test Suite que ser
executada pelo Selenium, assim como selecionar um teste da lista de
testes disponveis.
Current Test: Nesta rea voc poder visualizar o teste selecionado ou
o teste que estiver sendo executado.
Control Panel: Nesta rea voc poder gerenciar a execuo dos testes
(rodar apenas os testes selecionados, diminuir a velocidade de
execuo dos testes, executar os testes passo a passo, ver o log de
execuo e o resultado da execuo dos testes).
AUT: Nesta rea localizada na parte inferior da pgina, voc visualizar
a aplicao em teste durante a execuo dos testes. Voc tambm
poder configurar o Selenium para exibir a aplicao em teste em uma
janela separada por meio da opo AUT in separate window ou pelo
parmetro "multiWindow=true" da pgina TestRunner.html. No
entanto, o Firefox no suporta nativamente o multi-window mode.
Para resolver este problema, voc dever baixar o add-on
readyState.xpi18.
importante lembrar que voc dever desabilitar os bloqueadores de pop-up,
gerenciadores de senhas e recursos semelhantes do navegador antes da
execuo dos testes automatizados, para garantir que os testes no falhem
ou travem em virtude de algum desses recursos oferecidos pela maioria dos
navegadores.
Naturalmente, para executar os testes por meio do Selenium Core, voc
dever ter criado previamente os casos de testes para a sua aplicao WEB.
Conforme mencionamos anteriormente, os testes so escritos em tabelas
HTML. Nestas tabelas, voc informar as operaes ou asseres de um teste
e os seus respectivos argumentos.
A sintaxe destes comandos chamada de Selenese, ou em bom portugus:
Selens. Um teste escrito em Selens basicamente composto por uma
tabela contendo trs colunas. Uma coluna usada para a operao e as duas
restantes so usadas para os argumentos. Cabe lembrar que nem todas as
operaes requerem dois argumentos, como pode ser visto no exemplo
apresentado na Figura 52.

18

http://www.openqa.org/selenium-core/download/readyState.xpi

70

Figura 52: Caso de teste escrito em Selens

Cabe ressaltar que as linhas com menos de trs colunas sero


automaticamente ignoradas pelo Selenium. Neste caso, voc poder utilizlas para comentrios ou para o ttulo do caso de teste. Por questes
estticas, voc poder usar a tag HTML &nbsp para fazer as clulas da
tabela ficarem esteticamente melhores, ao invs de apenas exibir um espao
vazio.
De forma similar, os Test Sutes tambm so representados em tabelas
HTML. Cada Test Suite referencia um ou mais casos de teste. No entanto, o
cdigo HTML usado para o Test Suite, tem uma pequena particularidade: a
tag HTML target deve sempre referenciar o frame testFrame para que os
casos de teste sejam adequadamente exibidos na rea Test Sute do
TestRunner, conforme discutido anteriormente. Observe o exemplo
apresentado na Figura 53:

Figura 53: Cdigo HTML da Test Suite

71

De um ponto de vista genrico, as operaes suportadas pelo Selens so


divididas em trs grupos distintos:
Actions: Representam as operaes realizadas pelo usurio durante a
utilizao da aplicao WEB. A maioria das Actions representam aes
do tipo (clicar em determinado link ou boto, selecionar determinada
opo e assim por diante). Se a execuo de uma Action falhar, o
status do teste modificado para Failed e o teste imediatamente
paralisado. Adicionalmente, voc poder adicionar o sufixo AndWait
para a maioria das Actions. Este sufixo informa ao Selenium que a
ao gerou uma requisio ao servidor e a execuo do teste precisa
esperar que a pgina seja recarregada.
Accessors: Executa uma assero (compara o estado ou propriedade
de um objeto da pgina contra um valor esperado) e armazena o
resultado numa varivel. O resultado negativo de uma Accessor no
paralisa a execuo do teste, mas no entanto, a falha exibida no
resultado dos testes.
Assertions: Executa uma assero (compara o estado ou propriedade
de um objeto da pgina contra um valor esperado). No entanto, a
Assertion no armazena o resultado numa varivel. O resultado
negativo de uma Assertion no paralisa a execuo do teste, mas no
entanto, a falha exibida no resultado dos testes.
Infelizmente, no faz parte do escopo deste livro apresentar minuciosamente
as operaes suportadas pelo Selens. Com certeza, um livro inteiro
poderia ser escrito para descrever e mostrar exemplos prticos de todas as
operaes existentes. Neste caso, o autor sugere que voc leia o Reference
Guide19 do Selens no site do Selenium.
Por outro lado, voc no precisa decorar todas as operaes suportadas pelo
Selens. Por meio de um ambiente grfico integrado chamado Selenium IDE,
voc poder gravar e reproduzir os testes sem escrever uma nica operao
em Selens, como veremos mais adiante.

19

http://release.openqa.org/selenium-core/nightly/reference.html

72

Selenium IDE
O Selenium IDE20 um ambiente grfico integrado ao Firefox capaz de
gravar e reproduzir os testes do Selenium. O Selenium IDE captura e grava
as suas aes no Firefox. Essas aes so convertidas para o Selens
automaticamente para que voc possa salvar o teste, execut-lo e depur-lo
individualmente ou em conjunto com outros testes numa Test Suite.
O Selenium IDE uma extenso do Firefox, como pode ser visto na Figura
54. Uma vez instalado, voc poder executar o Selenium IDE acessando o
menu Tools>Selenium IDE, de acordo com o exemplo apresentado na
Figura 55.

Figura 54: Instalando o Selenium IDE

Uma vez aberta a janela do Selenium IDE, qualquer ao que voc executar
nas pginas do navegador ser convertida para uma operao em Selens na
aba Table. No entanto, o Selenium IDE no se limita apenas a reproduzir os
cliques ou preenchimento dos campos realizados durante a navegao. Voc
tambm poder selecionar qualquer uma das operaes suportadas pelo
Selens conforme a sua necessidade por meio do campo Command. Vale a
pena destacar que, conforme o comando selecionado, uma descrio
completa da sua utilizao e argumentos requeridos apresentada na parte
inferior da janela do Selenium IDE.

20

http://www.openqa.org/selenium-ide/ (os exemplos deste livro so apresentados com a


verso 0.8.6)

73

Figura 55: Selenium IDE

Adicionalmente, o Selenium IDE adiciona novos menus de contexto no


Firefox. Neste caso, durante gravao da navegao, voc poder selecionar
qualquer objeto da pgina e adicionar uma operao ou assero de acordo
com o contexto do objeto selecionado, como pode ser visto no exemplo
apresentado na Figura 56.

74

Figura 56: Operaes integradas aos menus do Firefox

Por fim, assim que voc finalizar gravao da navegao da sua aplicao
WEB, todos os passos executados sero convertidos automaticamente em
Selens e estaro disponveis na aba Table. O teste poder ser salvo no
formato HTML para que seja posteriormente executado.
Voc tambm poder executar, pausar ou depurar o teste por meio do
Selenium IDE. Adicionalmente, o Selenium IDE empacota internamente por
default o Selenium Core. Neste caso, voc tambm poder executar o teste
por meio do TestRunner do Selenium Core, como pode ser visto na Figura 57.

75

Figura 57: Executando os Testes no Selenium Core

Todo navegador, por default, oferece mecanismos de segurana para evitar


ataques do tipo XSS cross-site scripting. Toda extenso do Firefox tem
acesso ao protocolo Chrome (especfico deste navegador). Esse protocolo
oferece um meio alternativo para burlar a segurana dos navegadores para
evitar os ataques do tipo XSS.
No exemplo da Figura 57, o Selenium Core no precisou ser instalado no
WEB Server em que a aplicao WEB estava sendo executada em virtude
dessa caracterstica do Firefox.
Dessa forma, voc poder executar as suas Teste Sutes a partir do Firefox
sem a necessidade de instalar o Selenium Core no mesmo WEB Server onde
a aplicao WEB estiver sendo executada. Para realizar tal tarefa, voc
dever utilizar a seguinte URL para executar o TestRunner a partir do Firefox:

76

Onde:
baseURL: Indica a URL base da aplicao WEB.
test: Indica a localizao da Test Suite.
auto: Indica que o TestRunner dever executar os testes assim que for
aberto.
Por ltimo, devemos destacar que voc tambm poder testar aplicaes
WEB baseadas em AJAX (Asynchronous JavaScript and XML) utilizando o
Selenium IDE. Sem discutir em detalhes, uma pgina AJAX capaz de
realizar diversas operaes sem, no entanto, precisar buscar ou trocar muitas
informaes com o WEB Server.
Neste caso, normalmente a pgina no recarregada, garantindo assim
maior velocidade nas operaes. No entanto, neste cenrio, operaes em
Selens do tipo clickAndWait no funcionaro corretamente em virtude de
que a pgina AJAX no ser recarregada.
Para solucionar esta limitao e viabilizar os testes de pginas AJAX, voc
dever utilizar, por exemplo, a operao waitForValue que aguardar a
mudana do valor definido como argumento, ao invs de esperar a pgina
recarregar.
Existem muitas pginas21 na Internet apresentando solues e exemplos para
testes de pginas AJAX utilizando o Selenium. Vale a pena conferir tambm
os exemplos apresentados no site do Selenium.

21

http://www.infoq.com/articles/testing-ajax-selenium

77

Selenium RC (Remote Control)


No modo chamado de Selenium RC22 (Remote Control), os testes so
executados por meio de uma das linguagens de programao suportadas
pelo Selenium. O Selenium RC a melhor soluo quando os testes escritos
em Selens nas tabelas HTML no forem suficientes para as suas
necessidades.
Se voc precisar de uma lgica mais complexa de controle, fluxos, acesso a
banco de dados ou leitura de informaes externas, sem dvida, o Selenium
RC ser de grande ajuda.

Figura 58: Arquitetura do Selenium RC

A arquitetura do Selenium RC extremante simples e eficaz (Figura 58).


Basicamente, o Selenium RC expe uma interface (Wrapper API) para os
comandos em Selens. J existem interfaces escritas para as principais
linguagens de programao da atualidade23 (Java, .NET, Perl, Python, and
Ruby).
Durante a execuo do teste na linguagem escolhida por voc, os comandos
executados por meio dessas interfaces se comunicam com o Selenium Server,
que a outra parte da arquitetura do Selenium RC. O Selenium Server, de
acordo com o site do Selenium, onde a mgica acontece.
Por meio do Selenium Server, uma instncia do navegador escolhido por voc
iniciada nos bastidores. Assim, toda a vez que o teste executa uma
22
23

http://www.openqa.org/selenium-rc/
http://www.openqa.org/selenium-rc/tutorial.html

78

operao, na verdade ele se comunica com o Selenium Server, que por sua
vez se comunica com essa instncia do navegador (usando XmlHttpRequest
do AJAX).

Figura 59: Selenium Server no modo interativo

Alm desse modo de execuo convencional, o Selenium Server oferece


tambm um modo interativo. Neste modo, voc poder interagir diretamente
com Selenium Server por meio da digitao de comandos (Selens) no seu
prompt.
Para inicializar o Selenium Server em modo interativo, execute o seguinte
comando java -jar selenium-server.jar -interactive, como pode ser visto no
exemplo apresentado na Figura 59 (o output dos comandos foram
propositalmente omitidos).
Adicionalmente, voc poder utilizar o Selenium IDE para criar os testes
usados pelo Selenium RC. O Selenium IDE tem um recurso que permite a
exportao dos testes em Selens para a maioria das linguagens suportadas
pelo Selenium RC, como pode ser observado na Figura 60.

79

Figura 60: Exportando os testes para outras linguagens

Como resultado do processo de exportao, obtemos o cdigo fonte na


linguagem alvo escolhida por voc. No exemplo apresentado na Figura 61,
voc poder ver o resultado da exportao para a linguagem Ruby.

80

Figura 61: Trecho de um teste exportada para Ruby

Para confirmar se o teste foi exportado com sucesso, execute o Selenium


Server por meio do comando java jar selenium-server.jar. Em outra janela
do prompt execute o seu teste, como pode ser visto no exemplo apresentado
na Figura 62.

81

Figura 62: Executando um teste usando o Selenium RC

82

Marathon
O Marathon24 uma ferramenta Open Source de testes de regresso
automatizados para aplicaes Java desenvolvidas com o toolkit grfico
Swing25. Utilizando o Marathon, voc poder criar testes automatizados por
meio da captura das suas aes (cliques do mouse, digitao, etc). Estas
aes so convertidas em scripts Jython26 (implementao Java da linguagem
de script Python) para que voc possa executar posteriormente o teste.
Dentre as suas principais caractersticas, podemos destacar as seguintes:
Ambiente de desenvolvimento integrado onde voc poder capturar,
depurar e executar os testes automatizados;
Mdulos reutilizveis para facilitar a manuteno;
Fixtures (scripts em Jython cuja principal funo criar as prcondies de execuo dos testes, assim como, a posterior limpeza
dos recursos criados);
Component Resolver e Custom Component Resolver (recurso utilizado
para detectar todos os componentes do Swing (botes, campos de
edio, menus, etc), assim como os seus mtodos e propriedades);

24

http://www.marathontesting.com/ (os exemplos deste livro so apresentados com a


verso 1.0.3)
25
http://en.wikipedia.org/wiki/Swing_(Java)
26
http://www.jython.org/Project/index.html

83

Criando um novo projeto


Assim que o Marathon for instalado, a sua primeira ao ser criar um novo
projeto. Para realizar tal tarefa, voc dever escolher a opo New da
janela Create and manage configuration.
Uma janela solicitando o nome do projeto dever ser exibida, como pode ser
visto na Figura 63. importante lembrar que durante a criao do projeto,
voc dever obrigatoriamente informar corretamente a Main Class da
aplicao Java que ser testada, assim como o seu Class Path27. Caso
contrrio, o Marathon no ser capaz de inicializar a aplicao Java.

Figura 63: Criao de um novo projeto

27

http://pt.wikipedia.org/wiki/Java_(linguagem_de_programao)

84

To logo o projeto seja criado, a janela principal do Marathon exibida. Esta


janela oferece um ambiente de desenvolvimento integrado onde voc poder
capturar, depurar e executar os testes automatizados, como pode ser
observado na Figura 64.

Figura 64: Janela principal do Marathon

Os projetos do Marathon so compostos por trs elementos distintos (todos


esses elementos sero discutidos mais adiante):
TestCases: Scripts em Jython que representam as aes (cliques do
mouse e digitao) e asseres realizadas por voc durante a captura
(gravao);
Modules: Scripts em Jython usados por outros testes (mdulos
reutilizveis). Por meio dos Modules, voc poder aumentar a
reutilizao e facilitar a manuteno no futuro.
Fixtures: Scripts em Jython cuja funo criar as pr-condies de
execuo dos testes, assim como, a posterior limpeza dos recursos
criados.

85

Por fim, para efeitos didticos, os exemplos apresentados nas prximas


sees sero realizados utilizando um editor simples de UML desenvolvido em
Java chamado Violet28, como pode ser visto no exemplo apresentado na
Figura 65.

Figura 65: Violet UML Editor

28

http://www.horstmann.com/violet/

86

Criando um script de teste


Para criar um novo script de teste, voc dever clicar no menu
File>New>Test Case. A janela Untitled dever ser exibida no editor. Esta
janela representa um script de teste em branco.
A partir deste ponto, poderemos comear a capturar (ou gravar) o script de
teste automatizado, por meio do boto Record localizado na barra de
ferramentas do Marathon.
To logo voc comece a captura, o Marathon abrir automaticamente a
aplicao em teste (no nosso caso, o Violet) e, em background, a janela
Marathon Control Center, como pode ser visto na Figura 66.

Figura 66: Marathon Control Center

Por meio da janela Marathon Control Center todas as aes so capturadas


e traduzidas para comandos Jython. Adicionalmente, esta janela fornece
opes para pausar, retornar da pausa, parar a captura e a adio de
mdulos reutilizveis (os mdulos reutilizveis sero discutidos mais adiante).
importante ressaltar que o Marathon utiliza um recurso chamado
Component Resolver para detectar todos os componentes do Swing
(botes, campos de edio, menus, etc), assim como os seus mtodos e
propriedades. por meio desse recurso que o Marathon capaz de mapear
os componentes da aplicao e converter as suas aes em comandos
Jython.
No entanto, caso a sua aplicao tenha algum componente personalizado,
que no faz parte da biblioteca padro do Swing, voc poder criar um

87

Custom Component Resolver para que o Marathon possa detectar o seu


componente.
Ao final da gravao, o Marathon fecha automaticamente a aplicao em
teste e adiciona ao script de teste todas aes capturadas (traduzidas para
comandos Jython). No nosso exemplo, foi criado um script de teste para
testar a criao de um diagrama de caso de uso, como pode ser observado
na Figura 67.

Figura 67: Script de teste captura pelo Marathon

Entretanto, como voc poder notar, este script de teste no realiza


nenhuma verificao (nenhuma informao comparada com algum
resultado esperado). Para adicionar esse tipo de verificao durante a
captura, voc dever usar um recurso chamado Assertions (ou
verificaes).
Por meio das Assertions, voc poder comparar qualquer informao
contida em qualquer componente da aplicao (botes, campos de edio,
menus, etc) contra um resultado esperado. Para adicionar uma assero
durante a captura do script de teste, voc dever usar o atalho (CTRL+F8)
ou (CTRL+Boto direito do mouse) sobre o componente desejado.
Um menu pop-up ser exibido com a lista de asseres disponveis. No
exemplo apresentado na Figura 68, voc poder notar o novo script criado
com as Assertions.

88

Figura 68: Adicionando asseres aos scripts de teste

89

Criando um mdulo reutilizvel


Os mdulos reutilizveis so uma alternativa para evitar que passos
repetitveis sejam replicados em diversos scripts de teste. Dessa forma,
aumentamos a reutilizao de cdigo e, por sua vez, diminumos o tempo de
manuteno dos scripts.
Para criar um mdulo reutilizvel voc dever clicar no menu
File>New>Capture Script. A janela Untitled dever ser exibida no editor.
Assim como no script de teste, voc dever realizar a captura das aes por
meio do boto Record localizado na barra de ferramentas do Marathon.
Ao final da gravao, o Marathon fechar automaticamente a aplicao em
teste e todas as aes capturadas sero adicionadas ao mdulo reutilizvel
(traduzidas para comandos Jython), como pode ser visto na Figura 69.

Figura 69: Criando um mdulo reutilizvel

No nosso exemplo, foi criado um mdulo reutilizvel com os passos para


acessar o menu do Violet e criar um novo diagrama de caso de uso. Para
adicionar o mdulo reutilizvel a um script de teste, voc dever clicar no
boto Insert Script da janela Marathon Control Center durante a captura
(gravao).

90

A janela Insert Script dever ser exibida. Voc dever escolher um dos
scripts disponveis para a reutilizao e, se for o caso, informar o parmetro
do mdulo reutilizvel, como pode ser visto na Figura 70.

Figura 70: Adicionando um mdulo reutilizvel ao script de teste

Uma vez que esses passos forem realizados com sucesso, o Marathon
adicionar uma chamada ao mdulo reutilizvel dentro do script de teste,
como pode ser observado no exemplo apresentado na Figura 71.

Figura 71: Executando um mdulo reutilizvel dentro de teste

91

Executando os scripts de teste por meio do JUnit


Voc poder executar qualquer script de teste por meio do boto Play ou
Slow Play localizados na barra de ferramentas do Marathon. No entanto, o
Marathon oferece um Test Runner baseado no JUnit29 para a execuo e
gerao de um relatrio de status das sutes de testes.
Para realizar tal tarefa, voc dever selecionar a aba JUnit e clicar no boto
Run All Tests ou Run Selected Tests. Ao final da execuo, ser exibido o
resumo do status da execuo dos scripts de testes.
No entanto, voc poder clicar no boto Test Report para visualizar o
relatrio HTML com todos os detalhes da execuo dos testes, como pode ser
observado no exemplo apresentado na Figura 72.

Figura 72: Executando os scripts de teste por meio do JUnit

29

http://en.wikipedia.org/wiki/JUnit

92

Criando uma fixture


Conforme discutido anteriormente, uma Fixture representa um script
personalizado cuja funo criar as pr-condies de execuo dos testes,
assim como, a posterior limpeza dos recursos criados.
Dessa forma, caso o script de teste precise que seja criado um diretrio e
uma chave de registro no Windows com determinado valor, voc poder
resolver esse problema por meio da operao de Inicializao (Setup) de uma
Fixture.
Por outro lado, para garantir que o ambiente esteja limpo para a execuo do
prximo script de teste, voc poder excluir o diretrio e a chave de registro
por meio da operao de Finalizao (Teardown).
Para criar uma nova Fixture, voc dever clicar no menu
File>New>Fixture. A janela Untitled dever ser exibida no editor. Esta
janela representa uma nova Fixture com as operaes default de
Inicializao (Setup) e Finalizao (Teardown).

Figura 73: Criando uma fixture

A partir desse ponto, voc dever codificar a Fixture conforme a sua


necessidade. No nosso exemplo, vamos criar uma nova Fixture chamada
clean_up_fixture que executar a criao de um diretrio chamado
tempdir na Inicializao (Setup), como pode ser visto na Figura 73.
Como voc deve ter notado, foram utilizados comandos do Jython para
customizar a Fixture. O Marathon oferece a biblioteca de comandos bsica

93

do Jython, mas no entanto, caso seja necessrio utilizar recursos avanados,


voc dever instalar o interpretador do Python30 no seu computador.
Uma vez instalado, voc dever informar ao Marathon o Path do Python por
meio da janela Create and manage configuration. Para realizar tal tarefa,
voc dever clicar no menu Marathon>Project Settings, como pode ser
observado no exemplo apresentado na Figura 74.

Figura 74: Configurando o path do Python

Uma vez que a Fixture for criada, voc poder associa-la a um script de
teste. Para tal tarefa, voc dever clicar no menu Marathon>Select Fixture,
como pode ser observado no exemplo apresentado na Figura 75.

Figura 75: Selecionando uma fixture default


30

http://www.python.org/download/

94

SoapUI
SoapUI31 uma ferramenta Open Source escrita em Java cuja principal
funo consumir e testar WEB Services32. WEB Service uma tecnologia
baseada em XML e HTTP cuja principal funo disponibilizar servios
interativos na WEB que podem ser acessados (ou consumidos) por qualquer
outra aplicao independente da linguagem ou plataforma em que a
aplicao foi construda.
O SOAP (Simple Object Access Protocol) o padro universal utilizado para a
troca de mensagens entre as aplicaes consumidoras e o WEB Service. O
WEB Service expe as suas operaes por meio de um tipo de esquema XML
chamado WSDL (WEB Service Description Language).
Neste contexto, o SoapUI facilita todo o processo de criao e depurao dos
testes por meio de uma interface grfica intuitiva. Dentre as suas principais
caractersticas, podemos destacar as seguintes:
Importao e gerao automtica das requisies descritas no WSDL;
Capacidade de gerenciar um nmero ilimitado de requisies para
cada operao;
Gerenciamento de mltiplos endpoints para cada WEB Service;
Validao das requisies e respostas contra as suas definies no
WSDL;
Testes funcionais, desempenho e stress;
Execuo de diversos testes em paralelo;
Editores com syntax highlight e formatao automtica;
Suporta expresses XPATH;
Suporta criao de testes complexos utilizando scripts Groovy33;

31
32
33

http://www.soapui.org/ (os exemplos deste livro so apresentados com a verso 1.5)


http://en.wikipedia.org/wiki/WEB_service
http://groovy.codehaus.org/

95

Criando um novo projeto


Para iniciar a utilizao do SoapUI, voc dever criar um novo projeto. Para
tal tarefa, voc dever clicar no menu File>New WSDL Project, como pode
ser visto na Figura 76. O SoapUI abrir um dilogo solicitando o nome do
novo projeto. Voc tambm precisar informar em qual pasta o projeto ser
salvo.

Figura 76: Criao de um novo projeto do SoapUI

Para efeitos didticos e de entendimento, os exemplos apresentados nas


prximas sees vo realizar os testes de um suposto WEB Service chamado
EchoService. Este WEB Service expe uma operao chamada HelloEcho
cujo nico propsito ser ecoar o texto enviado, ou seja, se voc enviar Ol
Mundo! a resposta ser Ol Mundo!.
Dando continuidade, assim que o projeto for criado, ele aparecer listado na
rvore de projetos localizada na rea esquerda da janela principal do SoapUI.
Em seguida, devemos importar o WSDL a fim de que o SoapUI seja capaz de
conhecer todas as operaes expostas pelo EchoService.
Para realizar esta tarefa, voc dever clicar com o boto direito do mouse
sobre o nome do projeto e escolher a opo Add WSDL from file, como

96

pode ser visto na Figura 77. Lembre-se de confirmar a criao das


Requisies Default para todas as operaes quando for solicitado.

Figura 77: Importao das interfaces via um arquivo WSDL

Ao final do processo de importao do WSDL, o SoapUI incluir um novo item


abaixo do nome do projeto representando o WSDL importado. Clicando-se
duas vezes sobre este novo item, voc abrir a janela Interface Viewer. Por
meio dessa janela voc poder ver o contedo do WSDL recm importado.
Adicionalmente, o SoapUI criar uma Requisio Default (Request 1) para
cada operao exposta pelo WEB Service EchoService, como pode ser visto
na Figura 78.

97

Figura 78: Interface Viewer

As Requisies Default so criadas para facilitar a criao dos Test Cases.


Voc tambm poder testar o acesso ao WEB Service clicando com o boto
direito do mouse sobre a Requisio Default da operao que voc desejar e,
em seguida, escolher a opo Open Request Editor. No nosso cenrio, voc
dever abrir a Requisio Default da operao HelloEcho.
A janela Request Editor dever ser exibida. No lado esquerdo desta janela
aparecer a requisio SOAP que ser enviada ao EchoService. Voc dever
preencher os parmetros desta requisio conforme os tipos definidos no
WSDL.
Para consumir a operao HelloEcho exposta pelo WEB Service
EchoService, devemos apenas fornecer uma string no nico parmetro
disponvel e, ento, submeter a requisio. A resposta desta requisio
imediatamente exibida no lado direito do Request Editor, como pode ser
visto na Figura 79.

98

Figura 79: Submetendo uma requisio ao WEB Service

99

Criando um test case


Para criar um novo Test Case, clique com o boto direito do mouse sobre a
Requisio Default da operao que voc desejar e escolha a opo Add to
TestCase. No nosso caso, devemos selecionar a Requisio Default Request
1.
Durante a criao do Test Case, voc tambm dever informar o nome da
Test Suite, o nome do Test Case e o nome do Test Step (no nosso exemplo,
chamaremos de Testes Bsicos, Test 1 e Envia string Hello World,
respectivamente). Em resumo, uma Test Suite serve para agrupar um
conjunto de Test Cases com caractersticas semelhantes. Cada Test Case
formado por um ou mais Test Steps (passos). Por sua vez, cada Test Step
representa uma requisio que ser enviada ao WEB Service.

Figura 80: Criando um Test Case

Aps a concluso da criao do Test Case, o SoapUI incluir um novo item


abaixo do nome do projeto representando a Test Suite e o Test Case,
respectivamente. Clicando-se duas vezes sobre o cone da Test Suite, voc
abrir a janela "Test Suite Runner". Por meio desta janela voc poder iniciar
a execuo de todos os Test Cases existentes na Test Suite, como pode ser
visto na Figura 80.

100

Para editar ou depurar os Test Steps, d um duplo clique sobre o nome do


Test Step. O SoapUI abrir a janela Test Step Editor. Por meio desta janela,
voc poder editar e inspecionar a resposta da requisio, como pode ser
visto na Figura 81.

Figura 81: Edio dos Test Steps

101

Criando asseres
Por meio da janela Test Step Editor, voc tambm poder definir asseres
(ou verificaes) que sero executadas contra a resposta da requisio. Voc
poder adicionar uma assero clicando com o boto direito do mouse na
aba Assertions localizada na parte inferior da janela Test Step Editor
(Figura 82).

Figura 82: Adicionando asseres

Atualmente, o SoapUI oferece cinco tipos diferentes de asseres (ou


verificaes) para validar a resposta de uma requisio, como pode ser visto
na Tabela 1.
Assero
Schema
Compliance
Simple Contains

Descrio
Valida as respostas das requisies contra o xmlschema definido no WSDL
Verifica a existncia de uma string nas respostas das
requisies

102

Simple
NotContains
SOAP Fault
XPath Match

Verifica a no existncia de uma string nas respostas


das requisies
Verifica se a resposta da requisio contm um soapfault
Compara o contedo das respostas das requisies
contra uma expresso XPATH34

Tabela 1: Asseres fornecidas pelo SoapUI

Basicamente, as asseres servem para confirmar se a resposta de uma


requisio contm as informaes esperadas. Se as asseres falharem, o
Test Step e o Test Case indicaro um status de falha, como pode ser visto na
Figura 83.

Figura 83: Asseres

34

http://en.wikipedia.org/wiki/XPath

103

Depurando os Test Cases


Para analisar os logs de execuo dos Test Steps d um duplo clique no Test
Step desejado. A janela Test Step result dever ser exibida como pode ser
observado na Figura 84. Nesta janela voc poder visualizar as propriedades
da requisio, os dados enviados, os dados recebidos, entre outras
informaes.

Figura 84: Depurando Test Cases complexos por meio do Test Result Log

104

Adicionando novos Test Steps ao Test Case


Conforme mencionamos anteriormente, cada Test Step criado a partir de
uma operao exposta pelo WEB Service. No entanto, o SoapUI fornece
outros tipos de Test Steps para nos ajudar a criar testes mais complexos.
Para adicionar um novo Test Step, clique com o boto direito do mouse na
seo Test Steps localizada na parte superior da janela Test Step Editor e
selecione a opo Insert Step, como pode ser visto na Figura 85.

Figura 85: Adicionando novos Test Steps no Test Case

Atualmente, o SoapUI oferece cinco tipos diferentes de Test Steps que


podem ser adicionados ao Test Case, conforme descrito na Tabela 2.

105

Test Step
Groovy Script
Conditional Goto
Properties
Delay
Property
Transfer

Descrio
Permite a utilizao do Groovy (linguagem de script
baseada em Java) para criar Test Steps e Asseres
complexas
Fornece a possibilidade de mudar o fluxo de execuo
dos Test Steps de acordo com alguma condio especial
Armazena propriedades para serem utilizadas entre os
Test Steps como se fossem variveis
Simula uma espera/atraso de acordo com o tempo
determinado por voc
Transfere dados entre os Test Steps

Tabela 2: Test Steps suportados pelo SoapUI

106

Criando testes de desempenho e stress


Entre outras caractersticas, o SoapUI tambm oferece um recurso para
executar testes de desempenho e stress contra os WEB Services.
Basicamente, a idia executar os Test Cases contra um WEB Service
simulando milhares de usurios concorrentes durante um perodo de tempo.

Figura 86: Testes de desempenho e stress

Voc tambm poder criar asseres para identificar se o WEB Service est
atendendo determinado requisito de performance de acordo com as suas
necessidades, como pode ser observado na Figura 86.
Caso o WEB Service demore mais tempo do que o tempo definido na
assero, inserido um registro no log. O SoapUI tambm exibe grficos
com as estatsticas da execuo dos testes para facilitar a leitura e a anlise
dos dados, conforme apresentado na Figura 87.

107

Figura 87: Grfico com as estatsticas dos testes de desempenho

108

Captulo 5 Automao de testes de


performance
A automao de testes de performance, assim como a automao de testes
funcionais e de aceitao, tambm vem encontrando destaque nos projetos
de teste de software. Os holofotes tm brilhado sobre a automao de testes
de performance em virtude de um fenmeno contemporneo da indstria de
TI: a mudana de plataforma das aplicaes legadas para a plataforma WEB.
A migrao para a plataforma WEB trouxe novos desafios sob o ponto de
vista do planejamento e execuo dos testes, tais como: performance,
segurana, suportabilidade, usabilidade e assim por diante.
Novamente, oramentos freqentemente curtssimos tornam as ferramentas
Open Source mais atraentes no mar de opes existentes. Na tabela abaixo
voc poder ver as ferramentas que sero apresentadas nas prximas
sees:
JMeter

http://jakarta.apache.org/jmeter/index.html
Microsoft
WEB
Application
http://www.microsoft.com/downloads/details.aspx?FamilyID=e2
Stress
c0585a-062a-439e-a67d-75a89aa36495&DisplayLang=en
Tool

109

JMeter
O JMeter35 uma ferramenta Open Source de testes de performance
automatizados para aplicaes WEB. O JMeter oferece recursos para realizar
testes de performance, volume e estresse automatizados para aplicaes
WEB, servidores FTP, WEB Services, Banco de Dados, entre outros.
Por ser uma ferramenta inteiramente escrita em Java, o JMeter poder ser
executado em qualquer plataforma que suporte a mquina virtual do Java.
Alm disso, o JMeter facilita todo o processo de criao e depurao dos
testes por meio de uma interface grfica intuitiva.
Os testes podem ser escritos manualmente (por meio da criao manual das
requisies HTTP36) ou gravados automaticamente enquanto voc navega na
aplicao simulando um usurio real (por meio de um Proxy Server).
Entre os diversos recursos oferecidos pelo JMeter, devemos destacar:
Pode ser executado em qualquer plataforma que suporte a mquina
virtual do Java 1.4 ou superior (Solaris, Linux, Windows, OpenVMS
Alpha 7.3+);
Suporta a criao de testes de performance para os protocolos (HTTP,
JDBC, FTP, JMS, LDAP, SOAP, entre outros);
Possibilidade de executar os testes em computadores distribudos37;
Criao de asseres para validar os requisitos de performance e
funcionalidade;
Possibilidade de monitorar a performance de um servidor Apache
Tomcat38;
Permite a utilizao de pr-processadores e ps-processadores para
modificar o comportamento das requisies;
Suporta diversos tipos de monitores para avaliar a performance da
aplicao em teste;

35

http://jakarta.apache.org/jmeter/index.html (os exemplos deste livro so apresentados


com a verso 2.3RC3)
36
http://en.wikipedia.org/wiki/HTTP
37
http://jakarta.apache.org/jmeter/usermanual/jmeter_distributed_testing_step_by_step.pdf
38
http://en.wikipedia.org/wiki/Apache_Tomcat

110

Configurando um test plan


To logo o JMeter seja instalado e configurado, a sua primeira ao dever
ser configurar um Test Plan. Todas as vezes que o JMeter aberto um Test
Plan em branco exibido na sua janela principal. Por meio do Test Plan, voc
poder definir parmetros ou comportamentos comuns a todos os testes.
Nesta janela, voc tambm poder configurar o nome do Test Plan, adicionar
um comentrio e criar variveis que podero ser compartilhadas por todos os
testes.
Por meio da opo Run each Thread Group separately, voc poder definir
se os Thread Groups (grupos de usurios virtuais que simulam a navegao
do seu site ou aplicao WEB) sero executados simultaneamente ou
seqencialmente, como pode ser observado na Figura 88.

Figura 88: Configurando um Test Plan

111

Adicionando e configurando um thread group


O Thread Group representa os usurios virtuais que simulam a navegao do
seu site ou aplicao WEB. Para adicionar um Thread Group, voc dever
clicar com o boto direito do mouse sobre o Test Plan e escolher a opo de
menu Add>Thread Group, como pode ser visto na Figura 89.

Figura 89: Adicionando um Thread Group

A janela Thread Group dever ser exibida, como pode ser observado na
Figura 90. Nesta janela, voc poder configurar o nmero de usurios virtuais
simultneos que sero simulados durante a execuo do teste por meio do
campo Number of Threads (users).

Figura 90: Configurando um Thread Group

112

O campo Ramp-Up Period define a freqncia/tempo de lanamento dos


usurios virtuais. Por exemplo, voc poder configurar 10 usurios virtuais
(Number of Threads (users)) e definir um Ramp-Up period de 10 segundos.
Neste cenrio, um usurio virtual ser lanado (iniciado) por segundo. Dessa
forma, a partir do dcimo segundo, todos os usurios virtuais estaro sendo
executados simultaneamente.
O campo Loop Count define quantas vezes o teste ser repetido. Um Loop
Count igual a 10 significa que o teste ser executado por todos os usurios
virtuais 10 vezes consecutivas.
Por ltimo, voc poder configurar um cronograma de execuo por meio da
seo Scheduler Configuration. Nesta seo voc definir a data e a hora
de incio e fim da execuo dos testes, entre outras opes.

113

Gravando um teste por meio de um HTTP Proxy


Para gravar um teste, voc dever clicar com o boto direito do mouse sobre
o item WorkBench (logo abaixo do Test Plan) e escolher a opo de menu
Add>Non-Test Elements>HTTP Proxy Server para adicionar um HTTP Proxy
Server.
A janela HTTP Proxy Server dever ser exibida, como pode ser observado
na Figura 91. O propsito do HTTP Proxy server capturar e gravar todas as
requisies HTTP (GET, POST, etc) trocadas entre o navegador e o site ou
aplicao WEB.

Figura 91: Adicionando um HTTP Proxy Server

Dessa forma, o JMeter poder executar os testes por meio da reproduo das
requisies HTTP gravadas neste passo. A princpio, voc dever manter
todos os parmetros default desta janela, exceto o campo Target
Controller. Neste campo voc dever selecionar o Thread Group que voc
criou anteriormente. Assim, o HTTP Proxy Server saber o lugar onde as
requisies HTTP capturadas devero ser gravadas. Lembre-se de pressionar
o boto Start para iniciar o HTTP Proxy Server.
Em seguida, voc dever apontar o Proxy do seu navegador preferido para o
endereo localhost:8080. neste endereo que o HTTP Proxy Server do
JMeter est escutando as requisies. Dessa forma, o JMeter poder
capturar e gravar todas as requisies HTTP (GET, POST, etc) trocadas entre

114

o navegador e a aplicao WEB, como pode ser visto no exemplo


apresentado na Figura 92.

Figura 92: Configurando o Proxy do navegador

Assim que o Proxy do navegador for configurado, voc poder navegar no


site ou utilizar a aplicao WEB normalmente, simulando a utilizao de um
usurio convencional.
Ao final da navegao voc dever fechar o navegador e parar a execuo do
HTTP Proxy Server por meio do boto Stop (Figura 91). Voc poder notar
que foram criados vrios elementos abaixo do Thread Group. Esses
elementos representam as requisies HTTP trocadas entre o navegador e o
site ou aplicao WEB.
Para fins didticos e de entendimento, foi gravado uma pesquisa com as
palavras chave teste de software no Google, como pode ser observado na
Figura 93.

115

Figura 93: Requisies HTTP

Os testes podero tambm ser criados manualmente por meio da adio e


configurao manual das requisies HTTP (isso necessrio para testes
cujas requisies sejam SSL/HTTPS39).

39

http://wiki.apache.org/jakarta-jmeter/JMeterAndHTTPS

116

Adicionando asseres
O Jmeter, por meio deAssertions (asseres), valida as respostas das
requisies HTTP. Existe um conjunto de asseres para as mais diversas
funes, mas por hora, vamos discutir um pouco sobre a assero Response
Assertion.
Este tipo de assero permite que voc procure determinado texto dentro do
contedo de uma requisio HTTP. Se o texto procurado no for encontrado,
ento a assero falhar.
Dando continuidade ao nosso exemplo de pesquisa no Google, voc dever
clicar com o boto direito do mouse na requisio HTTP chamada search e
escolher a opo de menu Add>Assertions>Response Assertion, como pode
ser visto na Figura 94.

Figura 94: Adicionando uma Response Assertion

A assero foi adicionada na requisio HTTP chamada search em virtude


de que os resultados da pesquisa sero trazidos na resposta desta requisio.
Na janela Response Assertion, voc poder configurar o nome da assero,
qual campo da resposta vai ser procurado, a regra de comparao e os
textos a serem procurados na resposta.

117

No nosso caso, vamos procurar o texto Wikipdia na resposta da


requisio, como pode ser visto na Figura 95.

Figura 95: Configurando uma Response Assertion

Outra assero interessante que vale a pena destacar chama-se Duration


Assertion. Por meio dessa assero voc poder validar se o tempo de
resposta de uma requisio HTTP maior do que um valor esperado.
Para validar o tempo de resposta de todas as requisies HTTP associadas ao
Thread Group, escolha a opo de menu Add>Assertions>Duration
Assertion, como pode ser visto na Figura 96.

Figura 96: Adicionando uma Duration Assertion

Na Janela Duration Assertion, voc dever preencher o campo Duration in


miliseconds para configurar o tempo de resposta limite para as requisies
HTTP, como pode ser observado na Figura 97.
Se alguma requisio demorar mais tempo do que o tempo limite definido na
assero, ento a assero falhar.

118

Figura 97: Configurando uma Duration Assertion

119

Adicionando um timer
Voc poder simular a navegao de um site ou utilizao de uma aplicao
WEB de maneira mais realstica por meio da utilizao de um Timer.
Nenhum usurio normal clica nos links rapidamente milhares de vezes feito
um rob. O Timer um recurso do JMeter que permite a simulao das
paradas para ler algum texto ou ver alguma figura que um usurio normal
realiza antes de realizar a prxima operao.
O JMeter oferece um conjunto de Timers para as mais diversas funes, mas
por hora, vamos discutir um pouco sobre o Uniform Random Timer. Este
tipo de Timer permite simular uma parada aleatrio dentro dos limites inferior
e superior que voc informar.
Para adicionar este Timer, voc dever clicar com o boto direito do mouse
sobre o Thread Group e, em seguida, escolher a opo de menu
Add>Timer>Uniform Random Timer. Neste caso, o Timer afetar todas as
requisies HTTP que estiverem associadas a esse Thread Group.
Na Janela Uniform Random Timer, voc dever preencher os campos
Random Delay Maximum e Constant Delay Offset para definir os limites
inferior e superior das paradas simuladas, como pode ser observado na
Figura 98.

Figura 98: Configurando um Timer

120

Adicionando listeners (relatrios)


Para visualizar os resultados dos testes de performance, durante ou aps a
execuo dos testes, voc dever associar Listeners ao Thread Group ou ao
Test Plan. O JMeter oferece vrios Listeners para os exibir os mais diversos
tipos de relatrios, como pode ser visto no exemplo apresentado na Figura
99. Os Listeners capturam os dados das requisies durante a execuo do
teste e alimenta relatrios e grficos indicando a performance da aplicao
em teste.

Figura 99: Adicionando Listeners

Para no nos alongarmos muito, vamos apresentar apenas os Listeners mais


importantes. Neste caso, voc dever selecionar o Thread Group e adicionar
os seguintes Listeners: Assertion Results, Graph Results, Aggregate Graph,
View Results Tree e Statistical Aggregate Report, como pode ser observado
no exemplo apresentado na Figura 100.

121

Figura 100: Listeners mais comuns

122

Executando e visualizando os resultados


To logo voc associe os Listeners ao Thread Group, o prximo passo ser
executar o teste. Para realizar tal tarefa, voc dever acessar o menu
Run>Start e aguardar a finalizao da execuo do teste. Caso voc queira
cancelar o teste durante a sua execuo, acesse o menu Run>Stop.
O JMeter tambm oferece a possibilidade de executar os testes por meio da
linha de comando ou por meio de uma tarefa do ANT40.
Em tempo, devemos lembrar que todos os Listeners permitem que os dados
sejam exportados para serem manipulados e exibidos por alguma outra
ferramenta (planilha eletrnica, por exemplo).

Figura 101: Visualizando o Listener Assertion Results

Ao final ou durante a execuo dos testes voc poder visualizar os


resultados obtidos pelos Listeners. Na Figura 101 voc poder observar o
resultado do Listener Assertion Results. Neste caso, somente as requisies
HTTP que no atenderam os parmetros das asseres (Response e
Duration) so listadas neste relatrio.
Por outro lado, o Listener Graph Results desenha um grfico descrevendo o
desvio padro, a mdia, a taxa de requisies realizadas por segundo, entre
outras informaes, como pode ser observado na Figura 102.

40

http://www.programmerplanet.org/pages/projects/jmeter-ant-task.php

123

Figura 102: Visualizando o Listener Graph Results

Em contrapartida, o Listener Aggregate Graph exibe as estatsticas para cada


pgina individualmente, como pode ser observado na Figura 103.

Figura 103: Visualizando o Listener Aggregate Graph

O Listener View Results Tree, por sua vez, nos fornece informaes sobre o
cdigo de sucesso ou falha das requisies HTTP (HTTP Response Code41),
assim como o contedo completo das requisies.
41

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

124

Desta forma, voc poder visualizar exatamente o que navegador teria


recebido caso um usurio real estivesse navegando no site ou aplicao WEB,
como pode ser observado no exemplo apresentado na Figura 104.

Figura 104: Visualizando o Listener View Results Tree

Por fim, o Listener Statistical Aggregate Report apresenta a relao entre o


tempo de resposta e a quantidade de requisies realizadas por segundo ao
longo do tempo, como pode ser observado na Figura 105.
Devemos lembrar que esse Listener no faz parte do pacote original do
JMeter. Na verdade este Listener um plug-in e deve ser instalado
separadamente42.

Figura 105: Visualizando o Listener Statistical Aggregate Report

42

http://rubenlaguna.com/wp/better-jmeter-graphs/

125

Monitorando a performance do servidor


O JMeter, por ser uma ferramenta Open Source do grupo Apache, oferece
uma forte integrao com o Apache Tomcat.

Figura 106: Adicionando um HTTP Authorization Manager

Na verdade, o JMeter oferece um recurso onde voc poder monitorar a


performance do Apache Tomcat durante a execuo dos testes de
performance (caso o seu site ou aplicao WEB esteja sendo executada no
Tomcat).
No entanto, para configurar esse recurso, voc dever seguir alguns passos
conforme indicaremos a seguir. Em primeiro lugar, voc dever criar um novo
Thread Group. Vamos cham-lo de Monitor do Tomcat. Neste Thread
Group, adicione um HTTP Authorization Manager por meio do menu
Add>Config Element>HTTP Authorization Manager.
Na janela HTTP Authorization Manager voc dever adicionar a URL raiz do
seu servidor Apache Tomcat, assim como, o usurio e a senha do
administrador. A principal funo do Authorization Manager fornecer as
credenciais necessrias para obter os parmetros de performance do Apache
Tomcat, como pode ser observado no exemplo apresentado na Figura 107.

126

Figura 107: Configurando o HTTP Authorization Manager

Uma vez que o HTTP Authorization Manager for configurado, voc dever
adicionar ao Thread Group Monitor do Tomcat um HTTP Request. Para
realizar tal tarefa, clique com o boto direito do mouse no Thread Group
Monitor do Tomcat e acesse o menu Add>Sampler>HTTP Request.
O HTTP Request tem a funo de enviar requisies ao servidor Apache
Tomcat para obter os parmetros de performance durante a execuo dos
testes. Na janela HTTP Request voc dever configurar o IP do servidor
Apache Tomcat, assim como, a porta em que o servidor estiver escutando.
Adicionalmente, na seo HTTP Request voc dever informar o caminho
/manager/status para indicar o lugar onde os parmetros de performance
devero ser obtidos.
Por ltimo, na seo Send Parameters with the Request, voc dever
preencher os campos Name e Value com os valores XML e true
respectivamente. Lembre-se de habilitar o campo Use as Monitor localizado
na seo Optional Tasks, como pode ser observado na Figura 108.

127

Figura 108: Configurando o HTTP Request

To logo o HTTP Request seja configurado, voc dever adicionar um


Constant Timer ao Thread Group Monitor do Tomcat por meio do menu
Add>Timer>Constant Time. Na janela Constant Timer, configure o Timer
de maneira que ele simule uma parada de 5 segundos por meio do campo
Thread Delay.
Dessa forma, voc evitar que sejam enviadas centenas de requisies por
segundo para verificar os parmetros de performance do Tomcat. Neste caso,
o Timer garantir que ser enviada uma requisio a cada 5 segundos, como
pode ser visto na Figura 109.

128

Figura 109: Configurando um Constant Timer

Por fim, o ltimo passo dever ser realizado por meio da adio de um
Listener chamado Monitor Results. Para realizar tal tarefa, clique com o
boto direito do mouse sobre o Thread Group Monitor do Tomcat e
selecione a opo de menu Add>Listener>Monitor Results.
Na aba Health da janela Monitor Results, voc poder acompanhar a
sade do Tomcat por meio de indicadores coloridos durante a execuo dos
testes de performance, como pode ser observado no exemplo apresentado
na Figura 110.

Figura 110: Monitorando a sade do Tomcat

129

Por outro lado, na aba Performance da janela Monitor Results, voc poder
acompanhar a performance e utilizao de recursos do Apache Tomcat
durante a execuo dos testes de performance, como pode ser visto na
Figura 111.

Figura 111: Monitorando a performance do Tomcat

130

Microsoft WEB Application Stress


O Microsoft WEB Application Stress (WAS)43 uma ferramenta gratuita para
Windows. Por meio do WAS, voc poder realizar testes de performance,
volume e estresse nas suas aplicaes WEB.
O WAS uma ferramenta pobre em recursos, se compararmos com o JMeter,
no entanto ela tem um perfil do tipo "pau para toda obra" para testes
rpidos.
Os testes podem ser escritos manualmente (por meio da criao manual das
requisies HTTP (GET, POST, etc)) ou gravados automaticamente enquanto
voc navega na aplicao simulando um usurio real (por meio de um Proxy
Server).
Entre os diversos recursos oferecidos pelo WAS, devemos destacar a
possibilidade de executar os testes em computadores distribudos, a
configurao fina do comportamento do teste de performance e a
possibilidade de monitorar a utilizao dos recursos dos servidores Windows
(apenas no Windows 2000 e NT).

43

http://www.microsoft.com/downloads/details.aspx?FamilyID=e2c0585a-062a-439e-a67d75a89aa36495&DisplayLang=en (os exemplos deste livro so apresentados com a verso


1.0)

131

Gravando um teste por meio de um HTTP Proxy


Para gravar um teste, voc dever clicar no cone New Script da barra de
ferramenta do WAS. O dilogo Create new Script dever ser exibido, como
pode ser visto na Figura 112.
Por meio desse dilogo voc poder escolher como o teste ser criado. O
WAS permite que voc crie um teste de performance por meio dos seguintes
mecanismos:
Manual: Voc dever inserir manualmente as requisies HTTP
(GET, POST, etc) trocadas entre o navegador e o servidor da
aplicao WEB;
Record: O WAS cria o teste automaticamente por meio da gravao
das requisies HTTP (GET, POST, etc) trocadas entre o navegador
e o servidor da aplicao WEB (utilizando um Proxy);
Log file: O WAS cria o teste automaticamente com base nas
informaes de um arquivo de log do IIS44;
Content: O WAS cria o teste automaticamente com base na leitura
dos arquivos (HTML) e diretrios do site ou aplicao WEB;

44

http://en.wikipedia.org/wiki/Internet_Information_Services

132

Figura 112: Gravando um teste por meio de um HTTP Proxy

Por hora, vamos nos concentrar no mecanismo de gravao utilizando um


Proxy. Na janela Create new script, selecione a opo Record. O dilogo
Browser Recorder dever ser exibido, conforme pode ser observado na
Figura 113.

Figura 113: Browser Recorder

Neste dilogo, entre outras configuraes, voc poder optar pela gravao
do tempo que voc levar para ler algum texto ou ver alguma figura antes de
realizar a prxima requisio (atraso ou parada), simulando assim um usurio
real durante a execuo dos testes de performance.
Deixe os valores default nos campos e pressione o boto Next>. Uma
janela do Internet Explorer pr-configurada com o endereo do Proxy abrir
automaticamente, como pode ser visto na Figura 114.

Figura 114: Gravando um teste por meio de um proxy

133

Nesta janela digite o endereo do seu site ou aplicao WEB e comece a


navegar como se fosse um usurio comum. O HTTP Proxy do WAS captura e
grava todas as requisies HTTP (GET, POST, etc) trocadas entre o
navegador e a aplicao WEB. Dessa forma, o WAS poder executar os testes
por meio da reproduo das requisies HTTP gravadas neste passo, como
pode ser observado na Figura 115.

Figura 115: Gravando as requisies HTTP

To logo voc conclua a navegao, feche o Internet Explorer e pressione o


boto Stop Recording da janela Recording (Figura 115).

Figura 116: New Recorded Script

Todas as requisies gravadas sero automaticamente associadas a um novo


teste chamado New Recorded Script. Neste novo teste, voc ver as
requisies HTTP gravadas, o tipo de requisio, o tempo de atraso (delay),
entre outras informaes.

134

importante lembrar que, por padro o WAS atribuir o valor localhost no


campo Server. Para que o teste seja executado posteriormente com sucesso,
voc dever modificar este valor para o endereo correto do seu servidor
WEB.
Para fins didticos e de entendimento, foi gravado uma pesquisa com as
palavras chave teste de software no Google.
O WAS tambm permite que voc modifique qualquer parmetro da
requisio HTTP. Para tal tarefa, d um duplo clique em qualquer requisio
HTTP gravada no seu teste. A janela com os dados da requisio dever ser
exibida, como pode ser observado no exemplo apresentado na Figura 117.

Figura 117: Modificando uma requisio HTTP

135

Executando e visualizando os resultados


Para executar o teste de performance, voc dever acessar o menu
Scripts>Run e aguardar a finalizao da execuo do teste, como pode ser
visto na Figura 118. Caso voc queira cancelar o teste durante a sua
execuo, pressione o boto Stop Test.

Figura 118: Executando o teste

Ao final da execuo dos testes voc poder visualizar o status da


performance da sua aplicao WEB por meio de diversos relatrios. Para abrir
a janela de relatrios, acesse o menu View>Reports. A janela Reports
dever ser exibida.
Por meio do relatrio Overview, voc poder ter uma viso geral dos
principais indicadores de performance do teste selecionado (Figura 119).

Figura 119: Visualizando o resultado geral dos testes

136

O relatrio Result Codes nos fornece informaes sobre o cdigo de


sucesso ou falha das requisies HTTP (HTTP Response Code45) (Figura 120).

Figura 120: Visualizando o relatrio Result Codes

O relatrio Page Summary, por sua vez, exibe o tempo mdio de resposta
de cada requisio HTTP (Figura 121).

Figura 121: Visualizando o relatrio Page Summary

45

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

137

Configurando o comportamento dos testes


Voc poder configurar o comportamento do teste de performance por meio
da janela Settings. Nesta janela, voc poder configurar a quantidade de
usurios concorrentes na seo Concurrent Connections. Para ajustar o
limite de tempo da execuo dos testes, utilize o campo Test Run Time.
Se no momento da captura das aes voc no ativou a gravao do tempo
de parada entre as requisies (Record delay between requests), voc
poder configurar paradas randmicas na seo Request Delay ou um
intervalo fixo de tempo, como pode ser observado na Figura 122.
Dentre as outras configuraes possveis, devemos ressaltar a possibilidade
de configurar perodos de tempo onde os resultados dos testes no sero
registrados nos relatrios (incio Warmup e no final Cooldown). E, por
ltimo, voc tambm poder simular a execuo de testes em diversas
larguras de bandas na seo Bandwidth.

Figura 122: Configurando o comportamento dos testes

138

Configurando Page Groups


Para evitar que as requisies sejam feitas de maneira homognea durante a
execuo dos testes, voc poder organizar logicamente a distribuio das
requisies por meio da configurao de Page Groups.
Dessa forma, voc garantir que uma quantidade maior de requisies ser
realizada em determinada funcionalidade ou pgina de acordo com a
utilizao da aplicao WEB na vida real.
Para realizar a configurao dos Page Groups, voc dever abrir a janela
Page Groups, como pode ser visto na Figura 123. Nesta janela, voc poder
adicionar os grupos e o percentual de distribuio em que as requisies
pertencentes a esses grupos sero executadas ao longo do teste.
Neste cenrio, vamos adicionar um novo grupo chamado pesquisa e
configurar um percentual de 25% de distribuio a esse grupo.

Figura 123: Configurando Page Groups

Uma vez que os Page Groups sejam configurados, voc dever associar as
requisies HTTP ao Page Group conforme a sua necessidade. No nosso
caso, vamos associar o Page Group pesquisa requisio que realiza a
pesquisa pelas palavras chaves teste de software, como pode ser
observado na Figura 124.

139

Figura 124: Associando um Page Group a uma requisio

Ao final da execuo dos testes voc poder visualizar o relatrio das


requisies distribudas por grupo na seo Page Groups da janela
Reports, como pode ser observado na Figura 125.

Figura 125: Relatrios das requisies distribudas por grupo

140

Configurando usurios para autenticao


Por meio da janela Users, voc poder adicionar usurios e as suas
respectivas senhas caso seja exigido pela sua aplicao WEB ou site. Para
adicionar usurios, voc dever clicar no cone Users da barra de
ferramenta do WAS.
A janela Users dever ser exibida, como pode ser visto na Figura 126.
Nesta janela voc poder criar usurios e grupos de usurios manualmente
ou por meio da importao dos dados de um arquivo externo.

Figura 126: Adicionando usurios para a autenticao

Uma vez que os grupos sejam criados e os usurios adicionados, voc poder
associar ao teste um ou mais grupos de acordo com as suas necessidades
por meio da opo Users, como pode ser observado na Figura 127.

Figura 127: Associado grupos de usurios ao teste

141

Captulo 6 Controle de verses


A qualidade de um projeto de software diretamente proporcional a
qualidade dos processos adotados nas diversas fases do seu ciclo de vida. O
controle de verses visto como uma extenso natural do processo de
desenvolvimento, permitindo que se possa paralelizar o desenvolvimento de
forma coerente e padronizada.
Por essa razo, sem uma ferramenta ou metodologia adequada, esse
controle torna-se extremamente complexo e improdutivo. Neste cenrio,
necessria a utilizao de uma ferramenta que atenda os pr-requisitos
bsicos de um processo de Gerncia de Configurao de Software e
implemente as principais funes pertinentes ao controle de verses.
Em geral, ferramentas de controle de verses devem fornecer uma
abordagem consistente, controlada e flexvel para gerenciar a evoluo das
mudanas, garantindo a integridade e a rastreabilidade dos arquivos
modificados.
Adicionalmente, estas ferramentas devem oferecer mecanismos capazes de
controlar os acessos simultneos e as modificaes paralelas, garantindo a
integridade das modificaes e a atomicidade das operaes.
Na tabela abaixo voc poder ver a ferramenta que ser apresentada nas
prximas sees:
Tortoise
CVS

http://www.tortoisecvs.org/

142

CVS
O CVS46 uma ferramenta Open Source que atende os pr-requisitos bsicos
de um processo de Gerncia de Configurao de Software47 e implementa as
principais funes pertinentes ao controle de verses.
Basicamente, o CVS armazena em seu repositrio as modificaes realizadas
num arquivo ao longo do tempo; cada modificao identificada por um
nmero chamado Reviso.
Toda Reviso armazena as modificaes realizadas, quem realizou as
modificaes, quando as modificaes foram realizadas, entre outras
informaes.
Alm disso, o CVS conta com um mecanismo capaz de controlar os acessos
simultneos e as modificaes paralelas, garantindo a integridade das
modificaes e a atomicidade das operaes.
De maneira geral, o fluxo de trabalho bsico do CVS consiste em retirar os
arquivos de um projeto para a rea de trabalho, realizar as modificaes e,
por ltimo, submeter as modificaes de volta ao repositrio, como pode ser
visto na Figura 128. O completo entendimento dos termos apresentados na
Tabela 3 fundamental para auxiliar a leitura desse captulo.

46
47

http://ximbiot.com/cvs/manual/
Gerncia de Configurao Tcnicas e Prticas no Desenvolvimento do Software

143

Figura 128: Operaes realizadas pelo CVS

Termo
Workspace, SandBox
(rea de trabalho)
Repository
(Repositrio)
Revision (Reviso)
Release, Version
(Liberao)

Commit (Entregar,
Submeter)
Checkout (Retirar,
Recuperar)

Descrio
Termo usado para representar um diretrio no
computador cliente onde os arquivos de um projeto
sero transferidos durante uma retirada.
Local onde os arquivos submetidos ao controle de
verses so armazenados.
Termo usado para descrever a numerao atribuda
pelo CVS a cada modificao de um arquivo.
Termo usado para descrever a denominao
atribuda a um conjunto de arquivos para
identificar
determinado
ponto
no
tempo;
sobretudo, quando se quer identificar um conjunto
de novas caractersticas ou correes de um
software.
Termo usado para descrever a transferncia de um
ou mais arquivos modificados da rea de trabalho
para um repositrio.
Termo usado para descrever a retirada de um ou
mais arquivos de um repositrio para a rea de

144

Diff (Comparao das


diferenas)
Import (Importao)
Module (Projeto,
Mdulo)
Branch (Ramo)

trabalho.
Termo usado para descrever o processo de
comparao das modificaes entre revises
diferentes de um arquivo.
Termo usado para descrever o processo de
transferncia dos arquivos de um projeto a um
repositrio, dando inicio ao controle de verses.
Termo usado para descrever um nome simblico
associado a um conjunto de diretrios e arquivos
que compem um projeto a fim de facilitar o
acesso e a manipulao.
Termo usado para descrever o processo de diviso
dos arquivos de um projeto em linhas de
desenvolvimento independentes.

Tabela 3: Termos utilizados no controle de verses

145

TortoiseCVS
O TortoiseCVS48 um front-end grfico Open Source para Windows que
torna o uso do CVS mais fcil e intuitivo. Basicamente, o TortoiseCVS realiza
as principais operaes do CVS por meio de menus de contexto integrados ao
Windows Explorer, como pode ser visto na Figura 129.

Figura 129: Menus de contexto integrados ao Windows Explorer

O TortoiseCVS , em virtude da sua proposta, uma ferramenta extremamente


eficiente cuja principal caracterstica a sua independncia de uma aplicao
cliente especfica. Dessa forma, como descrito anteriormente, todas as
operaes sero realizadas por meio de menus de contexto do Windows
Explorer. O TortoiseCVS suporta as seguintes verses do Windows: Windows
95, 98, ME, NT, 2000 e XP.

48

http://www.tortoisecvs.org/ (os exemplos deste livro so apresentados com a verso


1.8.29)

146

Repositrio
Basicamente, um repositrio um diretrio que tem por objetivo abrigar
todos os arquivos de um projeto sob o controle de verses. O repositrio
poder ser criado num diretrio compartilhado no seu computador ou num
servidor (Windows49 50 ou Linux51).
Naturalmente, quando o repositrio criado num servidor, voc dever
instalar um servidor de CVS e configurar um mtodo de acesso ao repositrio
para garantir a segurana dos arquivos sob o controle de verses.
Sendo assim, para fins didticos, os exemplos apresentados nas sees
seguintes sero realizados num repositrio local. Para tal tarefa, voc dever
criar e compartilhar um diretrio chamado CVSROOT na raiz do seu
computador (C:\CVSROOT).

Importao
Uma vez que o repositrio tenha sido criado, o primeiro passo para iniciar o
controle de verses chamado de Importao. Neste passo, os arquivos da
sua aplicao so transferidos para o repositrio e submetidos ao controle de
verses do CVS.
Para tal tarefa, vamos transferir os arquivos de uma aplicao exemplo para
o diretrio "C:\Temp". A importao do projeto dever ser realizada por meio
do menu de contexto Make New Module.
Na caixa de dilogo Make New Module, o TortoiseCVS fornece opes para
acessar repositrios remotos por meio de qualquer mtodo de autenticao
suportado pelo CVS. Mas, no entanto, como havamos definido
anteriormente, todos os exemplos sero realizados utilizando um repositrio
local.
Em razo disso, voc dever selecionar a opo Locally mounted folder
(:local:) no campo Protocol. O campo "Repository folder" dever ser
preenchido com "C:\CVSROOT" que a localizao do repositrio criado
anteriormente na raiz do seu computador.

49
50
51

http://www.march-hare.com/cvspro/
http://www.devguy.com/fp/cfgmgmt/cvs/cvs_admin_nt.htm
http://devguy.com/fp/cfgmgmt/cvs/cvs_admin_linux.htm

147

O campo Mdulo indica um apelido que ser utilizado pelo TortoiseCVS todas
as vezes que ele se referir ao nosso projeto e dever ser preenchido com o
texto webapp, como pode ser visto na Figura 130.

Figura 130: Caixa de dilogo para criar um novo mdulo

Aps confirmar os dados anteriores, o TortoiseCVS exibir um dilogo


informando que no existe nenhum repositrio criado no diretrio informado.
Voc dever selecionar a opo Initialise a new repository here para
inicializar um novo repositrio, como pode ser observado na Figura 131.

Figura 131: Inicializao do repositrio

148

Este dilogo ser exibido somente quando importar o primeiro projeto. Assim
que a criao do novo mdulo e a inicializao do repositrio finalizarem,
voc dever adicionar os arquivos a esse mdulo recm criado.
Para tal tarefa, voc dever acessar o menu de contexto CVS Add Contents.
O TortoiseCVS exibir um dilogo solicitando a confirmao dos arquivos que
sero adicionados, como pode ser visto na Figura 132.

Figura 132: Adicionando arquivos ao mdulo

Por fim, devemos realizar a operao de entrega, tambm chamada de


Commit para transferir os arquivos do projeto webapp definitivamente
para o repositrio do CVS.
Essa operao dever ser realizada atravs do menu de contexto CVS
Commit. O TortoiseCVS exibir um dilogo solicitando a confirmao dos
arquivos que sero transferidos para o repositrio.
Neste dilogo voc tambm dever escrever um breve comentrio
descrevendo as modificaes realizadas. Alm disso, antes de confirmar a
operao voc poder modificar o formato do arquivo, comparar as suas
modificaes com outras verses armazenadas no repositrio, entre outras
opes, como pode ser observado na Figura 133.

149

Figura 133: Transferncia definitiva dos arquivos para repositrio CVS

150

Retirada dos arquivos do repositrio


Uma vez que os arquivos de um projeto forem importados com sucesso,
podemos finalmente iniciar as operaes de controle de verses. Para tal
tarefa, devemos retirar os arquivos armazenados no repositrio e transferi-los
para a rea de trabalho onde sero realizadas as modificaes nos arquivos
do projeto.
A rea de trabalho um diretrio qualquer no seu disco rgido. Neste caso,
vamos assumir que a nossa rea de trabalho ser o diretrio C:\Projetos.
Para retirar os arquivos voc dever clicar com o boto direito sobre o
diretrio C:\Projetos e acessar o menu de contexto CVS Checkout. Como
resultado, o TortoiseCVS exibir o dilogo para realizar a retirada dos
arquivos, tambm conhecido como Checkout. Por meio desse dilogo, voc
poder configurar onde est localizado o repositrio de arquivos, qual projeto
voc deseja retirar, entre outras opes, como pode ser visto na Figura 134.

Figura 134: Retirada dos arquivos do repositrio CVS

Por fim, assim que a operao de retirada for concluda, voc poder
comear a trabalhar com os arquivos do projeto webapp que foram
transferidos para o diretrio C:\Projetos\webapp.

151

Modificando os arquivos
Assim que o projeto for transferido para a rea de trabalho, poderemos
iniciar a edio dos arquivos. Perceba que, aps a importao e durante a
edio dos arquivos, o TortoiseCVS modifica os cones do Windows Explorer a
fim dar um significado visual sobre o status dos arquivos da rea de trabalho
em relao aos arquivos armazenados no repositrio, como pode ser visto na
Figura 135.

Figura 135: cones modificados indicando o status atual dos arquivos

Para que a adio e remoo de arquivos sejam entendidas e refletidas no


repositrio do CVS, voc dever selecionar o arquivo desejado e acessar os
menus de contexto CVS Add ou CVS Remove como descrito na Figura
136.

152

Figura 136: Adicionando e removendo arquivos

Por fim, devemos realizar a operao de entrega Commit ao final do nosso


trabalho para garantir que todas as modificaes, adies e remoes sejam
definitivamente refletidas no repositrio do CVS.

153

Inspecionando as modificaes ao longo do tempo


Repare que o menu de contexto History tem a funo de apresentar o
histrico das modificaes realizadas num arquivo. Por meio desse recurso
voc poder consultar o log das modificaes, o nome do usurio que
realizou a modificao, quando a modificao foi realizada e comparar a
reviso atual com revises antigas, como pode ser visto na Figura 137.

Figura 137: Histrico das modificaes ao longo do tempo

154

Configurando o TortoiseCVS
Por ltimo, o comportamento e as configuraes do TortoiseCVS podem ser
modificados por meio do menu de contexto Preferences, como pode ser
visto na Figura 138.
Dentre as configuraes possveis, podemos destacar: integrao com
ferramentas externas para a realizao da comparao das diferenas entre
duas revises, modificao da aparncia dos cones que indicam o status dos
arquivos no Windows Explorer e a opo para ignorar arquivos durante as
operaes do CVS (para evitar que determinados tipos de arquivos sejam
submetidos ao controle de verses inadvertidamente).

Figura 138: Preferncias do TortoiseCVS

155

Captulo 7 Ferramentas de apoio


medida que se queira executar os testes de uma aplicao com maior
eficincia, torna-se necessrio estar familiarizado com a maior gama de
ferramentas que possam auxiliar a simular um componente de hardware ou
software que no esteja disponvel, observar o trfego da rede, entre outros
cenrios; as situaes so ilimitadas, tudo depende do tipo de aplicao que
est sendo testada.
Perceba que no estamos falando de ferramentas para a automao de
testes, apesar de que muitas delas podem automatizar a execuo de
algumas tarefas, mas a idia principal utilizar essas ferramentas para
maximizar a eficincia dos testes manuais.
Considerando o que foi exposto, devemos afirmar que o testador deve
otimizar a execuo dos testes ao mximo por meio do emprego de
ferramentas ou, se for necessrio, utilizar as suas habilidades de
programao para escrever a sua prpria ferramenta.
Na tabela abaixo voc poder ver as ferramentas que sero apresentadas nas
prximas sees:
Tail for Win32
HeavyLoad
Process Explorer
VMWARE
Microsoft PICT
Burp Suite
Camstudio
MWSnap
WinMerge
Data Generator
Firebug

http://tailforwin32.sourceforge.net/
http://www.jam-software.com/freeware/index.shtml
http://www.microsoft.com/technet/sysinternals/
http://www.vmware.com/products/server/
http://download.microsoft.com/download/f/5/5/f55484df8494-48fa-8dbd-8c6f76cc014b/pict33.msi
http://portswigger.net/proxy/download.html
http://sourceforge.net/projects/camstudio/
http://www.mirekw.com/winfreeware/mwsnap.html
http://winmerge.sourceforge.net/
http://www.generatedata.com/
http://getfirebug.com/

156

Tail for Win32


O Tail for Win3252 um utilitrio Open Source para Windows cuja principal
funo exibir as ltimas linhas de um arquivo. Voc tambm poder realizar
a visualizao dinmica do arquivo medida que novas linhas so inseridas.
Esta funcionalidade extremamente til quando se quer durante a realizao
de um teste acompanhar algum arquivo de log para identificar excees ou
avisos, ou mesmo acompanhar algum arquivo de sada gerado pela aplicao
em teste.
No entanto, o Tail for Win32 no se limita a apenas a exibir as ltimas linhas
dos arquivos dinamicamente; voc poder adicionar uma lista de palavras
chaves (keywords) e associar uma cor para cada palavra chave. Durante a
exibio das linhas de um arquivo, o Tail for Win32 muda a cor do texto que
corresponder as palavras chaves existentes. Alm disso, voc poder
configurar o Tail for Win32 para hachurar as linhas que contm palavras
chaves, soar um bipe quando o arquivo for modificado, exibir somente as
linhas que corresponderem as palavras chaves cadastras ao invs de mostrar
todas as linhas, entre outras configuraes, como pode ser visto no exemplo
apresentado na Figura 139.

Figura 139: Tail for Win32

Caso o Tail for Win32 no atenda as suas necessidades, vale a pena conferir
os utilitrios BareTail53 e MakeLogicTail54 que oferecem funcionalidades
semelhantes.
52
53
54

http://tailforwin32.sourceforge.net/
http://www.baremetalsoft.com/baretail/
http://sourceforge.net/projects/makelogictail/

157

HeavyLoad
O HeavyLoad55 um utilitrio gratuito para Windows cuja principal funo
estressar os recursos de um computador, ou seja, aumentar a utilizao do
processamento, memria, disco, rede e sistema operacional a nveis
extremamente elevados.
O HeavyLoad foi criado originalmente para testar a robustez de servidores
antes de entrar em produo, no entanto, podemos us-lo para testar a
confiabilidade e robustez da aplicao em teste quando submetida a um
ambiente onde os recursos esto sendo utilizados no limite da sua
capacidade. A utilizao do HeavyLoad bastante simples, basta selecionar
quais recursos voc quer estressar, qual freqncia ser atualizado o grfico
que demonstra a utilizao da memria e processamento e, por fim, iniciar a
execuo, como pode ser visto na Figura 140.

Figura 140: HeavyLoad

Caso o HeavyLoad no atenda as suas necessidades, vale a pena conferir o


TrafficEmulator56 que oferece funcionalidades especficas para estressar
redes, roteadores, firewalls, etc.
55
56

http://www.jam-software.com/freeware/index.shtml
http://www.nsauditor.com/network_tools/network_traffic_generator.html

158

Process Explorer
O Process Explorer57 utilitrio gratuito para Windows cuja principal funo
monitorar a performance e o comportamento das aplicaes. O
funcionamento do Process Explorer semelhante ao Gerenciador de Tarefas
do Windows, mas no entanto, ele conta com diversos recursos avanados
que nos auxilia a monitorar o comportamento e performance da aplicao em
teste.
Por meio do Process Explorer, voc poder ver informaes da aplicao em
teste, tais como, a linha de comando e o usurio usado para executar a
aplicao, os processos filhos iniciados pela aplicao, entre outras
informaes. Devemos destacar tambm a possibilidade de visualizar os
recursos, tais como, os arquivos, diretrios, chaves de registros e DLLs que
foram abertos pela aplicao em teste. Alm disso, voc poder ver tambm
grficos destacando a utilizao de processamento, memria e disco apenas
da aplicao selecionada, como pode ser observado no exemplo apresentado
na Figura 141.

Figura 141: Process Explorer

importante ressaltar que o Process Explorer faz parte de um pacote de


timos utilitrios chamado SysInternals58 da Microsoft que fazem a diferena
durante as atividades de monitorao (profiling) da aplicao em teste.
57
58

http://www.microsoft.com/technet/sysinternals/SystemInformation/ProcessExplorer.mspx
http://www.microsoft.com/technet/sysinternals/default.mspx

159

VMWARE
O VMWARE59 uma ferramenta gratuita que executa mltiplos sistemas
operacionais ao mesmo tempo num mesmo computador fsico por meio de
virtualizao. O VMWARE suporta a virtualizao de diversas plataformas, tais
como Windows, Linux, Novel Netware, Solaris, entre outros. Alm disso, ele
pode ser executado tanto no Windows quanto no Linux.
O VMWARE uma soluo perfeita economizar investimentos com hardware
quando necessrio testar aplicaes que suportam plataformas diferentes.
importante lembrar que o sistema operacional virtualizado se comporta
realmente como se fosse um ambiente separado do ambiente onde ele est
sendo executado, mas no entanto, apesar dessas vantagens, o VMWARE no
recomendado para a realizao de testes de performance, em virtude de
que por mais eficiente que seja a virtualizao, ela nunca ser to rpida
quanto o hardware real. Dentre as principais funcionalidades do VMWARE,
devemos destacar a possibilidade de executar vrios sistemas operacionais ao
mesmo tempo, a possibilidade de realizar configuraes nos dispositivos
virtualizados (memria, disco, rede, USB, entre outros), assim como, a
possibilidade de salvar o estado do sistema operacional (snapshot) para
posterior restaurao (normalmente utilizado para voltar a determinado
ponto no tempo em que o sistema operacional est limpo e com as prcondies necessrias satisfeitas para iniciar os testes), como pode ser visto
na Figura 142.

Figura 142: VMWARE

importante ressaltar que a Microsoft oferece um produto gratuito similar ao


VMWARE chamado VirtualPC60.
59
60

http://www.vmware.com/products/server/ e http://www.vmware.com/products/player/
http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx

160

Microsoft
Testing

Pairwise

Independent

Combinatorial

O PICT61 um utilitrio gratuito para Windows cuja funo principal gerar


uma lista de combinaes baseadas no mtodo de combinao dupla
(pairwise). Muitas vezes, testar todas as combinaes dos parmetros de
entrada ou pr-condies de um caso de teste praticamente impossvel em
virtude do nmero elevado de cenrios. Por meio do mtodo de combinao
dupla, cada par de parmetros combinado ao menos uma vez, garantindo
dessa forma, uma cobertura mnima das situaes possveis. O PICT
executado pela linha de comando e o resultado das combinaes exibido
direto na tela ou pode ser direcionado para um arquivo. Os parmetros de
entrada que sero combinados devem ser listados num arquivo com base
numa sintaxe especfica do PICT. Alm dos parmetros de entrada, essa
sintaxe suporta grupo de parmetros, restries incondicionais e condicionais
(IF-THEN-ELSE), como pode ser visto no exemplo abaixo de um arquivo com
algumas combinaes de navegadores e OS (sistema operacional) e uma
restrio:
Navegador: IE7, IE6, IE5
OS: WINVISTA, WINXP
IF [OS] = "WINVISTA" THEN [Navegador] = "IE7";

Na listagem abaixo, voc poder visualizar o resultado das combinaes


pairwise aps a execuo do PICT utilizando o arquivo citado no pargrafo
anterior:
Navegador
IE6
IE7
IE7
IE5

OS
WINXP
WINVISTA
WINXP
WINXP

Caso o Microsoft PICT no atenda as suas necessidades, vale a pena conferir


o utilitrio ALLPAIRS Test Case Generation62 que oferece funcionalidades
semelhantes. Em tempo, no site pairwise.org63 voc encontrar uma listagem
de outras ferramentas interessantes para a gerao de combinaes duplas.

61

http://download.microsoft.com/download/f/5/5/f55484df-8494-48fa-8dbd8c6f76cc014b/pict33.msi
62
63

http://www.satisfice.com/tools/pairs.zip
http://www.pairwise.org/tools.asp

161

Burp Suite
O Burp Suite64 um utilitrio Open Source escrito em Java cuja principal
funo monitorar e interagir com as requisies HTTP enviadas de um
navegador para um servidor WEB e vice-versa. O Burp Suite se comporta
com um Proxy, ou seja, um elemento capaz de monitorar, inspecionar e
modificar todo o trfego de informaes entre o navegador e o servidor WEB.
Por meio do Burp Suite, voc poder interceptar e validar o contedo das
requisies HTTP (GET/POST), assim como, modificar os contedo das
requisies para simular um hacker explorando uma vulnerabilidade da
aplicao, Alm disso, voc poder testar a robustez da aplicao quando
dados incorretos so enviados ao servidor. O Burp Suite oferece uma opo
de filtragem para exibir somente o tipo de requisio que importa no
momento do teste, assim como, um mecanismo para visualizar o contedo da
requisio renderizada em HTML para simular o que o navegador ir exibir,
como pode ser visto na Figura 143.

Figura 143: Burp Suite

Caso o Burp Suite no atenda as suas necessidades, vale a pena conferir o


utilitrio TCPMon65 que oferece funcionalidades semelhantes.

64
65

http://portswigger.net/proxy/download.html
https://tcpmon.dev.java.net/

162

Camstudio
O Camstudio66 um utilitrio Open Source para Windows cuja principal
funo capturar toda a atividade exibida no seu monitor (abrir janelas,
mover o mouse, digitar, etc) e converter para um vdeo no formato AVI ou
Flash (SWF). Estes vdeos podem ser capturados para demonstraes,
treinamentos, entre outras funes. No entanto, sob o ponto de vista de
testes de software, voc poder gravar um vdeo a fim de fornecer uma
evidncia ao time de desenvolvimento de que existe um defeito em
determinada funcionalidade da aplicao e os passos para reproduzi-lo.
Durante o processo de gravao voc poder escolher se deseja gravar
determinada regio do monitor ou o monitor todo. Para dar nfase ou
destacar determinada ao ou regio da tela, voc poder gravar a sua voz
ou escolher alguns dos indicadores (setas, formas, bales, etc), fornecidos
pelo CamStudio, como pode ser observado no exemplo apresentado na
Figura 144.

Figura 144: CamStudio

Caso o CamStudio no atenda as suas necessidades, vale a pena conferir o


utilitrio Wink67 que oferece funcionalidades semelhantes.
66
67

http://sourceforge.net/projects/camstudio/
http://www.debugmode.com/wink/

163

MWSnap
O MWSnap68 um utilitrio gratuito para Windows cuja principal funo
capturar uma imagem (screenshot) do seu monitor. Estas imagens podem ser
capturadas para demonstraes, treinamentos, entre outras funes. Assim
como o CamStudio, a imagem capturada poder fornecer uma evidncia ao
time de desenvolvimento de que existe um defeito em determinada
funcionalidade da aplicao. O MWSnap muito superior em relao ao velho
boto PrintScreen para capturar uma imagem (screenshot) do seu monitor.
Entre outros recursos, voc poder capturar janelas, dilogos e at
componentes especficos de uma janela (botes, grids, menus, etc).
Adicionalmente, voc poder configurar o MWSnap para capturar uma regio
especfica do seu monitor, como pode ser observado na Figura 145.

Figura 145: MWSnap

Caso o MWSnap no atenda as suas necessidades, vale a pena conferir o


utilitrio Screen Grab Pro69 que oferece funcionalidades semelhantes.

68
69

http://www.mirekw.com/winfreeware/mwsnap.html
http://www.traction-software.co.uk/downloads/ScreenGrabPro.zip

164

WinMerge
O WinMerge70 um utilitrio Open Source para Windows cuja principal
funo realar a diferena entre dois arquivos. O WinMerge de grande
utilidade quando necessrio durante a execuo de um teste comparar um
arquivo de sada (output) gerado pela aplicao em teste contra o mesmo
arquivo gerado por uma verso anterior da mesma aplicao, por um outro
build da mesma aplicao ou, at mesmo, pelo sistema legado. O WinMerge
oferece um interface fcil de usar e bastante intuitiva. Alm de realar as
diferenas entre dois arquivos, voc poder realizar operaes de
mesclagem/sincronizao (merge) entre as diferenas dos arquivos a fim de
tornar os arquivos idnticos ou fazer um arquivo receber as diferenas do
outro, como pode ser visto na Figura 146. Entre os diversos recursos do
WinMerge, devemos destacar o recurso de comparao de pastas, onde
realada as diferenas entre os arquivos de duas pastas, as diferenas dos
seus nomes, data de atualizao, entre outros.

Figura 146: WinMerge

Caso o WinMerge no atenda as suas necessidades, vale a pena conferir o


utilitrio Perforce Visual Merge Tool71 que oferece funcionalidades
semelhantes.
70
71

http://winmerge.sourceforge.net/
http://www.perforce.com/perforce/products/merge.html

165

Data Generator
O Data Generator72 uma aplicao WEB Open Source baseada em
JavaScript, PHP and MySQL cuja principal funo gerar enormes volumes
de dados para popular banco de dados de testes. Este tipo de utilitrio tem
grande serventia quando a aplicao nova e no existem dados nas tabelas
do banco de dados para realizar os testes. O Data Generator vem com uma
srie de templates com diversos tipos de dados para auxiliar a criao da
massa de dados conforme a sua necessidade. No entanto, muitos templates
correspondem a dados especficos de outros pases (Canad, Estados Unidos,
etc). Por outro lado, por ser uma ferramenta Open Source, voc poder fazer
o download do cdigo fonte e realizar as modificaes necessrias para
atender as suas necessidades (gerao de CPF, telefones no formato
brasileiro, CEP no formato brasileiro e assim por diante), como pode ser visto
na Figura 147.

Figura 147: Data Generator

72

http://www.generatedata.com/

166

Firebug
O Firebug73 um utilitrio Open Source cuja principal funo editar,
depurar e monitorar o contedo HTML, CSS e JavaScript utilizados em
aplicaes WEB. O Firebug uma extenso (add-on) do navegador Firefox.
Por meio do Firebug, voc poder monitorar o que est acontecendo por
detrs dos panos da aplicao em teste (on-the-fly enquanto voc navega
pelas pginas). Entre os diversos recursos oferecidos pelo Firebug, podemos
destacar a visualizao do contedo de cada requisio entre navegador e o
servidor e a possibilidade de monitorar as requisies XML utilizadas em
pginas AJAX. Alm disso, voc poder monitorar e depurar o cdigo
JavaScript enquanto ele executado e analisar a performance do
download/execuo de cada elemento da pgina da aplicao WEB, como
pode ser visto na Figura 148.

Figura 148: Firebug

73

http://getfirebug.com/

167

Consideraes Finais
Ferramentas similares no apresentadas neste
livro
Quando este livro ainda era uma idia embrionria, entre riscos e rabiscos
numa folha em branco criei um MindMap74 definindo as ferramentas que
fariam parte do seu escopo. Aps uma pequena pesquisa, cheguei a
concluso de que o escopo deveria ser reduzido a fim de evitar que o livro
levasse muito tempo para ser escrito e ficasse muito desatualizado (as
ferramentas Open Source evoluem numa velocidade fantstica).
O escopo foi redefinido tendo em mente as ferramentas realmente
essenciais; outro ponto que pesou muito foi o tamanho das comunidades
apoiando e suportando estas ferramentas. Ferramentas com grandes
comunidades e liberaes freqentes foram privilegiadas em relao s
outras.
De qualquer forma, mantive a listagem original a fim de apresentar as
ferramentas similares que no foram abordadas neste livro (talvez sejam
adicionadas novas ferramentas na prxima edio de acordo com o retorno
do leitor). Caso as ferramentas apresentadas neste livro no atendam as suas
necessidades, sinta-se vontade para procurar um similar equivalente entre
as ferramentas apresentadas na Tabela 4.
Categoria
Gesto de
projetos

Teste de
performance
Gesto de
testes

74

Ferramenta
GanttProject http://ganttproject.biz/
]project-open[ http://www.project-open.com/
OpenWorkbench http://www.openworkbench.org/
XPlanner http://www.xplanner.org/
WebCollab http://webcollab.sourceforge.net/
OpenProj http://openproj.org/
Mindquarry http://www.mindquarry.com/
OpenSTA http://www.opensta.org/
WEBLOAD http://www.WEBload.org/
The Grinder http://grinder.sourceforge.net/
rth http://www.rth-is-quality.com
TestMaster http://testmaster.sourceforge.net/
Testitool http://majordojo.com/testitool/

http://en.wikipedia.org/wiki/Mind_Mapping

168

Gesto de
defeitos

Gesto de
requisitos

Testes
funcionais

Estimativas
Controle de
verses

Test Case Web (TCW)


http://tcw.sourceforge.net/
Testopia http://www.mozilla.org/projects/testopia/
Bugzilla http://www.bugzilla.org/
Scarab http://scarab.tigris.org/
BugNET http://www.bugnetproject.com/
TRAC http://trac.edgewall.org/
OSRMT http://www.osrmt.com/
Tiger PRO
http://www.seecforum.unisa.edu.au/SEECTools.html
Xuse http://xuse.sourceforge.net/
TRUC http://sourceforge.net/projects/truc
Plandora http://plandora.sourceforge.net/
Jeremia http://jeremia.sourceforge.net/
Watir (WEB) http://wtr.rubyforge.org/
Canoo WEBTest (WEB) http://WEBtest.canoo.com/
Apodora (WEB) http://www.apodora.org/
Abbot (Java Swing) http://abbot.sourceforge.net
SoapUI (WEBServices) http://www.soapui.org/
SOAPSonar Personal Edition (WEBServices)
http://www.crosschecknet.com/
LISA WS-Testing (WEBServices)
http://www.itko.com/site/products/lisa/ws_testing.jsp
Squish for KDE (Linux) http://www.froglogic.com
GNU/Linux Desktop Testing Project (Linux)
http://ldtp.freedesktop.org/wiki/Home
FitNesse http://fitnesse.org/
Construx Estimate
http://www.construx.com/Page.aspx?nid=68
WinCVS
http://www.wincvs.org/
Subversion
http://subversion.tigris.org/
darcs
http://darcs.net/

Tabela 4: Ferramentas similares no apresentadas neste livro

Para os leitores que ficaram interessados no MindMap com as ferramentas do


escopo original deste livro, os rabiscos originais foram convertidos num
formato mais amigvel, como pode ser visto na Figura 149. Este MindMap
ser atualizado constantemente para acompanhar a evoluo das

169

ferramentas de testes Open Source e ser disponibilizado para a comunidade


brasileira de testes gratuitamente no seguinte endereo:
http://www.mindomo.com/view?m=d1535d37f8b0aa6df765a1db90bfa317

Figura 149: Ferramentas similares no apresentadas neste livro

170

Repositrios de ferramentas Open Source


Por mais abrangente que sejam as categorias e ferramentas apresentadas
neste livro, seria ingnuo pensar que ele ofereceria solues que atendessem
a necessidade de todos os leitores, afinal, muitos de vocs devem precisar de
solues especficas para a realizao de testes de diversos tipos e nas mais
diversas plataformas.
Pensando neste cenrio, fiz uma pesquisa extensa a fim de trazer para o
leitor uma lista detalhada com os maiores e melhores repositrios de
ferramentas Open Source do mundo.
Assim, voc poder pesquisar a soluo que se enquadre na sua necessidade
no momento que voc quiser, como pode ser visto na Tabela 5.
Categoria
Diversas

Sites
Categoria Testing do site SourceForge, um dos maiores
repositrios de software Open Source do mundo.
http://sourceforge.net/softwaremap/trove_list.php?form_cat=5
75
Categoria Quality Assurance do site SourceForge, um dos
maiores repositrios de software Open Source do mundo.
http://sourceforge.net/softwaremap/trove_list.php?form_cat=5
65
Site especializado em ferramentas para teste de software.
Neste site as ferramentas so organizadas e classificadas em
diversas categorias tais como: testes de performance, gesto
de defeitos, testes funcionais e assim por diante.
http://www.opensourcetesting.org/
Site especializado em teste e qualidade de software. Neste site
existe uma seo listando diversas ferramentas agrupadas por
diversas categorias.
http://www.softwareqatest.com/qatWEB1.html
Categoria Testing do site FreshMeat, um dos maiores
repositrios de software Open Source do mundo.
http://freshmeat.net/browse/836/
Categoria Quality Assurance do site FreshMeat, um dos
maiores repositrios de software Open Source do mundo.
http://freshmeat.net/browse/822/
Categoria Testing do site Tigris, um repositrio de software
Open Source.
http://testing.tigris.org/

171

C# e .NET
Linux
Java

Site especializado em teste de software. Neste site existe uma


seo listando diversas ferramentas agrupadas por diversas
categorias.
http://www.testingfaqs.org/
Site especializado em ferramentas Open Source escritas em c#
para testes funcionais de aplicaes WEB
http://csharp-source.net/open-source/WEB-testing-tools
Site especializado em ferramentas Open Source para realizar
testes do sistema operacional Linux.
http://ltp.sourceforge.net/tooltable.php
Site especializado em ferramentas Open Source escritas em
Java para realizar testes diversos.
http://www.java-source.net/open-source/testing-tools
Site especializado em ferramentas Open Source escritas em
Java para realizar testes diversos.
http://javatoolbox.com/categories/tests
Site especializado em ferramentas Open Source escritas em
Java para realizar testes diversos.
http://community.java.net/projects/

Tabela 5: Repositrios de ferramentas Open Source

172

Alternativas comerciais
impossvel apresentar e discutir ferramentas Open Source sem pensar nas
ferramentas comerciais similares e vice-versa. A ttulo de comparao, sero
apresentadas na Tabela 6 as principais ferramentas comerciais para cada
categoria apresentada neste livro.
Categoria
Gesto de projetos

Testes de
performance

Gesto de testes

Ferramenta
TraceGP
http://www.tracegp.com.br/
Microsoft Office Project
http://office.microsoft.com/enus/project/FX100487771033.aspx
Project Builder
http://www.projectbuilder.com.br/
BaseCamp
http://www.basecamphq.com/
ZOHO Projects
http://projects.zoho.com/jsp/home.jsp
Mercury LoadRunner
http://www.mercury.com/us/products/performancecenter/loadrunner/
WebLOAD Professional
http://www.radview.com/
Empirix e-Load
http://www.empirix.com/products/testing/e-Load.asp
Rational Performance Tester
http://www306.ibm.com/software/awdtools/tester/performance/
Compuware QALoad
http://www.compuware.com/solutions/qaload.htm
Borland SilkPerformer
http://www.borland.com/us/products/silk/silkperforme
r/index.html
RSI/QA-Teste
http://www.rsinet.com.br/modules/content/index.php?
id=9
TestLog
http://www.testlog.com/
Mercury Quality Center
http://www.mercury.com/us/products/quality-center/
TestTrack TCM
http://www.seapine.com/tttcm.html

173

Rational TestManager
http://www306.ibm.com/software/awdtools/test/manager/
Compuware QA Director
http://www.compuware.com/products/qacenter/qadire
ctor.htm
SilkCentral Test Manager
http://www.borland.com/us/products/silk/silkcentral_t
est/index.html
Gesto de defeitos
FogBugz
http://www.fogcreek.com/FogBugz/
Jira
http://www.atlassian.com/software/jira/
yKAP
http://www.ykap.com/
Rational ClearQuest
http://www306.ibm.com/software/awdtools/clearquest/
Gesto de
Rational RequisitePro
Requisitos
http://www-306.ibm.com/software/awdtools/reqpro/
Borland Caliber
http://www.borland.com/us/products/caliber/index.ht
ml
Compuware Optimal Trace
http://www.compuware.com/products/optimaltrace/
Telelogic DOORS Fastrak
http://www.telelogic.com/Products/doors/doorsfastrak
/index.cfm
Testes funcionais
Mercury QuickTest Professional
http://www.mercury.com/us/products/qualitycenter/functional-testing/quicktest-professional/
Rational Functional Tester
http://www306.ibm.com/software/awdtools/tester/functional/
QA Wizard Pro
http://www.seapine.com/qawizard.html
Compuware QARun
http://www.compuware.com/qarun.htm
TestComplete
http://www.automatedqa.com/products/testcomplete/
Controle de verses Perforce
http://www.perforce.com/

174

Microsoft Visual Source Safe


http://msdn2.microsoft.com/enus/vstudio/aa718670.aspx
Rational ClearCase
http://www306.ibm.com/software/awdtools/clearcase/
SourceGear Vault
http://www.sourcegear.com/vault/downloads.html
Tabela 6: Comparao com ferramentas comerciais

Outros autores/pesquisadores ao redor do mundo tambm disponibilizaram


comparaes entre as solues comerciais e Open Source. Confira abaixo
alguns exemplos selecionados especialmente para o leitor:

Comparao entre ferramentas de gesto de projetos

http://www.blogtoplist.com/software/blogdetails-11377.html
http://www.openworkbench.org/index.php?option=com_content&task=view&
id=7&Itemid=15

Comparao entre ferramentas de gesto de requisitos


http://www.volere.co.uk/tools.htm

Comparao entre ferramentas de controle de verses

http://better-scm.berlios.de/comparison/comparison.html
http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
ftp://ftp.software.ibm.com/software/rational/web/reports/forrester_scm_wav
e_2007.pdf

Comparao entre ferramentas de gesto de defeitos

http://en.wikipedia.org/wiki/Comparison_of_ticket-tracking_systems
http://www.javaworld.com/javaworld/jw-03-2007/jw-03-bugs.html
http://www.testingfaqs.org/t-track.html
http://www.pronus.eng.br/artigos_tutoriais/analises/ferramentasControleMud
anca.php

Comparao entre ferramentas de automao de testes funcionais


http://www.vcaa.com/tools/Ray%20Robinson.pdf
http://venus.cs.depaul.edu/se682/FinalPapers/PRV.doc
www.forrester.com/Events/Content/0,5180,-1403,00.ppt
http://en.wikipedia.org/wiki/List_of_GUI_testing_tools

Comparao entre ferramentas de teste de performance

http://bugs.sakaiproject.org/confluence/download/attachments/7105/HTTP_T
est_Tool_Comparison.xls?version=1

175

Comparao entre ferramentas para virtualizao de sistemas


operacionais
http://en.wikipedia.org/wiki/Comparison_of_virtual_machines

176

Referncias sobre teste de software


Conforme mencionamos anteriormente, no faz parte do escopo deste livro
apresentar a teoria ou tcnicas de teste de software. O livro se prope a
apresentar as ferramentas essenciais para a gesto, automao e apoio das
atividades de teste de software. No entanto, se o leitor tiver interesse em
aprofundar os seus conhecimentos nessa fascinante rea da engenharia de
software, segue abaixo a listagem dos livros nacionais sobre teste de
software mais importantes da atualidade:
INTHURN, Cndida. Qualidade e teste de software. 1 edio,
Florianpolis: Visual Books, 2001.
MOLINARI, Leonardo. Testes de Software: Produzindo Sistemas
Melhores e Mais Confiveis, So Paulo: rica, 2003.
KOSCIANSKI, A. Soares, M. S. Qualidade de Software. Editora
Novatec, Segunda Edio, 2007.
BARTIE Alexandre, Garantia da Qualidade de Software, So Paulo:
Elsevier Editora Ltda, 2002.
MECENAS, IVAN et al. Qualidade em Software. Editora Alta Books,
2005.
RIOS, Emerson et al. Teste de Software. Editora Alta Books, 2003.
RIOS, Emerson. Anlise de riscos em projetos de teste de software.
Editora Alta Books, 2005.
RIOS, Emerson et al. Projeto e Engenharia de Software: Teste de
Software. Editora Alta Books, Segunda Edio, 2006.
MALDONADO, Jos Carlos et al. Introduo ao Teste de Software.
Editora Campus, 2007.

177

Sobre o autor
Cristiano Caetano (c_caetano@hotmail.com)
certificado CBTS pela ALATS. Com mais de
10 anos de experincia, j trabalhou na rea
de qualidade e teste de software para
grandes empresas como Zero G, DELL e HP
Invent.
colunista na rea de Teste e Qualidade de
software do site linhadecodigo.com.br e autor
do livro CVS: Controle de Verses e
Desenvolvimento Colaborativo de Software.
O autor tambm pode ser contactado no seguinte endereo:
http://spaces.msn.com/softwarequality/

178

Bibliografia Recomendada
Teste de Software
INTHURN, Cndida. Qualidade & teste de software. 1 edio,
Florianpolis: Visual Books, 2001.
MOLINARI, Leonardo. Testes de Software: Produzindo Sistemas
Melhores e Mais Confiveis, So Paulo: rica, 2003.
KOSCIANSKI, A. Soares, M. S. Qualidade de Software. Editora
Novatec, Segunda Edio, 2007.
BARTIE Alexandre, Garantia da Qualidade de Software, So Paulo:
Elsevier Editora Ltda, 2002.
MECENAS, IVAN et al. Qualidade em Software. Editora Alta Books,
2005.
RIOS, Emerson et al. Teste de Software. Editora Alta Books, 2003.
RIOS, Emerson. Anlise de riscos em projetos de teste de software.
Editora Alta Books, 2005.
RIOS, Emerson et al. Projeto e Engenharia de Software: Teste de
Software. Editora Alta Books, Segunda Edio, 2006.
Gesto de Defeitos e Testes
FUTRELL, Robert T. Quality Software Project Management. Prentice
Hall PTR, 2004.
BLACK, Rex. Critical Testing Processes: Plan, Prepare, Perform,
Perfect. Addison Wesley, 2003
CRAIG Rick D. Systematic Software Testing. Artech House, 2002.
Gesto de Projetos
MCCONNELL, Steve. Software Project Survival Guide: how to be sure
your first important project isn't your last / Steve McConnell. Microsoft
Press, 2002.
THOMSETT, Rob. Radical Project Management. Prentice Hall PTR,
2002.
CHIN, Gary. Agile Project Management: How to Succeed in the Face of
Changing Project Requirements. AMACOM, 2004
Automao de Testes Funcionais e de Aceitao
FEWSTER, Mark et al. Software Test Automation: Effective use of test
execution tools. Addison-Wesley, 1999.
MOSLEY, Daniel J. et al. Just Enough Software Test Automation.
Prentice Hall, 2002.
DUSTIN, Elfriede, et al. Automated Software Testing: Introduction,
Management. Addison-Wesley, 1999.

179

Automao de Testes de Performance


MENASCE Daniel A., et al. Performance by Design: Computer Capacity
Planning by Example. Prentice Hall PTR, 2004.
SUBRAYA, B. M. Integrated Approach to Web Performance Testing: A
Practitioner's Guide. IRM Press, 2006.
Microsoft ACE Team. Performance Testing Microsoft .NET Web
Applications. Microsoft Press, 2002.
Controle de Verses e Gerncia de Configurao de Software
CAETANO, Cristiano. CVS - Controle de Verses e Desenvolvimento
Colaborativo de Software (Concurrent Versions System). Editora
Novatec, 2004.
MOLINARI, Leonardo. Gerncia de Configurao - Tcnicas e Prticas
no Desenvolvimento do Software. Editora Visual Books, 2007.

180

Bibliografia
PRESSMAN, Roger. Engenharia de Software. So Paulo: Makron
Books, 1995.
MYERS, Glenford. The Art of Software Testing. New York: Wiley,
1979.
INTHURN, Cndida. Qualidade e Teste de Software, Visual Books,
2001.
MOLINARI, Leonardo. Testes de Software: Produzindo Sistemas
Melhores e Mais Confiveis, So Paulo: rica, 2003.
BARTIE Alexandre, Garantia da Qualidade de Software, So Paulo:
Elsevier Editora Ltda, 2002.
RIOS, Emerson et al. Teste de Software. Editora Alta Books, 2003.

181

ndice Remissivo
&nbsp ..................................... 72
Accessors ................................ 73
acessos simultneos ................143
Actions .................................... 73
AJAX ....................................... 78
ALLPAIRS ...............................162
ANT .......................................124
Apache Tomcat ............... 111, 127
rea de trabalho .....................145
Assertions........................... 73, 89
AUT ........................................ 71
automao de testes ................ 68
AVI ........................................164
Bandwidth ..............................139
BareTail..................................158
bookmarks compartilhados........ 62
Branch ...................................146
Browser Recorder....................134
bug ......................................... 16
bug tracking system ................. 15
Build ....................................... 46
Burp Suite ..............................163
calendrio................................ 57
campos personalizados ............. 27
Camstudio ..............................164
Categorias ............................... 35
Change Log ............................. 26
Checkout ................................145
Class Path................................ 85
clickAndWait ............................ 78
cliente ..................................... 51
cobertura dos testes ................. 68
combinao dupla ...................162
Commit ..................................145
componente............................. 35
Concurrent Connections ...........139
Conditional Goto .....................107
Control Panel ........................... 71
controle de verses .................143
Cooldown ...............................139
cross-site scripting.................... 77

Custom Component Resolver ..... 89


CVS ....................................... 144
Data Generator....................... 167
Delay ..................................... 121
depurar.......... 76, 84, 86, 102, 168
DHTML .................................... 69
Diff ........................................ 146
divulgao de notcias ............... 25
Duration Assertion .................. 119
e-book ..................................... 12
endpoints ................................. 96
Especificao de Requisito ......... 32
Especificao de Teste .............. 35
estresse ................................. 111
fases........................................ 51
ferramentas comerciais similares
.......................................... 174
Ferramentas de apoio ............. 157
Finalizao ............................... 94
Firebug .................................. 168
Firefox . 69, 71, 74, 75, 76, 77, 168
Fixture ..................................... 94
Fixtures.................................... 86
Flash...................................... 164
FTP........................................ 111
Gerncia de Configurao ........ 143
gerenciamento de requisitos ...... 31
gesto de defeitos .................... 15
gesto de projetos .................... 50
gesto de testes ....................... 28
GET ....................................... 115
Groovy Script.......................... 107
HeavyLoad ............................. 159
HTTP Authorization Manager.... 127
HTTP Proxy Server.................. 115
HTTP Response Code .............. 125
Importao ............................ 148
Inicializao.............................. 94
instncia do navegador ............. 79
Internet Explorer ....... 69, 134, 135
Java Script ............................... 69

182

JMeter....................................111
JUnit ....................................... 93
Jython ..................................... 84
keyword .................................. 40
Liberao................................145
lista de discusso ..................... 58
Listeners.................................122
Loop Count .............................114
Main Class ............................... 85
MakeLogicTail .........................158
Mantis ..................................... 16
Marathon................................. 84
Marathon Control Center........... 91
matriz de rastreabilidade........... 29
menus de contexto.....75, 147, 153
mtricas .................................. 48
Microsoft ................................132
Milestones ............................... 46
MindMap ................................169
modo interativo........................ 80
Module ...................................146
Modules................................... 86
mdulos reutilizveis ........... 88, 91
Mdulos reutilizveis................. 84
MWSnap.................................165
nveis de prioridade .................. 45
Open Source2, 5, 6, 7, 10, 12, 13,
14, 16, 29, 51, 68, 69, 84, 96,
110, 111, 127, 144, 147, 158,
163, 164, 166, 167, 168, 169,
171, 172, 173, 174, 176
Page Groups ...........................140
pairwise..................................162
palavra-chave .......................... 40
pausar................................ 76, 88
Perforce Visual Merge Tool.......166
performance ...........................111
php-Collab ............................... 51
PICT ......................................162
plataforma WEB ......................110
PMBOK .................................... 50
ps-processadores...................111
POST......................................115
pr-processadores ...................111

PrintScreen............................. 165
prioridade ................................ 16
Process Explorer ..................... 160
processo de teste...................... 28
project management system...... 50
projeto..................................... 50
Property Transfer.................... 107
Python ..................................... 84
qualidade ................................. 13
Ramo..................................... 146
Ramp-Up................................ 114
Record ......... 88, 91, 133, 134, 139
registro de bugs ....................... 20
relatrios.................................. 48
Release .................................. 145
Remote Control ........................ 79
repositrio.............................. 144
repositrios de ferramentas Open
Source ................................ 172
Request Editor.......................... 99
requisies de suporte............... 66
requisies HTTP .................... 111
requisitos ................................. 32
Response Assertion ................. 118
resultado da execuo............... 47
Reviso .................................. 144
ROI ......................................... 14
Ruby........................................ 81
Scheduler............................... 114
Schema Compliance ................ 103
Screen Grab Pro ..................... 165
Selens .................................... 71
Selenese .................................. 71
Selenium.................................. 69
Selenium Core .......................... 70
Selenium IDE ........................... 74
Selenium RC............................. 79
Selenium Server........................ 79
Setup....................................... 94
severidade ............................... 16
Simple Contains ...................... 103
Simple NotContains................. 104
Simple Object Access Protocol.... 96
site do projeto .......................... 64

183

Slow Play................................. 93
snapshot ................................161
SOAP ...................................... 96
SOAP Fault .............................104
SoapUI .................................... 96
SSL/HTTPS .............................117
sumrio dos bugs ..................... 24
Swing...................................... 84
syntax highlight........................ 96
SysInternals............................160
tabelas HTML........................... 69
Tail for Win32 .........................158
tarefas .................................... 54
TCO ........................................ 14
TCPMon..................................163
Teardown ................................ 94
tempo estimado ....................... 56
Test Cases............................... 39
test management system .......... 28
Test Step................................101
Test Suite Runner ...................101
Test Suites ......................... 29, 42
teste de software ....................178
testes de performance .............110
testes de regresso .................. 68
testFrame ................................ 72
TestLink .................................. 29
TestRunner.............................. 70
Thread Group .........................113
time do projeto ........................ 51

Timer..................................... 121
TortoiseCVS............................ 147
TrafficEmulator ....................... 159
Violet ....................................... 87
virtualizao ........................... 161
virtualizado............................. 161
VirtualPC ................................ 161
VMWARE................................ 161
volume................................... 111
Warmup................................. 139
WAS ...................................... 132
WEB Application Stress............ 132
WEB Service Description Language
............................................ 96
WEB Services ........................... 96
Websites .................................. 54
Wink...................................... 164
WinMerge .............................. 166
worflow.................................... 16
WorkBench............................. 115
Workspace ............................. 145
Wrapper API............................. 79
WSDL ...................................... 96
XAMMP .........................17, 30, 52
XML ......................................... 96
XmlHttpRequest........................ 80
XPATH ..................................... 96
XPath Match ........................... 104
XSS ......................................... 77

184

Você também pode gostar