Anda di halaman 1dari 185

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 ........................................... 172 Alternativas comerciais ...................................................................... 174 Referncias sobre teste de software ................................................... 178 Sobre o autor ................................................................................... 179 Bibliografia Recomendada ..................................................................... 180 Bibliografia .......................................................................................... 182 ndice Remissivo .................................................................................. 183

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

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

Coloque um rdio transistorizado prximo ao processador do computador

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 v2.0 (atualizada em Outubro/2007)

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://www.linhadecodigo.com/EBook.aspx?id=2951

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". opo

6 7

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".

10

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

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.

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

20

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).

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)

43

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)

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

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

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 Ferramenta GanttProject http://ganttproject.biz/ ProjectKoach http://www.projectkoach.com/ ]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/

Teste de performance Gesto de testes


74

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

168

Gesto de defeitos

Gesto de requisitos

Testes funcionais

Estimativas Controle de verses

Testitool http://majordojo.com/testitool/ QaManager http://qamanager.sourceforge.net/ 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 REM (REquisite Management) http://www.lsi.us.es/descargas/descarga_programas.php?id= 3 Plandora http://plandora.sourceforge.net/ Jeremia http://jeremia.sourceforge.net/ Watir (WEB) http://wtr.rubyforge.org/ Canoo WEBTest (WEB) http://WEBtest.canoo.com/ actiWATE (WEB) http://www.actiwate.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 SharpRobo (WinForm .NET) http://confluence.public.thoughtworks.org/display/SHRO/Ho me FitNesse http://fitnesse.org/ Construx Estimate http://www.construx.com/Page.aspx?nid=68 WinCVS http://www.wincvs.org/ Subversion http://subversion.tigris.org/

169

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 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

170

Figura 149: Ferramentas similares no apresentadas neste livro

171

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/

172

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

173

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 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

Testes de performance

Gesto de testes

174

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/

175

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

176

Comparao entre ferramentas para virtualizao de sistemas operacionais


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

177

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. 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.

178

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/ http://www.testexpert.com.br/

179

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.

180

DUSTIN, Elfriede, et al. Automated Software Testing: Introduction, Management. Addison-Wesley, 1999. 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.

181

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.

182

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

183

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

184

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

185

Anda mungkin juga menyukai