automa teste

Upload: eric-fernando-gomes

Post on 14-Apr-2018

258 views

Category:

Documents


1 download

TRANSCRIPT

  • 7/30/2019 Automa Teste

    1/185

    Automao eGerenciamento de Testes

    Aumentando a Produtividade

    com as Principais SoluesOpen Source e Gratuitas

    Cristiano Caetano

    1

  • 7/30/2019 Automa Teste

    2/185

    Prefcio...................................................................................................5 Agradecimentos .......................................................................................7Introduo...............................................................................................8Proposta deste livro................................................................................11Consideraes iniciais .............................................................................12Captulo 1 Gesto de defeitos ...............................................................14Mantis................................................................................................15

    Instalando e configurando................................................................16Criando um novo projeto..................................................................17Registrando e modificando um bug ...................................................19Meus Bugs ......................................................................................22Sumrio dos bugs............................................................................23News ..............................................................................................24Change Log.....................................................................................25Documentao do projeto ................................................................25Configurao do Mantis....................................................................26

    Captulo 2 Gesto de testes ..................................................................27TestLink .............................................................................................28

    Instalando e configurando................................................................29Criando um novo projeto..................................................................30

    Adicionando requisitos .....................................................................31Adicionando test cases .....................................................................34Associando test cases aos requisitos.................................................. 38Associando keywords aos test cases..................................................39Criando test suites ...........................................................................41

    Associando nveis de prioridade a test suite .......................................44Associando usurios ao test suite ......................................................44Criando builds e milestones ..............................................................45Executando os Test Cases ................................................................46

    Captulo 3 Gesto de projetos...............................................................49php-collab ..........................................................................................50

    Instalando e configurando................................................................51Criando um novo projeto..................................................................52

    Adicionando tarefas .........................................................................55Visualizando o calendrio do projeto .................................................56Listas de discusses.........................................................................57

    Adicionando arquivos ao projeto .......................................................59Bookmarks compartilhados...............................................................61

    Adicionando clientes ........................................................................62Requisies de suporte.....................................................................65Relatrios........................................................................................66

    Captulo 4 Automao de testes funcionais e de aceitao.......................67Selenium............................................................................................68

    Selenium Core.................................................................................69

    2

  • 7/30/2019 Automa Teste

    3/185

    Selenium IDE ..................................................................................73Selenium RC (Remote Control)..........................................................78

    Marathon ...........................................................................................83Criando um novo projeto..................................................................84Criando um script de teste................................................................87Criando um mdulo reutilizvel .........................................................90Executando os scripts de teste por meio do JUnit ...............................92Criando uma fixture .........................................................................93

    SoapUI...............................................................................................95 Criando um novo projeto..................................................................96Criando um test case ..................................................................... 100Criando asseres.......................................................................... 102Depurando os Test Cases ............................................................... 104

    Adicionando novos Test Steps ao Test Case ..................................... 105Criando testes de desempenho e stress ........................................... 107

    Captulo 5 Automao de testes de performance .................................. 109JMeter ............................................................................................. 110

    Configurando um test plan ............................................................. 111Adicionando e configurando um thread group .................................. 112Gravando um teste por meio de um HTTP Proxy .............................. 114

    Adicionando asseres ................................................................... 117Adicionando um timer .................................................................... 120Adicionando listeners (relatrios) .................................................... 121Executando e visualizando os resultados.......................................... 123Monitorando a performance do servidor........................................... 126

    Microsoft WEB Application Stress........................................................ 131Gravando um teste por meio de um HTTP Proxy .............................. 132Executando e visualizando os resultados.......................................... 136Configurando o comportamento dos testes ...................................... 138Configurando Page Groups ............................................................. 139Configurando usurios para autenticao......................................... 141

    Captulo 6 Controle de verses............................................................ 142CVS ................................................................................................. 143

    TortoiseCVS .................................................................................. 146Repositrio.................................................................................... 147Importao ................................................................................... 147Retirada dos arquivos do repositrio................................................ 151Modificando os arquivos ................................................................. 152Inspecionando as modificaes ao longo do tempo........................... 154Configurando o TortoiseCVS ........................................................... 155

    Captulo 7 Ferramentas de apoio......................................................... 156Tail for Win32................................................................................... 157HeavyLoad ....................................................................................... 158Process Explorer ............................................................................... 159

    3

  • 7/30/2019 Automa Teste

    4/185

    VMWARE.......................................................................................... 160Microsoft Pairwise Independent Combinatorial Testing ......................... 161Burp Suite ........................................................................................ 162Camstudio ........................................................................................ 163MWSnap .......................................................................................... 164WinMerge......................................................................................... 165Data Generator................................................................................. 166Firebug ............................................................................................ 167

    Consideraes Finais ............................................................................ 168Ferramentas similares no apresentadas neste livro............................. 168Repositrios de ferramentas Open Source........................................... 172

    Alternativas comerciais ...................................................................... 174Referncias sobre teste de software ................................................... 178Sobre o autor ................................................................................... 179

    Bibliografia Recomendada ..................................................................... 180Bibliografia .......................................................................................... 182ndice Remissivo .................................................................................. 183

    4

  • 7/30/2019 Automa Teste

    5/185

    Prefcio

    Caro Leitor,

    O grande escritor e poeta Carlos Drummond de Andrade disse uma vez quetodas as vezes que se abre uma livraria deveramos comemorar com festa, talqual o nascimento de uma criana. Da mesma forma que quando nasce umlivro, seja por qual mdia ou formato que ele venha, deveramos comemorarcom festa e grande orgulho. Um livro representa uma expresso viva de umconjunto de conhecimentos que se acumularam e que foi compartilhado. Esteconhecimento pode ser um conto, uma histria, um conhecimento tcnico, ouat mesmo um pouco de sabedoria que todos ns aprendemos diariamente.Este livro um reflexo da experincia profissional madura em Teste eQualidade de Software vivida pelo autor, meu amigo Cristiano Caetano.

    Quando vemos os altos custos do processo de desenvolvimento subindo cadavez mais e se exigindo nveis de excelncia cada vez maiores, percebe-se quea necessidade em se conhecer ferramentas que tenham custo zero se tornouuma exigncia.

    A maioria das empresas usa, ou vo usar ainda, alguma ferramenta OpenSource ou Gratuita. O Linux um exemplo real disto e tem tomado cada vezmais espao. Muitas grandes empresas tm aberto o cdigo de seus produtose 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 atno gostar e evitar. Pode desconfiar, mas impossvel negar o que est a. uma nova transformao. Concluso: Transforme-se ou voc sertransformado. Ser transformado em um profissional que se "esqueceu" dese atualizar. Infelizmente, no mercado de trabalho, quem se esquece torna-se um esquecido.

    Leve este livro para todos os lados e no tenha medo de perguntar aoCristiano, ou de pesquisar nas referncias citadas no livro. Este livro , emessncia, 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 oseu 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 meorgulho do convite aceito, porque percebi a essncia central deste livro:compartilhar com convico honesta uma grande experincia na rea deTestes e Qualidade de Software. Repito: compartilhar. Disseminar. Dividir. No

    5

  • 7/30/2019 Automa Teste

    6/185

    caso aqui: dividir para conquistar a sua transformao no modo de ver comoas solues Open Source podem ser teis no seu trabalho. Este livro comoum afilhado para mim, e como "padrinho" dei sugestes que foramaproveitadas de modo a aproximar voc, caro Leitor, fazendo-o sentir-se emcasa.

    Devido a limitaes de tamanho do livro e por algumas questes deinviabilidade tcnica no foi possvel colocar "tudo de tudo" no que se referea automao de testes. A cada dia surgem novas solues, e algumasamadurecem como o caso do Testlink, usado mundialmente e suportado porum grupo forte de usurios, e outras tantas acabam no vingando. Por isso oCristiano colocou as que ele considerou mais usadas ou mais maduras. Maslembre-se: a nica certeza a mudana. Por mais que o livro seja tambmuma "foto", este tambm uma ferramenta madura e extremamente til,tendo um pouco de tudo tal qual um "canivete suo". Essa a proposta doCristiano. Simples, prtica e multiuso.

    O livro se divide em grandes reas que vo ajud-lo a tirar o mximo deproveito do conhecimento aqui colocado. Por exemplo, se voc no desejarler o livro de forma seqencial, pode faz-lo indo direto no conhecimento quevoc precisa. O livro tanto servir como livro base como livro de referncia.

    Muitos tm medo de compartilhar conhecimento, mas o Cristiano Caetanono teve medo de compartilhar o conhecimento aqui colocado, da mesmaforma que no tive medo em escrever de forma transparente aqui. O maiorconhecimento 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 narea de Automao de Testes de Software.

    Caro Leitor, acredite em voc e no tenha medo. Boa leitura.

    Leonardo MolinariConsultor de Qualidade de Software, Palestrante e Autor de diversos livroscomo "Testes de Software", "BTO - Otimizao da Tecnologia do Negcio",

    "Gesto de Projetos" e "Gerncia de Configurao".

    E-mail: [email protected]: http://diariodaqualidade.blogspot.com/site: http://br.geocities.com/lm7k/testes.html

    6

    mailto:[email protected]://diariodaqualidade.blogspot.com/http://br.geocities.com/lm7k/testes.htmlhttp://br.geocities.com/lm7k/testes.htmlhttp://diariodaqualidade.blogspot.com/mailto:[email protected]
  • 7/30/2019 Automa Teste

    7/185

    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 foramessenciais para a finalizao desta obra e de outras realizaes na minha vidapessoal. Sem vocs, esse livro no seria possvel: obrigado.

    7

  • 7/30/2019 Automa Teste

    8/185

    Introduo

    "If you don't have the right equipment forthe job, you just have to make it yourself"

    MacGyverColoque um rdio transistorizado prximo ao processador do computadorem que o teste estiver rodando, sintonize aproximadamente na estao 975

    AM e voc poder literalmente escutar o zumbido do processadorfuncionando. Essa tcnica bastante interessante para voc descobrir se o

    processador est realmente realizando algum processamento durante algumteste ou se nada est acontecendo. O cenrio descrito no pargrafo anterior,apesar de representar uma situao extrema, um timo exemplo de umtestador altamente eficaz em ao. medida que se queira executar ostestes 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 maisconhecidos: Os 7 hbitos dos Testadores Altamente Eficazes1; e o fiocondutor deste livro. Aps a publicao do artigo Os 7 hbitos dosTestadores Altamente Eficazes a idia de criar um novo artigo apresentandoquais eram as ferramentas que os testadores altamente eficazes

    normalmente usam ficou martelando na minha cabea por semanas. Euacabei me envolvendo com outros temas e escrevendo outros artigos at odia em que eu comecei a ler o Guide to the CSTE Common Body ofKnowledge do QAI. Em certo ponto do livro desta certificao de teste desoftware abordado o tema Utilizao de ferramentas. O livro afirma queapesar de no existir uma categorizao amplamente difundida dasferramentas de teste, a experincia tem mostrado elas so normalmenteagrupadas em 8 reas distintas:

    1. Ferramentas de automao de testes de regresso;2. Ferramentas para gesto de defeitos;

    3. Ferramentas para testes de Performance/Estresse;4. Ferramentas manuais;5. Ferramentas de rastreabilidade;6. Ferramentas de cobertura de cdigo;7. Ferramentas para gesto de testes;8. Ferramentas de apoio execuo dos testes;

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

    8

    http://www.linhadecodigo.com.br/artigos.asp?id_ac=1083http://www.linhadecodigo.com.br/artigos.asp?id_ac=1083
  • 7/30/2019 Automa Teste

    9/185

    Naquele momento, entre riscos e rabiscos numa folha em branco o artigoganhou forma. Uma das premissas bsicas originais era de que somenteferramentas Open Source2 e gratuitas fariam parte do escopo. Entretanto, oescopo sofreu muitas modificaes ao longo da sua histria. O artigo que iriaabordar apenas ferramentas utilizadas por testadores altamente eficazes,

    acabou abraando ferramentas das reas sugeridas pelo Guide to the CSTECommon Body of Knowledge, tais como ferramentas para gesto dedefeitos, gesto de testes, automao de testes de regresso e assim pordiante. Assim que finalizei o primeiro rascunho do MindMap contendo asreas e ferramentas que seriam abordadas no artigo, ficou muito claro queno daria para apresentar tudo o que eu queria apenas num artigo; ficariaexageradamente superficial.

    Ento surgiu a idia do livro. Aps uma pequena pesquisa, cheguei aconcluso de que o escopo deveria ser reduzido a fim de evitar que o livrolevasse muito tempo para ser escrito e ficasse muito desatualizado (asferramentas Open Source evoluem numa velocidade fantstica). Dessa formaeu tinha um escopo e um deadline definidos. As primeiras pginas deste livroforam escritas em dezembro de 2006 e, entre semanas extremamenteprodutivas e semanas sem nenhuma pgina escrita, as ltimas pginas foramfinalizadas em julho de 2007 (a ltima linha sendo escrita no ltimo dia, masdentro do prazo previsto).

    Mas no pensem que foi fcil. Como voc poder notar mais adiante nocaptulo Ferramentas similares no apresentadas neste livro, o escopooriginal 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 realmenteessenciais; outro ponto que pesou muito foi a facilidade de uso e o tamanhodas comunidades apoiando e suportando estas ferramentas. Ferramentascom grandes comunidades e liberaes freqentes foram privilegiadas emrelao s outras.

    De qualquer forma, tive o cuidado de manter as ferramentas do escopooriginal para que o leitor possa explorar as outras alternativas noapresentadas neste livro. Considere isso, um atalho onde o joio j foiseparado do trigo para voc.

    No entanto, por mais abrangente que sejam as categorias e ferramentasapresentadas neste livro, seria ingnuo pensar que ele ofereceria soluesque atendessem a necessidade de todos os leitores. Pensando neste cenrio,fiz uma pesquisa extensa cujo resultado uma lista detalhada com osmaiores e melhores repositrios de ferramentas Open Source do mundo, a

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

    9

    http://en.wikipedia.org/wiki/Open_sourcehttp://en.wikipedia.org/wiki/Open_source
  • 7/30/2019 Automa Teste

    10/185

  • 7/30/2019 Automa Teste

    11/185

    Proposta deste livro

    A proposta deste livro apresentar as ferramentas Open Source e gratuitasessenciais para a gesto e automao de testes de software, sem no entanto,

    esgotar o assunto. O livro tem o propsito de apresentar um catlogo dasmelhores 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 nasferramentas apresentadas.

    Dessa forma, o objetivo principal deste livro fornecer informaes esubsdios a fim de que o leitor seja capaz de utilizar os conhecimentosadquiridos para aprofundar-se no assunto e escolher a soluo que melhoratenda a sua necessidade.

    Por ltimo, devemos lembrar que este livro no foi escrito para substituir omanual de nenhuma das ferramentas apresentadas. Dvidas especficasdevem ser sanadas por meio dos manuais ou por meio dos fruns dediscusses das comunidades que suportam as ferramentas.

    Tambm no faz parte do escopo deste livro apresentar a teoria ou tcnicasde teste de software. O captulo Referncias sobre teste de softwareapresenta uma listagem com os livros nacionais mais importantes daatualidade sobre esse tema.

    Este livro ser unicamente comercializado por meio eletrnico (e-book). Estafoi uma deciso pessoal do autor para viabilizar a venda do livro por umpreo justo a fim de permitir que todas as pessoas interessadas possamcompr-lo. Tambm foi deciso do autor no utilizar nenhum tipo demecanismo de segurana ou senha neste livro com base na premissa de queo livro tem um preo justo e que qualquer um pode pagar por ele.

    com base nessa relao de confiana que voc est neste momento lendoestas linhas por um preo justo. Mas, no entanto, se por algum motivo estelivro est sendo til para voc, mas voc no pagou por ele, peo que vocprestigie o autor e compre o livro no endereo abaixo para que o autor possa

    escrever outros livros com preos acessveis tanto para voc quanto paraoutras pessoas interessadas em teste de software:

    http://www.linhadecodigo.com/EBook.aspx?id=2951

    11

    http://shop.linhadecodigo.com.br/http://shop.linhadecodigo.com.br/
  • 7/30/2019 Automa Teste

    12/185

    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 aumentoda competio, a qualidade se torna mera propaganda. Vence aquele quemelhor engana".

    Essa receita muito simples e fcil de seguir, todavia, quem tomar esse tipode postura estar fadado ao fracasso. Nos dias de hoje, a qualidade tornou-se requisito imprescindvel para garantir a sobrevida de um software nomercado.

    Podemos concluir que as empresas mais competitivas so as empresas quetrabalham sob a tica da melhoria contnua dos processos para aumentar aqualidade do processo de desenvolvimento e, conseqentemente, aumentara qualidade do produto final.

    Neste contexto, devemos destacar adoo crescente de ferramentas para darsuporte ao processo de melhoria contnua. Estas ferramentas servem paradar suporte a todas as atividades relacionadas ao ciclo de vida dedesenvolvimento de software: da concepo implantao.

    Como mencionamos anteriormente, a proposta deste livro apresentar asferramentas Open Source e gratuitas essenciais para a gesto e automao

    de testes de software. Dessa forma, a figura abaixo apresenta a relevnciade cada tipo de ferramenta apresentada neste livro em relao s fases deum ciclo de vida de desenvolvimento de software:

    12

  • 7/30/2019 Automa Teste

    13/185

    Neste livro sero apresentadas e sugeridas diversas ferramentas Open Sourcee gratuitas. Para o autor, considerado Open Source Software 3 (OSS) todo equalquer 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 dautilizao de ferramentas Open Source em relao a ferramentas comerciais4.No entanto, devemos destacar que a principal vantagem na adoo deferramentas Open Source a economia na aquisio de licenas, uma vezque estas ferramentas so distribudas gratuitamente. Por outro lado, existe ocusto de formao, suporte e manuteno. Neste caso, cada organizaodeve utilizar os seus prprios critrios para calcular o ROI (Return ofInvestment) e o TCO (Total Cost of Ownership) na ocasio da adoo de umaferramenta Open Source.

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

    13

    http://www.opensource.org/http://cio.uol.com.br/estrategias/2005/08/22/idgnoticia.2005-08-22.4315880495http://cio.uol.com.br/estrategias/2005/08/22/idgnoticia.2005-08-22.4315880495http://www.opensource.org/
  • 7/30/2019 Automa Teste

    14/185

    Captulo 1 Gesto de defeitos

    A gesto de defeitos uma das atividades primordiais de um processo deteste de software. Por meio da gesto de defeitos podemos acompanhar a

    qualidade do software em teste com base nos defeitos cadastrados pelostestadores ao longo de um ciclo de teste. Com base nesses dados, podemosidentificar reas problemticas da aplicao onde os riscos so maiores eplanejar atividades preventivas.

    A gesto de defeitos pode ser implementada por meio de ferramentasautomatizadas (bug tracking system). Estas ferramentas devem oferecer umrepositrio central e padronizado onde todos os membros do time poderocadastrar os defeitos, acompanhar o ciclo de vida destes defeitos e emitirrelatrios de gesto.

    Na figura abaixo, voc poder visualizar os principais passos de um processode gesto de defeitos formal e os papis associados:

    Na tabela abaixo voc poder ver a ferramenta que ser apresentada nasprximas sees:

    Mantis

    http://www.mantisbt.org/

    14

    http://www.mantisbt.org/http://www.mantisbt.org/
  • 7/30/2019 Automa Teste

    15/185

    Mantis

    O Mantis5 uma ferramenta Open Source cujo principal objetivo registrar eacompanhar os bugs encontrados em um projeto, desde o seu nascimentoat o seu fechamento. Neste cenrio, o ciclo de vida gerenciado pelo Mantisinicia-se quando um bug registrado; as fases seguintes so empregadaspara a confirmao, correo, reviso e o fechamento do bug. Cada bugrecebe um nmero seqencial nico a fim de identific-lo durante asoperaes de consulta, relatrios e modificaes. Por outro lado, diversasinformaes so agregadas ao bug durante as fases que compem o seuciclo de vida, como por exemplo, status, prioridade, severidade, comentrios,anexos, etc.

    Entre as diversas funcionalidades oferecidas pelo Mantis, devemos destacaras 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);

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

    15

    http://www.mantisbt.org/http://www.mantisbt.org/
  • 7/30/2019 Automa Teste

    16/185

    Instalando e configurando

    Para instalar o Mantis, voc dever seguir os seguintes passos (a ttulo deexemplo estamos sugerindo a utilizao do XAMMP a fim de satisfazer ossoftwares 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:\xampp-

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

    Preferences.3. No campo Language selecione a opo "portuguese_brazil".4. Pressione o boto "Update Prefs".

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

    16

    http://www.apachefriends.org/en/xampp.htmlhttp://www.apachefriends.org/pt_br/faq-xampp-windows.htmlhttp://www.apachefriends.org/pt_br/faq-xampp-windows.htmlhttp://www.apachefriends.org/en/xampp.html
  • 7/30/2019 Automa Teste

    17/185

    Criando um novo projeto

    To logo o Mantis seja instalado e configurado, a sua primeira ao deverser cadastrar um novo projeto para que seja possvel cadastrar bugs e utilizaras demais funcionalidades. Para tal tarefa, voc dever clicar no menu

    Manage e ento selecionar a opo Manage Projects. A pgina AddProject 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 entreoutras informaes. Uma vez que o projeto for cadastrado, voc poderselecion-lo na lista de projetos existentes e inserir informaes adicionais,tais como: SubProjetos, Categorias, Verses, Campos Personalizados,

    17

  • 7/30/2019 Automa Teste

    18/185

    Usurios do projeto, entre outras informaes conforme o exemploapresentado na Figura 2.

    Figura 2: Configurando um projeto no Mantis

    18

  • 7/30/2019 Automa Teste

    19/185

    Registrando e modificando um bug

    Para registrar (cadastrar) um bug no Mantis, voc dever clicar no menuReport Issue. A pgina Enter Report Details dever ser exibida, comopode ser visto na Figura 3. Nesta pgina voc dever preencher os campos

    de acordo com o comportamento do bug encontrado. Se for necessrio vocpoder anexar alguma imagem ou arquivo para auxiliar o entendimento eevidenciar a existncia do bug. O Mantis oferece tambm a opo de registrode 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 fornecermais 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 deverser exibida, como pode ser visto na Figura 4. Esta pgina, por default, listatodos os bugs abertos. No entanto, voc poder configurar filtros especficos

    19

  • 7/30/2019 Automa Teste

    20/185

    conforme a sua necessidade com base nos campos de filtragem exibidos naparte superior desta pgina. O Mantis tambm permite que voc salve o filtropara posterior utilizao.

    Figura 4: Visualizando os bugs abertos

    importante ressaltar que os bugs listados so apresentados em diferentescores. Cada cor significa o status do bug conforme a legenda apresentada naparte inferior desta pgina (Figura 4) Voc poder clicar sobre qualquer bugda lista a fim de abrir a pgina Viewing Issue e modificar qualquerinformao relacionada ao bug, como pode se visto no exemplo apresentadona Figura 5.

    20

  • 7/30/2019 Automa Teste

    21/185

    Figura 5: Modificando um bug

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

    21

  • 7/30/2019 Automa Teste

    22/185

    Meus Bugs

    O Mantis oferece uma pgina onde voc poder visualizar de forma resumidae consolidada todos os bugs. Para visualizar esta pgina, voc dever clicarno menu My View. Basicamente, esta pgina exibe os bugs registrados,

    atribudos e monitorados por voc. Alm dessas informaes, voc podertambm visualizar os bugs recentemente modificados, bugs que no foramatribudos e assim por diante, como pode visto no exemplo apresentado naFigura 6. De qualquer maneira, caso seja necessrio, voc poder modificaros filtros default usados para exibir as informaes nesta pgina por meio dolink [^] existente em cada seo.

    Figura 6: Meus bugs

    22

  • 7/30/2019 Automa Teste

    23/185

    Sumrio dos bugs

    O Mantis oferece uma pgina onde voc poder visualizar o sumrio de todosos 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 naFigura 7.

    Figura 7: Sumrio dos bugs

    23

  • 7/30/2019 Automa Teste

    24/185

    News

    O Mantis tambm oferece uma funcionalidade para a divulgao de notciasNews. Por meio desta funcionalidade, voc poder registrar qualquernovidade 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 napgina principal do Mantis.

    Figura 8: Registrando novidades e avisos

    24

  • 7/30/2019 Automa Teste

    25/185

    Change Log

    Por meio do Change Log, voc poder ver todas as correes associadas aum determinado release (verso). Para visualizar o Change Log, voc deverclicar 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 adocumentao do projeto no Mantis. Para realizar tal tarefa, voc deverclicar no menu Docs e fazer o upload dos documentos, como pode ser vistono exemplo apresentado na Figura 10.

    Figura 10: Documentao do projeto

    25

  • 7/30/2019 Automa Teste

    26/185

    Configurao do Mantis

    O Mantis oferece uma srie de pginas de configuraes que voc poderutilizar 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 decustomizao tais como: criao de campos personalizados, gesto deusurios, configurao de workflows, notificao por email, entre outros(como pode ser observado no exemplo apresentado na Figura 11).

    Figura 11: Configurando o Mantis

    26

  • 7/30/2019 Automa Teste

    27/185

    Captulo 2 Gesto de testes

    A gesto de testes o corao de um processo de teste de software. Agesto 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 ferramentasautomatizadas (test management system). Estas ferramentas devem oferecerum repositrio central e padronizado onde os lderes de testes podero criarsuites com casos de testes, atribuir os casos de testes aos testadores,acompanhar o status da execuo dos testes e emitir os relatrios commtricas e estatsticas.

    Na figura abaixo, voc poder visualizar os principais passos de um processode gesto de testes formal e os papis associados:

    Na tabela abaixo voc poder ver a ferramenta que ser apresentada nasprximas sees:

    TestLink

    http://www.teamst.org/

    27

    http://www.teamst.org/http://www.teamst.org/
  • 7/30/2019 Automa Teste

    28/185

    TestLink

    O TestLink8 uma aplicao Open Source cujo principal objetivo gerenciaras atividades de testes de um projeto. Por meio do TestLink voc poder criarTest Cases e organiz-los em Test Suites.

    Voc tambm poder associar um conjunto de Test Cases a um testador eacompanhar os resultados da execuo dos testes, assim como, gerarrelatrios com diversas mtricas para o acompanhamento da execuo dostestes.

    O TestLink oferece um recurso para que voc possa registrar e organizar osrequisitos do projeto, assim como, associar os Test Cases aos requisitos.Dessa forma, voc poder garantir o rastreamento entre os requisitos e osTest Cases por meio de uma matriz de rastreabilidade.

    Adicionalmente, o TestLink permite a integrao com Mantis. Por meio dessaintegrao, quando um Test Case falhar, voc conseguir associar os bugscadastrados no Mantis a este Test Case.

    Entre as diversas funcionalidades oferecidas pelo TestLink, devemos destacaras seguintes:

    Pode ser executado em qualquer plataforma que suportarPHP/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);

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

    28

    http://www.teamst.org/http://www.teamst.org/
  • 7/30/2019 Automa Teste

    29/185

    Instalando e configurando

    Para instalar o TestLink, voc dever seguir os seguintes passos (a ttulo deexemplo estamos sugerindo a utilizao do XAMMP a fim de satisfazer ossoftwares 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:\xampp-

    win32-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 traduzidospara a lngua portuguesa, ento siga os passos descritos abaixo:

    1. Faa o login normalmente com o seu usurio e senha.2. Clique no menu Personal.3. No campo Locale selecione a opo "Portuguese (Brazil)".4. Pressione o Boto "Update".

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

    29

    http://www.apachefriends.org/en/xampp.htmlhttp://www.apachefriends.org/pt_br/faq-xampp-windows.htmlhttp://www.apachefriends.org/pt_br/faq-xampp-windows.htmlhttp://www.apachefriends.org/en/xampp.html
  • 7/30/2019 Automa Teste

    30/185

    Criando um novo projeto

    Assim que o TestLink for instalado e configurado, a sua primeira ao deverser criar um novo produto (projeto). Para tal tarefa, voc dever ir para aseo Product Management e ento clicar no menu Create New Products.

    A pgina Product Management dever ser exibida, conforme o exemploapresentado na Figura 12.

    Figura 12: Criando um novo projeto no TestLInk

    importante ressaltar que durante a criao do projeto, voc poderdesabilitar o recurso de gerenciamento de requisitos oferecido pelo TestLink,caso voc utilize alguma outra ferramenta para este fim. Alm disso, vocpoder associar uma cor ao projeto criado. Dessa forma, o fundo das pginassempre sero da mesma cor que foi associada ao projeto neste passo.

    30

  • 7/30/2019 Automa Teste

    31/185

    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 menuRequirement Specification. A pgina Requirement Specification dever serexibida, conforme o exemplo apresentado na Figura 13. importanteressaltar que segundo a organizao do TestLink, cada requisito deve serassociado a uma Especificao de Requisito, que representa a grosso modoum agrupador de requisitos semelhantes (algo como uma sute ou seo derequisitos), como pode ser visto no modelo apresentado na Figura 14.

    Figura 13: Adicionando uma especificao de requisito

    31

  • 7/30/2019 Automa Teste

    32/185

    Figura 14: Relacionamento entre os componentes do TestLink

    To logo a Especificao de Requisito seja criada, voc dever clicar sobreela. A pgina Edit Requirement Specification dever ser exibida, conforme oexemplo apresentado na Figura 15.

    Figura 15: Edio das especificaes de requisitos

    32

  • 7/30/2019 Automa Teste

    33/185

    Nesta pgina voc poder importar os requisitos por meio de um arquivoexterno (*.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 demonstraum sumrio dos requisitos cobertos e os no cobertos por testes.

    Para adicionar um requisito manualmente, voc dever clicar no botoCreate New REQ. A pgina Create a new Requirement dever ser exibida,conforme o exemplo apresentado na Figura 16. Convm lembrar, alis, quedurante a criao do requisito, voc poder identificar no campo Status seo requisito testvel ou no.

    Figura 16: Criando um novo requisito

    33

  • 7/30/2019 Automa Teste

    34/185

    Adicionando test cases

    Assumindo que os requisitos j foram criados, o prximo passo deve ser acriao dos Test Cases. Em primeiro lugar, no entanto, voc dever criar umaEspecificao de Teste. Para tal tarefa, clique no menu Specification. A

    pgina Test Specification dever ser exibida, conforme o exemploapresentado na Figura 17. Nesta pgina clique no boto New Componentpara criar um novo componente.

    Figura 17: Criando um novo Componente

    De forma similar aos requisitos, a Especificao de Teste dever obedecer auma organizao hierrquica definida pelo TestLink. Nessa condio, segundoa hierarquia do TestLink, cada Especificao de Teste composta por um oumais Componentes, que por sua vez pode ter uma ou mais Categorias. CadaCategoria agrupa um ou mais Test Cases, como pode ser visto no modeloapresentado na Figura 18.

    34

  • 7/30/2019 Automa Teste

    35/185

    Figura 18: Elementos de uma Configurao de Teste

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

    Figura 19: Criando uma nova Categoria

    35

  • 7/30/2019 Automa Teste

    36/185

    Finalmente, uma vez que a Categoria for criada, voc dever selecion-la nalista de categorias a fim de criar um novo Test Case. Nesta pgina vocpoder importar os Test Cases por meio de um arquivo externo (*.CSV) oucriar 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

  • 7/30/2019 Automa Teste

    37/185

    O TestLink tambm permite a impresso dos Test Cases de uma Categoria ouComponente. Para realizar tal tarefa, voc dever ir para a seo TestSpecification e ento clicar no menu Print Test Cases. A pgina Print TestCase Specification dever ser exibida, conforme o exemplo apresentado naFigura 21. Nesta pgina voc dever selecionar a Categoria ou Componente

    que voc deseja imprimir e configurar as opes de impresso na seoPrint Options.

    Figura 21: Imprimindo Test Cases

    37

  • 7/30/2019 Automa Teste

    38/185

    Associando test cases aos requisitos

    Conforme discutido anteriormente, o TestLink permite que voc possaassociar os Test Cases aos requisitos. Dessa forma, voc poder garantir orastreamento entre os requisitos e os Test Cases por meio de uma matriz de

    rastreabilidade. Para realizar tal tarefa, voc dever ir para a seoRequirements e ento clicar no menu Assign Requirements. A pginaAssign Requirements to Test Case dever ser exibida, conforme o exemploapresentado na Figura 22. Nesta pgina voc dever selecionar o Test Casedesejado, depois selecionar os requisitos disponveis e, por ltimo, associar oTest Case aos requisitos (por meio do boto Assign).

    Figura 22: Associando test cases aos requisitos

    38

  • 7/30/2019 Automa Teste

    39/185

    Associando keywords aos test cases

    O TestLink permite que uma keyword (palavra-chave) seja associada aosTest Cases. As keywords facilitam a realizao de pesquisas ou filtros dosTest Cases disponveis. Para criar uma Keyword, voc dever ir para a seo

    Keywords e ento clicar no menu Create Keywords. A pgina Enter NewKeyword 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 clicarno menu Assign Keywords. Uma vez dentro desta pgina, voc dever

    selecionar o Test Case desejado. A pgina Assign Keywords dever serexibida, conforme o exemplo apresentado na Figura 24. Nesta pgina vocdever selecionar a keyword desejada e, por ltimo, associa-la ao Test Case(por meio do boto Assign).

    39

  • 7/30/2019 Automa Teste

    40/185

    Figura 24: Associando keywords

    40

  • 7/30/2019 Automa Teste

    41/185

    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 SuiteManagement e ento clicar no menu Create Test Suite. A pgina New

    Test Suite dever ser exibida, conforme o exemplo apresentado na Figura25. Voc poder criar uma Test Suite baseada em outra j existente. Almdisso, durante a criao da Test Suite voc dever informar se desejacontrolar a permisso de acesso (dessa forma, voc poder determinar quaisusurios 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 eopes ser exibido na rea esquerda da pgina principal do TestLink. Amaioria dessas novas opes serve para o gerenciamento da Test Suite,execuo dos Test Cases e gerao de relatrios, como pode ser visto noexemplo apresentado na Figura 26. preciso lembrar que voc deveselecionar a Test Suite (seta vermelha da Figura 26) antes de comear arealizar qualquer operao para evitar modificaes na Test Suite errada.

    41

  • 7/30/2019 Automa Teste

    42/185

    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, conformeorientado no pargrafo anterior. Em seguida, v para a seo Test CaseSuite e ento clique no menu Add Test Cases. A pgina Add Test Cases tothe Test Suite dever ser exibida, conforme o exemplo apresentado naFigura 27.

    42

  • 7/30/2019 Automa Teste

    43/185

    Figura 27: Associando Test Cases a Test Suite

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

    43

  • 7/30/2019 Automa Teste

    44/185

    Associando nveis de prioridade a test suite

    Voc tambm poder associar nveis de prioridade, nveis de risco e um donopara a Test Suite. Para tal tarefa, voc dever ir para a seo Test CaseSuite 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 suiteVoc poder associar e realizar o controle de permisses de usurios nosTest Suites existentes. Para tal tarefa, voc dever ir para a seo Test SuiteManagement e ento clicar no menu Define User / Test Suite Rights. Apgina Assign Ownership dever ser exibida, conforme a Figura 29.

    Figura 29: Associando usurios ao Test Suite

    44

  • 7/30/2019 Automa Teste

    45/185

    Criando builds e milestones

    medida que se queira executar os Test Cases de um Test Suite voc devercriar um Build. Um Build identifica uma verso ou liberao do software queser 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 eento clicar no menu Build Management. A pgina Create build for TestSuite dever ser exibida, conforme a Figura 30.

    Figura 30: Criando um Build

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

    45

  • 7/30/2019 Automa Teste

    46/185

    Executando os Test Cases

    Uma vez que os Test Suites e os Builds tenham sido criados, voc poderexecutar os Test Cases existentes. Para tal tarefa, voc dever ir para aseo 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 TestSuites 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 daexecuo (Not run, Pass, Failed ou Blocked) e algum comentrio caso sejanecessrio. importante lembrar que as mtricas e relatrios so gerados apartir dos dados informados pelos testadores durante a execuo dos TestCases.

    Adicionalmente, o TestLink oferece uma configurao especial que permite aintegrao com Mantis (e outras ferramentas de gesto de defeitos). Essa

    46

  • 7/30/2019 Automa Teste

    47/185

    configurao dever ser realizada manualmente, conforme descrito nomanual do TestLink11. Dessa forma, voc poder registrar um bug no Mantise associar este bug ao Test Case que falhou no TestLink, como pode ser vistono 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 Testreports and Metrics. A pgina Overview of available Test Reports andMetrics dever ser exibida. Nesta pgina voc poder gerar mtricas ourelatrios de acordo com o Build selecionado. Os diversos relatriosexistentes agrupam as informaes por Build, Test Suite, Componente,Keyword, Milestone, Prioridade e at mesmo por Requisito, como pode serobservado na Figura 33.

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

    47

    http://testlink.org/mantis/file_download.php?file_id=72&type=bughttp://testlink.org/mantis/file_download.php?file_id=72&type=bug
  • 7/30/2019 Automa Teste

    48/185

    Figura 33: Mtricas e relatrios gerados pelo TestLink

    48

  • 7/30/2019 Automa Teste

    49/185

    Captulo 3 Gesto de projetos

    A gesto de projetos, assim como a gesto de testes, faz parte do corao deum processo de teste (e desenvolvimento) de software. Por meio da gesto

    de projetos, as atividades do projeto so planejadas, organizadas econtroladas num nvel mais macro. A gesto de projetos define e acompanhaas fases e os principais marcos de um projeto, assim como, os recursoshumanos e o esforo necessrio para atingir os objetivos do projeto.

    A gesto de projetos pode ser implementada por meio de ferramentasautomatizadas (project management system). Essas ferramentas, alm deviabilizar a gesto de projetos, tambm oferecem diversas facilidades, comopor exemplo: repositrios de arquivos, agendas e calendrios compartilhados,wikis, entre outros. Na figura abaixo, voc poder visualizar a seqnciatpica 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 nasprximas sees:

    php-collab

    http://www.php-collab.org

    49

    http://www.php-collab.org/http://www.php-collab.org/
  • 7/30/2019 Automa Teste

    50/185

    php-collab

    O php-Collab12 uma aplicao Open Source cujo principal objetivo gerenciar projetos e facilitar a colaborao entre os membros de um time. Ophp-Collab oferece um recurso onde o projeto pode ser gerenciado sob oponto de vista do time do projeto (gerenciando e exibindo todas asinformaes especficas do projeto) ou do cliente (oferecendo apenasinformaes relevantes ao cliente e dados para o acompanhamento dasatividades). Entre as diversas funcionalidades oferecidas pelo php-collab,devemos destacar as seguintes:

    Pode ser executado em qualquer plataforma que suportarPHP/Apache/Mysql (Windows, Linux, Mac, Solaris, AS400/i5, etc);

    Permite a criao de duas vises do projeto: viso do time e viso docliente;

    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;

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

    50

    http://www.php-collab.org/http://www.php-collab.org/
  • 7/30/2019 Automa Teste

    51/185

    Instalando e configurando

    Para instalar o php-collab, voc dever seguir os seguintes passos (a ttulo deexemplo estamos sugerindo a utilizao do XAMMP a fim de satisfazer ossoftwares 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:\xampp-

    win32-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 dodatabase criado no passo 4. Preencha os campos login com 'root' e ocampo password com a senha configurada no passo 3. Preencha ocampo Admin Password com o password que voc quiser atribuir aoadministrador.

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

    Caso voc prefira utilizar esta ferramenta com todos os textos traduzidospara 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.

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

    51

    http://www.apachefriends.org/en/xampp.htmlhttp://www.apachefriends.org/pt_br/faq-xampp-windows.htmlhttp://www.apachefriends.org/pt_br/faq-xampp-windows.htmlhttp://www.apachefriends.org/en/xampp.html
  • 7/30/2019 Automa Teste

    52/185

    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 eentrar na pgina principal do php-collab. Esta pgina exibe todos os projetos,tarefas, discusses e notas que estiverem associadas ao seu usurio, comopode ser visto na Figura 34.

    Figura 34: Pgina principal do php-collab

    52

  • 7/30/2019 Automa Teste

    53/185

    Uma vez dentro da pgina principal, voc poder criar um novo projeto pormeio do cone Add do menu Projects. Durante a criao do projeto, vocdever informar o nome do projeto, prioridade, status, entre outrasinformaes, como pode ser observado na Figura 35. O campo EnablePhases habilita a organizao do projeto em fases. Dessa forma, cada tarefa

    cadastrada dever ser associada a uma fase distinta do projeto. O campoClient Organization habilita a criao e publicao de Websites para ocliente, como veremos mais adiante.

    Figura 35: Criando um novo projeto

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

    53

  • 7/30/2019 Automa Teste

    54/185

    entre outras informaes, como pode ser visto no exemplo apresentado naFigura 36.

    Figura 36: Visualizando e alterando um projeto

    54

  • 7/30/2019 Automa Teste

    55/185

    Adicionando tarefas

    Para adicionar uma tarefa, voc dever entrar na pgina do projeto eselecionar a fase na qual a tarefa ser associada. Uma vez dentro da pginada fase selecionada, voc dever ir para a seo Tasks e ento clicar no

    cone Add. Durante o cadastramento da tarefa, voc dever informar onome 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

  • 7/30/2019 Automa Teste

    56/185

    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 podeser visto no exemplo apresentado na Figura 38.

    Figura 38: Calendrio compartilhado do projeto

    56

  • 7/30/2019 Automa Teste

    57/185

    Listas de discusses

    A lista de discusso do php-collab oferece um canal comum e integrado paratodos os membros do time. Para criar um tpico, voc dever entrar napgina do projeto. Uma vez dentro desta pgina, voc dever ir para a seo

    Discussions e ento clicar no cone Add, conforme o exemplo apresentadona 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 otpico seja fechado pelo seu criador, como pode ser observado na Figura 40.

    57

  • 7/30/2019 Automa Teste

    58/185

    Figura 40: Postando tpicos na lista de discusso

    58

  • 7/30/2019 Automa Teste

    59/185

    Adicionando arquivos ao projeto

    O php-collab tambm permite que arquivos sejam adicionados e associados aum projeto. Para adicionar um arquivo, voc dever entrar na pgina doprojeto. Uma vez dentro desta pgina, voc dever ir para a seo Linked

    Content e ento clicar no cone Add, conforme o exemplo apresentado naFigura 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 serobservado na Figura 42.

    59

  • 7/30/2019 Automa Teste

    60/185

    Figura 42: Controle de verses e status dos arquivos

    60

  • 7/30/2019 Automa Teste

    61/185

    Bookmarks compartilhados

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

    Figura 43: Adicionando bookmarks compartilhados

    61

  • 7/30/2019 Automa Teste

    62/185

    Adicionando clientes

    To logo o projeto seja criado voc poder adicionar clientes e associ-los aoprojeto. Para tal tarefa, voc dever clicar no menu Clients e ento clicar nocone Add. A pgina Add Client Organization dever ser exibida conforme

    o exemplo apresentado na Figura 44. Nesta pgina, voc dever informar onome 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 tambmpoder criar o site do projeto (sob o ponto de vista do cliente). Para realizartal tarefa, voc dever clicar no link , como pode ser observadono exemplo exibido na Figura 45.

    62

  • 7/30/2019 Automa Teste

    63/185

    Figura 45: Visualizando informaes dos clientes

    Assim que voc realizar esta operao, a pgina Create Project Site deverser exibida, conforme o exemplo apresentado na Figura 46. Nesta pgina,voc dever clicar no boto Create para criar definitivamente o site doprojeto.

    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 toprojects site localizado no topo direito da pgina principal do php-collab.

    Figura 46: Criando o site do projeto

    63

  • 7/30/2019 Automa Teste

    64/185

    No site do projeto, o cliente poder visualizar as tarefas existentes, osdocumentos 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 partedos menus do php-collab).

    Figura 47: Site do projeto

    64

  • 7/30/2019 Automa Teste

    65/185

    Requisies de suporte

    O cliente, por meio do site do projeto, tambm poder realizar requisies desuporte. Basicamente, o php-collab fornece um mecanismo simples de gestode 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, elaspodero ser visualizadas e gerenciadas por meio da seo Supportlocalizada na pgina do projeto, como pode ser visto na Figura 49.

    Figura 49: Gerenciando requisies de suporte

    65

  • 7/30/2019 Automa Teste

    66/185

    Relatrios

    O php-collab fornece tambm um recurso para a gerao de relatrios. Pormeio desse recurso, voc poder filtrar e listar as tarefas com base noprojeto, cliente, prioridade, data de finalizao entre outros filtros, como

    pode ser visto no exemplo apresentado na Figura 50. Adicionalmente, vocpoder salvar os filtros criados para que o relatrio possa ser executadoposteriormente.

    Figura 50: Relatrios

    66

  • 7/30/2019 Automa Teste

    67/185

    Captulo 4 Automao de testesfuncionais e de aceitao

    Nos ltimos tempos, a automao de testes tem se tornado uma atividadevital em projetos de teste de software. A maturidade das ferramentas e avasta quantidade de opes comerciais e Open Source so algumas dasrazes motivadoras para essa mudana de enfoque. Somado a isto, apromessa de testes de regresso repetitveis com baixo custo e o aumento dacobertura dos testes, reforam esse sbito interesse na automao de testes.

    Aplicaes cada vez mais complexas e oramentos curtssimos tornam asferramentas Open Source mais atraentes no mar de opes existentes. Natabela 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

    http://www.openqa.org/selenium/http://www.marathontesting.com/marathon/http://www.soapui.org/http://www.soapui.org/http://www.marathontesting.com/marathon/http://www.openqa.org/selenium/
  • 7/30/2019 Automa Teste

    68/185

    Selenium

    O Selenium15 uma ferramenta Open Source usada para a criao de testesde regresso automatizados para aplicaes WEB. O Selenium foi escritoutilizando Java Script e DHTML. Em funo disso, os testes rodamdiretamente a partir do navegador. Na realidade, em virtude destacaracterstica do Selenium, os testes podem rodar virtualmente em qualquernavegador que suporte Java Script (Internet Explorer, Firefox, Opera, Safari,Konqueror, etc).

    Basicamente, os testes do Selenium so escritos em tabelas HTML. Nestastabelas, voc informar as operaes ou asseres de um teste e os seusrespectivos argumentos. O Selenium responsvel por interpretar oscomandos 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 WEBServer que a aplicao WEB estiver sendo executada. Os testes soescritos previamente em tabelas HTML e o TestRunner (Gerenciadorda execuo dos testes) responsvel pela execuo dos testes.

    Selenium RC (Remote Control): Neste modo os testes so dirigidos poruma das linguagens suportadas pelo Selenium (Ruby16, Python, etc).

    15 http://www.openqa.org/selenium/ (os exemplos deste livro so apresentados com averso 0.8.2)16http://pt.wikipedia.org/wiki/Ruby_(linguagem_de_programao)

    68

    http://www.openqa.org/selenium/http://pt.wikipedia.org/wiki/Ruby_(linguagem_de_programa%C3%A7%C3%A3o)http://pt.wikipedia.org/wiki/Ruby_(linguagem_de_programa%C3%A7%C3%A3o)http://www.openqa.org/selenium/
  • 7/30/2019 Automa Teste

    69/185

    Selenium Core

    Conforme mencionado anteriormente, neste modo chamado de SeleniumCore, os testes so executados a partir do WEB Server em que a aplicaoWEB estiver sendo executada. Para que o Selenium Core funcione

    corretamente, voc dever habilitar o acesso de leitura e escrita nosdiretrios onde ele for instalado.

    Figura 51: TestRunner do Selenium Core

    Para instalar o Selenium Core, voc dever fazer o download17 a partir do sitedo Selenium. Uma vez feito o download, voc dever descompactar osarquivos 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 daabertura da pgina TestRunner.html. O TestRunner a pgina que gerenciaa execuo dos testes e exibe o relatrio de progresso da execuo.Normalmente esta pgina est localizada sob o diretrio core, como podeser observado no exemplo apresentado na Figura 51.

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

    69

    http://www.openqa.org/selenium-corehttp://www.openqa.org/selenium-core
  • 7/30/2019 Automa Teste

    70/185

    A pgina do TestRunner dividida em quatro diferentes reas:

    Test Suite: Nesta rea voc dever escolher a Test Suite que serexecutada pelo Selenium, assim como selecionar um teste da lista detestes disponveis.

    Current Test: Nesta rea voc poder visualizar o teste selecionado ouo teste que estiver sendo executado.

    Control Panel: Nesta rea voc poder gerenciar a execuo dos testes(rodar apenas os testes selecionados, diminuir a velocidade deexecuo dos testes, executar os testes passo a passo, ver o log deexecuo e o resultado da execuo dos testes).

    AUT: Nesta rea localizada na parte inferior da pgina, voc visualizara aplicao em teste durante a execuo dos testes. Voc tambmpoder configurar o Selenium para exibir a aplicao em teste em uma

    janela separada por meio da opo AUT in separate window ou peloparmetro "multiWindow=true" da pgina TestRunner.html. Noentanto, o Firefox no suporta nativamente o multi-window mode.Para resolver este problema, voc dever baixar o add-onreadyState.xpi18.

    importante lembrar que voc dever desabilitar os bloqueadores de pop-up,gerenciadores de senhas e recursos semelhantes do navegador antes daexecuo dos testes automatizados, para garantir que os testes no falhem

    ou travem em virtude de algum desses recursos oferecidos pela maioria dosnavegadores.

    Naturalmente, para executar os testes por meio do Selenium Core, vocdever ter criado previamente os casos de testes para a sua aplicao WEB.Conforme mencionamos anteriormente, os testes so escritos em tabelasHTML. Nestas tabelas, voc informar as operaes ou asseres de um testee 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 duasrestantes so usadas para os argumentos. Cabe lembrar que nem todas asoperaes requerem dois argumentos, como pode ser visto no exemploapresentado na Figura 52.

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

    70

  • 7/30/2019 Automa Teste

    71/185

    Figura 52: Caso de teste escrito em Selens

    Cabe ressaltar que as linhas com menos de trs colunas seroautomaticamente ignoradas pelo Selenium. Neste caso, voc poder utiliz-las para comentrios ou para o ttulo do caso de teste. Por questesestticas, voc poder usar a tag HTML &nbsp para fazer as clulas databela ficarem esteticamente melhores, ao invs de apenas exibir um espaovazio.

    De forma similar, os Test Sutes tambm so representados em tabelasHTML. Cada Test Suite referencia um ou mais casos de teste. No entanto, ocdigo HTML usado para o Test Suite, tem uma pequena particularidade: a

    tag HTML target deve sempre referenciar o frame testFrame para que oscasos de teste sejam adequadamente exibidos na rea Test Sute doTestRunner, conforme discutido anteriormente. Observe o exemploapresentado na Figura 53:

    Figura 53: Cdigo HTML da Test Suite

    71

  • 7/30/2019 Automa Teste

    72/185

    De um ponto de vista genrico, as operaes suportadas pelo Selens sodivididas em trs grupos distintos:

    Actions: Representam as operaes realizadas pelo usurio durante autilizao da aplicao WEB. A maioria das Actions representam aes

    do tipo (clicar em determinado link ou boto, selecionar determinadaopo e assim por diante). Se a execuo de uma Action falhar, ostatus do teste modificado para Failed e o teste imediatamenteparalisado. Adicionalmente, voc poder adicionar o sufixo AndWaitpara a maioria das Actions. Este sufixo informa ao Selenium que aao gerou uma requisio ao servidor e a execuo do teste precisaesperar que a pgina seja recarregada.

    Accessors: Executa uma assero (compara o estado ou propriedadede um objeto da pgina contra um valor esperado) e armazena oresultado numa varivel. O resultado negativo de uma Accessor noparalisa a execuo do teste, mas no entanto, a falha exibida noresultado dos testes.

    Assertions: Executa uma assero (compara o estado ou propriedadede um objeto da pgina contra um valor esperado). No entanto, a

    Assertion no armazena o resultado numa varivel. O resultadonegativo de uma Assertion no paralisa a execuo do teste, mas noentanto, 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 inteiropoderia ser escrito para descrever e mostrar exemplos prticos de todas asoperaes existentes. Neste caso, o autor sugere que voc leia o ReferenceGuide19 do Selens no site do Selenium.

    Por outro lado, voc no precisa decorar todas as operaes suportadas peloSelens. Por meio de um ambiente grfico integrado chamado Selenium IDE,voc poder gravar e reproduzir os testes sem escrever uma nica operaoem Selens, como veremos mais adiante.

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

    72

    http://release.openqa.org/selenium-core/nightly/reference.htmlhttp://release.openqa.org/selenium-core/nightly/reference.html
  • 7/30/2019 Automa Teste

    73/185

    Selenium IDE

    O Selenium IDE20 um ambiente grfico integrado ao Firefox capaz degravar e reproduzir os testes do Selenium. O Selenium IDE captura e gravaas suas aes no Firefox. Essas aes so convertidas para o Selens

    automaticamente para que voc possa salvar o teste, execut-lo e depur-loindividualmente ou em conjunto com outros testes numa Test Suite.

    O Selenium IDE uma extenso do Firefox, como pode ser visto na Figura54. Uma vez instalado, voc poder executar o Selenium IDE acessando omenu Tools>Selenium IDE, de acordo com o exemplo apresentado naFigura 55.

    Figura 54: Instalando o Selenium IDE

    Uma vez aberta a janela do Selenium IDE, qualquer ao que voc executarnas pginas do navegador ser convertida para uma operao em Selens naaba Table. No entanto, o Selenium IDE no se limita apenas a reproduzir oscliques ou preenchimento dos campos realizados durante a navegao. Voctambm poder selecionar qualquer uma das operaes suportadas peloSelens conforme a sua necessidade por meio do campo Command. Vale apena destacar que, conforme o comando selecionado, uma descriocompleta da sua utilizao e argumentos requeridos apresentada na parte

    inferior da janela do Selenium IDE.

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

    73

    http://www.openqa.org/selenium-ide/http://www.openqa.org/selenium-ide/
  • 7/30/2019 Automa Teste

    74/185

    Figura 55: Selenium IDE

    Adicionalmente, o Selenium IDE adiciona novos menus de contexto noFirefox. Neste caso, durante gravao da navegao, voc poder selecionarqualquer objeto da pgina e adicionar uma operao ou assero de acordocom o contexto do objeto selecionado, como pode ser visto no exemploapresentado na Figura 56.

    74

  • 7/30/2019 Automa Teste

    75/185

    Figura 56: Operaes integradas aos menus do Firefox

    Por fim, assim que voc finalizar gravao da navegao da sua aplicaoWEB, todos os passos executados sero convertidos automaticamente emSelens e estaro disponveis na aba Table. O teste poder ser salvo noformato HTML para que seja posteriormente executado.

    Voc tambm poder executar, pausar ou depurar o teste por meio doSelenium IDE. Adicionalmente, o Selenium IDE empacota internamente pordefault o Selenium Core. Neste caso, voc tambm poder executar o testepor meio do TestRunner do Selenium Core, como pode ser visto na Figura 57.

    75

  • 7/30/2019 Automa Teste

    76/185

    Figura 57: Executando os Testes no Selenium Core

    Todo navegador, por default, oferece mecanismos de segurana para evitarataques do tipo XSS cross-site scripting. Toda extenso do Firefox temacesso ao protocolo Chrome (especfico deste navegador). Esse protocolooferece um meio alternativo para burlar a segurana dos navegadores paraevitar os ataques do tipo XSS.

    No exemplo da Figura 57, o Selenium Core no precisou ser instalado noWEB Server em que a aplicao WEB estava sendo executada em virtudedessa caracterstica do Firefox.

    Dessa forma, voc poder executar as suas Teste Sutes a partir do Firefoxsem a necessidade de instalar o Selenium Core no mesmo WEB Server ondea aplicao WEB estiver sendo executada. Para realizar tal tarefa, vocdever utilizar a seguinte URL para executar o TestRunner a partir do Firefox:

    76

  • 7/30/2019 Automa Teste

    77/185

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

    Por ltimo, devemos destacar que voc tambm poder testar aplicaesWEB baseadas em AJAX (Asynchronous JavaScript and XML) utilizando oSelenium IDE. Sem discutir em detalhes, uma pgina AJAX capaz derealizar diversas operaes sem, no entanto, precisar buscar ou trocar muitasinformaes com o WEB Server.

    Neste caso, normalmente a pgina no recarregada, garantindo assimmaior velocidade nas operaes. No entanto, neste cenrio, operaes emSelens do tipo clickAndWait no funcionaro corretamente em virtude deque a pgina AJAX no ser recarregada.

    Para solucionar esta limitao e viabilizar os testes de pginas AJAX, vocdever utilizar, por exemplo, a operao waitForValue que aguardar amudana do valor definido como argumento, ao invs de esperar a pginarecarregar.

    Existem muitas pginas21 na Internet apresentando solues e exemplos paratestes de pginas AJAX utilizando o Selenium. Vale a pena conferir tambm

    os exemplos apresentados no site do Selenium.

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

    77

    http://www.infoq.com/articles/testing-ajax-seleniumhttp://www.infoq.com/articles/testing-ajax-selenium
  • 7/30/2019 Automa Teste

    78/185

    Selenium RC (Remote Control)

    No modo chamado de Selenium RC22 (Remote Control), os testes soexecutados por meio de uma das linguagens de programao suportadaspelo Selenium. O Selenium RC a melhor soluo quando os testes escritos

    em Selens nas tabelas HTML no forem suficientes para as suasnecessidades.

    Se voc precisar de uma lgica mais complexa de controle, fluxos, acesso abanco de dados ou leitura de informaes externas, sem dvida, o SeleniumRC 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 oscomandos em Selens. J existem interfaces escritas para as principaislinguagens de programao da atualidade23 (Java, .NET, Perl, Python, andRuby).

    Durante a execuo do teste na linguagem escolhida por voc, os comandosexecutados por meio dessas interfaces se comunicam com o Selenium Server,

    que a outra parte da arquitetura do Selenium RC. O Selenium Server, deacordo 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

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

    78

    http://www.openqa.org/selenium-rc/http://www.openqa.org/selenium-rc/tutorial.htmlhttp://www.openqa.org/selenium-rc/tutorial.htmlhttp://www.openqa.org/selenium-rc/
  • 7/30/2019 Automa Teste

    79/185

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

    Figura 59: Selenium Server no modo interativo

    Alm desse modo de execuo convencional, o Selenium Server oferecetambm um modo interativo. Neste modo, voc poder interagir diretamentecom Selenium Server por meio da digitao de comandos (Selens) no seuprompt.

    Para inicializar o Selenium Server em modo interativo, execute o seguintecomando java -jar selenium-server.jar -interactive, como pode ser visto noexemplo apresentado na Figura 59 (o output dos comandos forampropositalmente omitidos).

    Adicionalmente, voc poder utilizar o Selenium IDE para criar os testesusados pelo Selenium RC. O Selenium IDE tem um recurso que permite aexportao dos testes em Selens para a maioria das linguagens suportadaspelo Selenium RC, como pode ser observado na Figura 60.

    79

  • 7/30/2019 Automa Teste

    80/185

    Figura 60: Exportando os testes para outras linguagens

    Como resultado do processo de exportao, obtemos o cdigo fonte nalinguagem alvo escolhida por voc. No exemplo apresentado na Figura 61,voc poder ver o resultado da exportao para a linguagem Ruby.

    80

  • 7/30/2019 Automa Teste

    81/185

    Figura 61: Trecho de um teste exportada para Ruby

    Para confirmar se o teste foi exportado com sucesso, execute o SeleniumServer por meio do comando java jar selenium-server.jar. Em outra janelado prompt execute o seu teste, como pode ser visto no exemplo apresentadona Figura 62.

    81

  • 7/30/2019 Automa Teste

    82/185

    Figura 62: Executando um teste usando o Selenium RC

    82

  • 7/30/2019 Automa Teste

    83/185

    Marathon

    O Marathon24 uma ferramenta Open Source de testes de regressoautomatizados para aplicaes Java desenvolvidas com o toolkit grficoSwing25. Utilizando o Marathon, voc poder criar testes automatizados pormeio da captura das suas aes (cliques do mouse, digitao, etc). Estasaes so convertidas em scripts Jython26 (implementao Java da linguagemde 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 pr-condies de execuo dos testes, assim como, a posterior limpezados recursos criados);

    Component Resolver e Custom Component Resolver (recurso utilizadopara detectar todos os componentes do Swing (botes, campos deedio, menus, etc), assim como os seus mtodos e propriedades);

    24 http://www.marathontesting.com/ (os exemplos deste livro so apresentados com averso 1.0.3)25http://en.wikipedia.org/wiki/Swing_(Java)26http://www.jython.org/Project/index.html

    83

    http://www.marathontesting.com/http://en.wikipedia.org/wiki/Swing_(Javahttp://www.jython.org/Project/index.htmlhttp://www.jython.org/Project/index.htmlhttp://en.wikipedia.org/wiki/Swing_(Javahttp://www.marathontesting.com/
  • 7/30/2019 Automa Teste

    84/185

    Criando um novo projeto

    Assim que o Marathon for instalado, a sua primeira ao ser criar um novoprojeto. 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 servisto na Figura 63. importante lembrar que durante a criao do projeto,voc dever obrigatoriamente informar corretamente a Main Class daaplicao Java que ser testada, assim como o seu Class Path27. Casocontrrio, o Marathon no ser capaz de inicializar a aplicao Java.

    Figura 63: Criao de um novo projeto

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

    84

    http://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o)http://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o)
  • 7/30/2019 Automa Teste

    85/185

    To logo o projeto seja criado, a janela principal do Marathon exibida. Estajanela oferece um ambiente de desenvolvimento integrado onde voc podercapturar, depurar e executar os testes automatizados, como pode serobservado na Figura 64.

    Figura 64: Janela principal do Marathon

    Os projetos do Marathon so compostos por trs elementos distintos (todosesses elementos sero discutidos mais adiante):

    TestCases: Scripts em Jython que representam as aes (cliques domouse e digitao) e asseres realizadas por voc durante a captura(gravao);

    Modules: Scripts em Jython usados por outros testes (mdulosreutilizveis). Por meio dos Modules, voc poder aumentar areutilizao e facilitar a manuteno no futuro.

    Fixtures: Scripts em Jython cuja funo criar as pr-condies deexecuo dos testes, assim como, a posterior limpeza dos recursoscriados.

    85

  • 7/30/2019 Automa Teste

    86/185

    Por fim, para efeitos didticos, os exemplos apresentados nas prximassees sero realizados utilizando um editor simples de UML desenvolvido emJava chamado Violet28, como pode ser visto no exemplo apresentado naFigura 65.

    Figura 65: Violet UML Editor

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

    86

    http://www.horstmann.com/violet/http://www.horstmann.com/violet/
  • 7/30/2019 Automa Teste

    87/185

    Criando um script de teste

    Para criar um novo script de teste, voc dever clicar no menuFile>New>Test Case. A janela Untitled dever ser exibida no editor. Estajanela representa um script de teste em branco.

    A partir deste ponto, poderemos comear a capturar (ou gravar) o script deteste automatizado, por meio do boto Record localizado na barra deferramentas do Marathon.

    To logo voc comece a captura, o Marathon abrir automaticamente aaplicao 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 capturadase traduzidas para comandos Jython. Adicionalmente, esta janela forneceopes para pausar, retornar da pausa, parar a captura e a adio demdulos reutilizveis (os mdulos reutilizveis sero discutidos mais adiante).

    importante ressaltar que o Marathon utiliza um recurso chamadoComponent Resolver para detectar todos os componentes do Swing

    (botes, campos de edio, menus, etc), assim como os seus mtodos epropriedades. por meio desse recurso que o Marathon capaz de mapearos componentes da aplicao e converter as suas aes em comandosJython.

    No entanto, caso a sua aplicao tenha algum componente personalizado,que no faz parte da biblioteca padro do Swing, voc poder criar um

    87

  • 7/30/2019 Automa Teste

    88/185

    Custom Component Resolver para que o Marathon possa detectar o seucomponente.

    Ao final da gravao, o Marathon fecha automaticamente a aplicao emteste e adiciona ao script de teste todas aes capturadas (traduzidas para

    comandos Jython). No nosso exemplo, foi criado um script de teste paratestar a criao de um diagrama de caso de uso, como pode ser obse