Você está na página 1de 135

Automao de Testes

Automao de Testes

Automao de Testes

Todos os direitos reservados para Alfamdia LTDA.

AVISO DE RESPONSABILIDADE As informaes contidas neste material de treinamento so distribudas NO ESTADO EM QUE SE ENCONTRAM, sem qualquer garantia, expressa ou implcita. Embora todas as precaues tenham sido tomadas na preparao deste material, a Alfamdia LTDA. no tem qualquer responsabilidade sobre qualquer pessoa ou entidade com respeito responsabilidade, perda ou danos causados, ou alegadamente causados, direta ou indiretamente, pelas instrues contidas neste material ou pelo software de computador e produtos de hardware aqui descritos.

11/ 2012 - Verso 1.0

Alfamdia LTDA www.alfamidia.com.br

Automao de Testes
UNIDADE 1 OBJETIVOS E GANHOS COM A APLICAO DE AUTOMAO NOS TESTES .......................... 6

1.1 O CICLO DE VIDA DOS TESTES AUTOMATIZADOS ............................................................................. 6 1.1.1 Objetivos dos testes automatizados ........................................................................................................ 6 1.2 BENEFCIOS DA AUTOMAO DOS TESTES....................................................................................... 6 1.2.1 ROI e custos ............................................................................................................................................ 7 UNIDADE 2 TIPOS DE AUTOMAO ................................................................................................................... 9

2.1 CAIXA BRANCA ............................................................................................................................. 10 2.1.1 Unitrios ............................................................................................................................................... 10 2.2 CAIXA PRETA ................................................................................................................................ 10 2.2.1 Funcional.............................................................................................................................................. 10 2.2.2 Performance ......................................................................................................................................... 10 2.3 GESTO ........................................................................................................................................ 10 2.3.1 Gesto de defeitos ................................................................................................................................. 10 2.3.2 Gesto de testes .................................................................................................................................... 11 2.3.3 Massa de dados .................................................................................................................................... 11 UNIDADE 3 FERRAMENTAS MAIS UTILIZADAS NO MERCADO DE AUTOMAO ...................................... 12

3.1 FERRAMENTAS PAGAS .................................................................................................................. 12 3.1.1 IBM ....................................................................................................................................................... 12 3.1.2 HP ......................................................................................................................................................... 13 3.1.3 Automated QA ...................................................................................................................................... 13 3.2 FERRAMENTAS FREE ..................................................................................................................... 13 UNIDADE 4 CONHECENDO O AMBIENTE E INSTALANDO FERRAMENTAS ................................................. 15

4.1 AMBIENTE DE TESTES ................................................................................................................... 15 4.1.1 Infraestrutura necessria ..................................................................................................................... 15 4.1.2 Massa de dados .................................................................................................................................... 16 4.2 CONFIGURANDO E INSTALANDO AS FERRAMENTAS ....................................................................... 17 4.2.1 E ento vamos configurar e instalar o WampServer? .......................................................................... 17 4.2.2 Colocando as aplicaes para funcionar ............................................................................................. 18 4.2.3 Executando as aplicaes ..................................................................................................................... 25 UNIDADE 5 GERENCIAMENTO DE CASOS DE TESTE E EXECUO COM TESTLINK ................................ 26

5.1 GESTO DE TESTES COM TESTLINK .............................................................................................. 26 5.1.1 Objetivos ............................................................................................................................................... 26 5.1.2 Instalando a ferramenta ....................................................................................................................... 27 5.1.3 Estrutura geral ..................................................................................................................................... 29 5.1.4 Definies Bsicas ................................................................................................................................ 29 5.1.5 Exemplo simples de fluxo de trabalho no TestLink; ............................................................................. 30 5.1.6 Algumas configuraes antes de iniciar ............................................................................................... 32 5.2 PROJETO DE TESTE ........................................................................................................................ 32 5.2.1 Editando um projeto ............................................................................................................................. 34 5.3 INVENTRIO .................................................................................................................................. 35 5.4 ESPECIFICAES DE TESTE ........................................................................................................... 35 5.5 ADICIONANDO REQUISITOS ........................................................................................................... 36 5.5.1 Editando Especificao de Requisitos .................................................................................................. 37 5.5.2 Adicionando Casos de Teste ................................................................................................................. 39 5.5.3 Associando Casos de Teste aos Requisitos ........................................................................................... 44 5.5.4 Associando Palavras Chaves aos Casos de Testes ............................................................................... 45 5.5.5 Criao e excluso de Planos de Teste ................................................................................................ 46 5.5.6 Criando Baselines / Releases................................................................................................................ 46 5.5.7 Adicionando casos de teste ao Plano de Teste ..................................................................................... 47 5.5.8 Atribuio de execuo de teste ........................................................................................................... 49 5.6 PLATAFORMAS .............................................................................................................................. 49 5.7 PRIORIZANDO TESTES ................................................................................................................... 50 5.8 MARCOS ....................................................................................................................................... 51

Automao de Testes
5.8.1 Executando os Casos de Teste .............................................................................................................. 51 FILTRAGEM DE CASOS DE TESTE ............................................................................................................ 52 RVORE ................................................................................................................................................. 52 STATUS DO TESTE ................................................................................................................................... 53 INSERINDO RESULTADOS DO TESTE ........................................................................................................ 53 5.8.2 Relatrios de teste e mtricas ............................................................................................................... 53 5.8.3 Mtricas gerais de Planos de Testes..................................................................................................... 53 5.8.4 Resultados por palavra-chave .............................................................................................................. 54 5.8.5 Resultados por Dono ............................................................................................................................ 54 5.8.6 Viso geral do status da Baseline ......................................................................................................... 54 5.8.7 Mtricas da Query ................................................................................................................................ 54 5.8.8 Relatrios de casos de testes bloqueados, com falha e no executados ............................................... 56 5.8.9 Relatrio de Testes ............................................................................................................................... 56 5.8.10 Grficos ................................................................................................................................................ 56 5.8.11 Total de Bugs para cada caso de teste ................................................................................................. 57 5.8.12 Como adicionar um novo relatrio ...................................................................................................... 57 5.8.13 Administrao de usurios ................................................................................................................... 57 5.8.14 Campos personalizados ........................................................................................................................ 59 5.8.15 Importao de dados ............................................................................................................................ 60 5.8.16 Importao e exportao de projetos de testes ..................................................................................... 61 5.8.17 Importao e exportao de testes de Suites ........................................................................................ 62 5.8.18 Just one Caso de Teste.......................................................................................................................... 64 5.8.19 Todos os casos de testes no Suite ......................................................................................................... 64 5.8.20 Importao/Exportao de requisitos de software ............................................................................... 65 5.8.21 Importando casos de testes para o Excel via XML ............................................................................... 65 5.8.22 Importando arquivo XML no TestLink ................................................................................................. 67 UNIDADE 6 GERENCIANDO DEFEITOS COM MANTIS BUG TRACKER ......................................................... 68

6.1 GESTO DE DEFEITOS COM MANTIS BUG TRACKER ...................................................................... 68 6.1.1 Objetivos ............................................................................................................................................... 68 6.1.2 Instalao da ferramenta ...................................................................................................................... 68 6.1.3 Login no Mantis .................................................................................................................................... 69 6.1.4 Pgina inicial ....................................................................................................................................... 70 6.1.5 Criando um novo projeto ...................................................................................................................... 70 6.1.6 Criando e modificando um bug ............................................................................................................ 72 6.1.7 Meus Bugs ............................................................................................................................................ 75 6.1.8 Sumrio dos Bugs ................................................................................................................................. 76 6.1.9 News ..................................................................................................................................................... 77 6.1.10 Change Log .......................................................................................................................................... 78 6.1.11 Documentao do projeto..................................................................................................................... 79 6.1.12 Configurao do Mantis ....................................................................................................................... 80 UNIDADE 7 TESTE DE PERFORMANCE, CARGA E STRESS COM JMETER ................................................. 81

7.1 O QUE O JMETER? ...................................................................................................................... 81 7.2 INSTALANDO O JMETER ................................................................................................................ 83 7.3 COMPONENTES DO JMETER .......................................................................................................... 84 7.3.1 Elementos Bsicos ................................................................................................................................ 84 7.3.2 Sampler ................................................................................................................................................. 87 HTTP REQUEST ..................................................................................................................................... 87 7.3.3 Logic Controllers .................................................................................................................................. 88 SIMPLE CONTROLLER ............................................................................................................................. 88 LOOP CONTROLLER ................................................................................................................................ 89 ONCE ONLY CONTROLLER ..................................................................................................................... 90 INTERLEAVE CONTROLLER ..................................................................................................................... 90 IF CONTROLLER ...................................................................................................................................... 91 7.3.4 Listeners ............................................................................................................................................... 91 VIEW RESULTS TREE .............................................................................................................................. 91 ASSERTION RESULTS .............................................................................................................................. 92

Automao de Testes
GRAPH RESULTS..................................................................................................................................... 93 7.3.5 Configurations Elements ...................................................................................................................... 93 HTTP COOKIE MANAGER ...................................................................................................................... 94 HTTP REQUEST DEFAULTS .................................................................................................................... 94 7.3.6 Assertions ............................................................................................................................................. 95 RESPONSE ASSERTION ............................................................................................................................ 95 DURATION ASSERTION ........................................................................................................................... 96 7.3.7 Timers ................................................................................................................................................... 96 7.3.8 Pre-Processors ..................................................................................................................................... 97 7.3.9 Post-Processors .................................................................................................................................... 98 7.4 CRIANDO TESTES DE DESEMPENHO E ESTRESSE AUTOMATIZADOS ................................................ 98 UNIDADE 8 TESTE FUNCIONAL COM BADBOY ............................................................................................. 104

8.1 COMO INSTALAR O BADBOY? ..................................................................................................... 104 8.2 CONHECENDO O BADBOY ........................................................................................................... 110 8.2.1 Gravando ............................................................................................................................................ 110 8.2.2 Criando testes ..................................................................................................................................... 111 8.2.3 rvore do script .................................................................................................................................. 111 8.3 VAMOS GRAVAR NOSSO PRIMEIRO SCRIPT? ................................................................................. 113 8.4 AUTOMATIZANDO O SCRIPT ........................................................................................................ 118 8.4.1 Request Mode ..................................................................................................................................... 118 8.4.2 Navigation Mode ................................................................................................................................ 118 8.4.3 Navigations ......................................................................................................................................... 119 8.4.4 Gravando navegaes ........................................................................................................................ 119 8.4.5 Tipos de itens de navegao ............................................................................................................... 120 8.4.6 Referncias de navegao .................................................................................................................. 120 8.4.7 Propriedades de navegao ............................................................................................................... 121 8.4.8 Variveis ............................................................................................................................................. 122 8.4.9 Adicionando Variveis ....................................................................................................................... 123 8.4.10 Variveis de visualizao ................................................................................................................... 123 8.4.11 Editar Variveis .................................................................................................................................. 124 8.4.12 Usando variveis ................................................................................................................................ 124 8.4.13 Varivel lista de valor ........................................................................................................................ 124 8.4.14 Variveis de Incremento ..................................................................................................................... 124 8.4.15 Assertions/Asseres .......................................................................................................................... 125 8.4.16 Forma como as Asseres funcionam ................................................................................................ 125 8.4.17 Adicionando Asseres ....................................................................................................................... 125 8.4.18 Checks ................................................................................................................................................ 126 8.5 SALVANDO E ENTENDENDO O RESULTADO DO SCRIPT ................................................................. 126 8.5.1 Summary View .................................................................................................................................... 127 8.6 FERRAMENTAS ............................................................................................................................ 127 USANDO DATA SOURCES ..................................................................................................................... 127 ADICIONANDO DATA SOURCE .............................................................................................................. 129 8.7 BADBOY EM LINHA DE COMANDO ............................................................................................... 131 8.8 USANDO BADBOY COM AJAX .................................................................................................... 132 8.8.1 Entendendo as requisies Ajax ......................................................................................................... 132 8.8.2 Gravao de pginas AJAX no Request Mode ................................................................................... 132 8.8.3 Gravando pginas AJAX no Navigation Mode ................................................................................... 133 8.8.4 A reproduo de pginas AJAX no Navigation Mode ........................................................................ 133 8.9 USANDO O BADBOY COM JMETER .............................................................................................. 134 8.9.1 Limitaes........................................................................................................................................... 134

Automao de Testes

Unidade 1 Objetivos e ganhos com a aplicao de automao nos testes


1.1 O ciclo de vida dos testes automatizados
1.1.1 Objetivos dos testes automatizados
Com as mudanas que vem ocorrendo no mundo do desenvolvimento e novas prticas, os prazos esto ficando cada vez mais curtos. O software sendo novo gera muitos Planos de testes, Casos de testes e principalmente Bugs, e com isso precisa-se de um controle que muitas vezes o Excel j no nos atende. A entram algumas ferramentas que se bem utilizadas podem facilitar este controle e manuseio de tudo que gerado no ciclo de testes. As ferramentas nas quais devem facilitar nossas vidas so: ferramenta de BugTracker, ferramentas para gerenciar os planos e casos de testes, ferramentas para gerar mtricas e ferramentas para automatizar testes manuais. Alm do pouco tempo que cada vez mais encurta para a execuo dos testes, temos um agravante principalmente em softwares que j esto em produo e sofrem mudanas ao longo de sua vida. Certas vezes, uma alterao feita e por menor que ela seja so feitos testes de regresso conforme a necessidade. Uma atividade que foi criada em 5 horas pode se tornar em testes para 5 dias. Nestes casos a automao de tudo que foi feito at o momento pode ajudar e muito e principalmente automatizar os testes funcionais podem ser uma sacada de mestre. Se tudo for utilizado da melhor forma podemos ficar tranquilos em relao qualidade dos produtos a serem entregues, reduo de custo e tempo.

1.2 Benefcios da automao dos testes


Existem muitos benefcios ao automatizarmos os testes, abaixo seguem os principais: Reduo de custos

Como os testes manuais so feitos por pessoas e estas possuem custos, logo ao se reduzir o tempo de testes que estas pessoas executaro, estaremos reduzindo os custos em relao a elas nestas tarefas.

Automao de Testes

Reduo de tempo nos testes e nos resultados

As ferramentas de automao so muito mais rpidas na execuo, h cenrios que de vrios minutos podem ser executados automaticamente em segundos. Claro que dependendo da forma que so feitos, dependem do start de uma pessoa, mas depois apenas analisam os resultados que j foram exibidos pelas ferramentas. Reduo de erros humanos na execuo de testes manuais

Como a execuo feita automaticamente, isso evita elimina os riscos que as pessoas podem conforme os vcios, fazer. Seja no esquecimento de algum cenrio, seja na forma errada de execut-los. Isso no impede que um teste automatizado mal planejado possa apresentar erros de cenrios visto que quem cria uma pessoa. Maior cobertura nos testes e software mais seguro e confivel

Apesar de a criao de um script de testes ser mais demorado para escrever do que um cenrio, ganhamos em tempo de execuo. Quanto mais scripts forem criados, mais cobertura teremos aos testes. Consequentemente o software a ser entregue mais confivel. Execuo de testes em qualquer horrio e ininterruptos

Ao contrrio do profissional, o teste automatizado pode ser executado a qualquer momento, inclusive nas madrugadas e finais de semana se estiverem programados para isso. Enquanto os casos forem de sucesso o teste pode ser ininterrupto at que haja algum erro. Ficando assim o software sempre sendo testado. Execuo dos testes em diversas plataformas

Com o avano as ferramentas de teste esto cada vez mais suportando diferentes ambientes (Sistemas Operacionais e Browsers) o que facilita na replicao destes testes e garantindo maior abrangncia nas possibilidades.

1.2.1 ROI e custos


Automao de testes vista geralmente como uma maneira de reduzir os custos dos testes, aumentar a cobertura e a efetividade e diminuir as fases de testes. De certa forma isso est correto e de extrema importncia para se identificar uma empresa cujo controle de qualidade queira se tornar maduro. Entretanto deve-se lembrar, que o custo disso inicialmente no ser to reduzido e de que isso no elimina os testes manuais, os quais so cruciais para testar aplicaes de software principalmente em fase de iniciao. Automao de testes envolve maiores custos iniciais e deve ser levado em considerao como um investimento a longo prazo. Realizar um ROI para sua automao planejada
7

Automao de Testes pode entretanto lhe ajudar a entender bem logo no incio o retorno atual que voc ir obter dos seus investimentos e assim voc poder pesar aquele contra os benefcios que voc ir ganhar com a automao. O ROI nos auxilia a quantificar os custos do projeto de testes e indicado que seja feito desde seu incio, tanto com o tempo gasto no aprendizado das ferramentas quanto na execuo dos testes j automatizados. Necessitamos avaliar todas as informaes e comparar com os testes manuais para se chegar num resultado onde se possa justificar custos posteriores. O ROI pode ser calculado da seguinte forma, dividindo os benefcios da automao pelos custos de esforo para automatizar.

ROI
Geralmente o custo de automao so todos os envolvidos, direta e indiretamente neste processo como hardware, software (licenas), treinamentos, tempo de desenvolvimento de teste, etc. os benefcios sero visualizados por um determinado tempo, reduzindo os testes manuais, melhorando a capacidade de descoberta de defeitos e de ter a capacidade de ser executado 24hs/dia.

Automao de Testes

Unidade 2 Tipos de automao


Ferramentas de teste so para ser um apoio ao processo de testes, visando uma execuo mais rpida, mais barata ou at mesmo que execues que no sejam viveis manualmente possam ser executadas. Sabemos que a melhor utilizao dos testes mesclar os testes manuais com os automatizados. Podemos agrup-los em algumas categorias de ferramentas: De automao de testes de regresso; De gesto de defeitos; De teste de performance; Manuais; De rastreabilidade; De gesto de testes; De cobertura de testes.

Dentro destas categorias em que podemos aplicar os testes, exibida pela figura abaixo iremos apresentar as principais dentro o projeto de teste:

Planejamento

Execuo

Finalizao

Ferramentas de apoio

Automao de Testes

Gesto de defeitos

Gesto de testes

Automao de Testes

2.1 Caixa branca


2.1.1 Unitrios
Dentro da tcnica de caixa-branca sabemos que executamos os testes unitrios que tem por objetivo validar a estrutura interna e a lgica da aplicao desenvolvida (ou a ser). Sabemos tambm que a execuo deste tipo fica a cargo da equipe de desenvolvimento do software, pois esta equipe que possui os conhecimentos necessrios para tal.

2.2 Caixa preta


2.2.1 Funcional
A tcnica de teste funcional confronta todos os requisitos do sistema, a fim de tornar vlida toda a requisio do cliente. E que alm de validar os requisitos so aplicadas algumas tcnicas para provar o principal objetivo do teste de software: aprovar que a aplicao funciona.

2.2.2 Performance
Nos testes de performance submetemos nossa aplicao a um nmero conhecido de usurios sob utilizao padro de acordo com os requisitos, e que o sistema deve manter um desenvolvimento aceitvel sem que ocorram erros. claro que se no tivermos informaes relevantes para aplicarmos uma combinao das tcnicas de Carga e Stress para descobrir os limites da aplicao e assim determinar, basicamente, o nmero de usurios suportados sob determinado cenrio com um tempo de resposta adequado.

2.3 Gesto
2.3.1 Gesto de defeitos
A gesto de defeitos um dos itens de maior utilizao no processo de testes, pois nesse momento at o final do projeto que vamos arquivando (guardando) os defeitos e acompanhando para a soluo do mesmo. importante salientar que o envolvimento no somente da equipe de teste, mas tambm da equipe de desenvolvimento. A gesto de defeitos uma das ferramentas que

10

Automao de Testes auxiliam os testadores a acompanhar quais erros existem nas aplicaes e quem pode resolv-los.

2.3.2 Gesto de testes


na gesto de testes que efetuamos todo o planejamento de teste, elaboramos os documentos necessrios para os testes nos sistemas e coletamos as mtricas para que esta sirva como base para a tomada de deciso. A gesto tambm inclui o acompanhamento das atividades de testes e anlise de risco do projeto. (anlise sobre o que j foi efetuado no projeto).

2.3.3 Massa de dados


Sabemos que a gerao de massa de dados um item fundamental para o sucesso dos testes. Esta massa de dados pode ser gerada aleatoriamente, conforme a sua necessidade, mas importante lembrar que quem for criar a massa de dados, deve ter profundo conhecimento sobre os dados a serem inseridos na base de teste, para que a mesma em vez de facilitar nossa vida, no acabe prejudicando o trabalho dos testes.

11

Automao de Testes

Unidade 3 Ferramentas mais utilizadas no mercado de automao


O prximo passo adquirir ferramentas, e no necessariamente adquirir significa comprar, pois h muitas ferramentas Open Source (free). Caso nenhuma ferramenta seja satisfatria para seus tipos de softwares ou tipos de testes, sejam elas pagas ou free, pode-se tambm desenvolv-la. Como desenvolver pode ser muito custoso, as empresas adotam cada vez mais as ferramentas j disponveis no mercado. As ferramentas disponveis so variadas, e sua escolha depende do quanto as empresas esto dispostas a investir financeiramente ou em tempo.

3.1 Ferramentas Pagas


Conheceremos ferramentas das trs empresas lderes de mercado, sem entrar em mrito de valores:

3.1.1 IBM
A IBM uma gigante em ferramentas para automao, aqui vamos citar 3 das que podem ser utilizadas para testes: RationalFunctionalTester: uma soluo de teste funcional e de regresso automatizada para equipes de QA preocupadas com a qualidade de seus aplicativos Javabaseados na Web, Microsoft Visual Studio .NET, baseados em terminal, SAP, Siebel e Web 2.0. RationalPerformanceTester: uma soluo de teste de carregamento e desempenho para equipes preocupadas com a escalabilidade de seus aplicativos baseados na Web. RationalRobot: uma ferramenta de automao para equipes de QA para aplicativos de teste de cliente/servidor. Permite deteco de defeito, inclui etapas de teste e gerenciamento de teste, suporta diversas tecnologias de UI. Inclui gerenciamento de teste embutido, integra-se com as ferramentas do IBM RationalUnifiedProcess.

12

Automao de Testes

3.1.2 HP
Inicialmente quem possua as ferramentas para automao de testes da HP era a Mercury, por isso muitos dos nomes ainda podem estar associados a este nome. No entanto hoje fazem parte da HP. HP LoadRunner: a ferramenta considerada como a melhor no mercado para validao de desempenho. Ele evita problemas de desempenho, detectando gargalos antes de uma implantao ou atualizao de sistema. HP QuickTest Professional: tambm muito conhecido como QTP, uma ferramenta para automao de testes, utiliza o conceito de keyword-drive para facilitar a criao e manuteno dos testes.

3.1.3 Automated QA
uma empresa jovem no mercado, e focada em produtos e servios voltados ao desenvolvimento de projetos de garantia da qualidade de software. Suas ferramentas esto sendo fortes concorrentes das demais ferramentas devido seu baixo custo. TestComplete: oferece o mesmo conjunto de funcionalidades que os seus principais concorrentes. Possibilita criar testes unitrios, funcionais, regresso e performance.Por se tratar de uma ferramenta de baixo custo, hoje muitas empresas, inclusive as de grande porte, esto migrando ou adquirindo essa ferramenta, tendo em vista da facilidade em poder se trabalhar com ela. Um dos destaques o suporte nativo para a automao de sistema desenvolvidos em vrias tecnologias, tais como: .NET, Java, Visual Basic, Borland Delphi, WEB, PowerBuilder, FoxPro, entre outros. Alm disso, o TestComplete oferece recursos para a realizao de testes de desempenho para aplicaes WEB e testes funcionais de WEB Services.

3.2 Ferramentas Free


O mercado de ferramentas free vem ganhando cada vez mais espao, e o principal motivo o de no haver custo inicial com a aplicao. A maioria das ferramentas hoje possuem todas as funcionalidades de ferramentas pagas. Embora a maioria tambm seja mais complexa de ser utilizada, o mundo free possui cada vez mais pessoas utilizando estas ferramentas, e o suporte a cada uma delas colaborativo. Um ponto onde elas deixam a desejar que elas no possuem uma integrao entre as diversas ferramentas existentes no mercado, questo que as ferramentas pagas atacam com os chamados Quality Centers.

13

Automao de Testes Neste curso abordaremos ferramentas que possam ser implantadas com baixo custo dentro de cada empresa. O foco ser compreender o funcionamento bsico das ferramentas free mais utilizadas no meio da automao de teste.

14

Automao de Testes

Unidade 4 Conhecendo o ambiente e instalando ferramentas


4.1 Ambiente de testes
4.1.1 Infraestrutura necessria
O ambiente tem total importncia no projeto de teste, no sendo apenas hardware, mas tambm: Pessoal; Ambiente fsico; Documentao; Rede; Software; Suprimentos.

Quanto maior o nvel do ambiente, maior deve ser sua capacidade de reproduzir todas as caractersticas do cliente. Vamos pensar que, por exemplo, em erros que ocorrem no dia a dia. Erros em pginas web podem ocorrer em diferentes navegadores, erros de aplicativo em diferentes sistemas operacionais e assim por diante. De acordo com as configuraes mnimas exigidas para a instalao do sistema j estamos definindo nosso ambiente. No a toa que nas ferramentas de bugtracker temos um campo para dizer em qual SO o erro ocorreu. A cada nvel de teste temos a diferenciao de ambiente. Estes ambientes podem nem pertencer exclusivamente a equipe de teste, mas precisam ser salientadas: Atributos Escopo Equipe Volume de dados Origem de dados Nvel Unitrio Unidade individual Desenvolvedores Pequeno Criao manual Integrao Unidades Grandes Sistema Sistema inteiro Aceitao Simulao da Produo

Desenvolvedores Testadores e Testadores e Testadores usurios Pequeno Criao manual Grande Criao por processo Grande Dados reais

15

Automao de Testes Interfaces Ambientes N/A N/A Simuladas Reais/Simuladas Produo

Desenvolvimento Desenvolvimento Testes

Dentro do ambiente de testes, temos uma infra-estrutura bsica para comportar os testes automatizados: Servidor de aplicativos Servidor que ir conter os programas utilizados para gerenciamento, controle e execuo de testes. Tambm contem aplicao de suporte. Ambiente virtualizado Ambiente para simular os ambientes descritos como propcio para a utilizao do sistema. Pode-se criar as mquinas virtuais para testar um erro especfico com a configurao do cliente. Sistema alvo (SUT) a aplicao que ser o alvo dos testes, pode ser um servidor especfico ou mesmo um ambiente virtualizado. Banco de dados Sempre necessrio para a maioria das aplicaes, temos que possuir um banco exclusivo e controlado para a execuo dos testes.

4.1.2 Massa de dados


A massa de dados um fator muito importante na preparao do ambiente, pois em alguns nveis como unidade e integrao ele pode ter uma baixa relevncia, mas para um teste de carga ele tem um peso muito grande. O ambiente de testes deve ser um local isolado de todos os outros ambientes e com todas as caractersticas do ambiente do cliente, ou ambiente de produo como tambm chamado. Uma alternativa que j est sendo muito utilizada por empresas a virtualizao. Ela elimina custos de hardwares fsicos possibilitando no s ter menos custo, mas tambm reduo de tempo para preparao do ambiente de teste. Mas necessrio que se tome muito cuidado: no utilizem ambiente virtualizado para teste de performance, uma vez que emularmos o ambiente, teremos perda de performance e utilizao maior do hardware.

16

Automao de Testes

4.2 Configurando e instalando as ferramentas


4.2.1 E ento vamos configurar e instalar o WampServer?
Antes de conhecermos sobre as ferramentas de automao de testes, iremos conhecer uma aplicao que nos dar apoio para instalarmos e executarmos ouras ferramentas, como TestLink e Mantis, por exemplo. Estas ferramentas possuem algo em comum, elas necessitam ser instaladas e configuradas e dependem de instalao de outras 3 aplicaes: Apache, MySQL e PHP. O Apache um servidor web HTTP para exibio de pginas web. O MySQL um sistema gerenciador de banco de dados (SGBD), e muito utilizado. O PHP uma linguagem de programao interpretada para a web.

Como necessitamos destas 3 aplicaes, muito tedioso e complicada a sua instalao e suas configuraes para que consigamos utilizar o TestLink e o Mantis. O propsito do Wamp, exatamente este, facilitar estas instalaes, unindo estas 3 aplicaes j configuradas e dependendo apenas de um download, que seria do WampServer. Esta ferramenta nica e exclusiva para o uso da AMP (Apache + MySQL + PHP), em ambiente Windows e traz as ultimas verses da AMP, alm de conter outras ferramentas de apoio. Podemos encontrar estas ferramentas em: Apache: http://httpd.apache.org/ MySQL: www.mysql.com/ PHP: www.php.net/ Wamp: www.wampserver.com/en/

17

Automao de Testes

4.2.2 Colocando as aplicaes para funcionar


muito simples a instalao do WampServer, mas veremos aqui o passo a passo para que futuramente voc consiga utiliz-lo como um guia. Primeiramente faa o download do WampServer na verso que mais lhe agradar. 1. Clique no executvel. Ser exibida a tela questionando se voc realmente deseja executar o software:

2. Clique em [Executar]. Ser exibida a tela das ferramentas e verses que o Wamp que fez o download possui:

18

Automao de Testes

3. Clique em [Next]. a tela de termos de aceite, caso esteja de acordo, ento selecione a opo I accept the agreement.

19

Automao de Testes

4. Clique em [Next]. Ser exibida a tela onde mostra o local a ser instalado. Caso deseje escolher outro local selecione outro.

5. Clique em [Next]. exibida a tela onde voc informa se deseja que seja criado um cone na rea de trabalho e/ou no menu iniciar. Selecione opes.

20

Automao de Testes

6. Clique em [Next]. exibida a tela confirmando locais de instalao e cones que sero criados:

21

Automao de Testes 7. Clique em [Install]. exibida a tela com o progresso da instalao.

8. Caso o Firefox esteja instalado, informado que o mesmo foi detetcado em seu computador e se deseja que este seja o browser padro para o WampServer.

9. Clique em [Sim]. ... finalizando instalao... 10. exibida a tela de Parmetros do PHP. Em SMTP mantenha localhost e em e-mail altere se necessrio.

22

Automao de Testes

11. exibida a tela de finalizao de instalao.

12. Para abri-lo basta clicar em [Finish].


23

Automao de Testes

Pronto! Agora que o Wamp j est instalado, podemos alterar a sua linguagem: No cone da barra de tarefas, clique com o boto direito sobre o cone do Wamp >> Selecione a opo Language >> em seguida selecione a opo Portuguese. Feito, configurao de linguagem alterada!

Com o boto esquerdo do mouse, clique sobre o cone do Wamp. Ser exibido o menu:

24

Automao de Testes

4.2.3 Executando as aplicaes


Todas as aplicaes que necessitam de PHP, MySQL e Apache so inseridas no diretrio www do Wamp: C:\wamp\www\ Estas aplicaes estaro disponveis atravs do endereo localhost. Podemos visualizar a aplicao das duas maneiras abaixo, digitadas no browser: 1) http://localhost/nome_da_pasta ou 2) http://localhost/ e selecionando a pasta listada no item Your projetcs.

25

Automao de Testes

Unidade 5 Gerenciamento de casos de teste e execuo com TestLink


5.1 Gesto de testes com TestLink
5.1.1 Objetivos
O TestLink uma ferramenta de gesto de testes, onde seu principal intuito gerenciar planos e casos de testes, alm tambm de habilitar a simulao de execuo trazendo mtricas para cada projeto. Com ela podemos criar diversos projetos de testes e atribuir planos e casos de teste a eles, bem como rastrear requisitos do sistema para cada plano ou caso de teste. O TestLink uma aplicao Open Source cujo principal objetivo gerenciar as atividades de testes de um projeto. Por meio do TestLink voc poder criar Casos de Teste e organiz-los em Suites de Teste. Voc tambm poder associar um conjunto de Casos de Teste 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 Casos de Teste aos requisitos. Dessa forma, voc poder garantir o rastreamento entre os requisitos e os Casos de Teste por meio de uma matriz de rastreabilidade. Adicionalmente, o TestLink permite a integrao com Mantis. Por meio dessa integrao, quando um Caso de Teste falhar, voc conseguir associar os Bugs cadastrados no Mantis a este Caso de Teste. 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;
26

Automao de Testes

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

O download pode ser feito em http://www.teamst.org/ .

5.1.2 Instalando a ferramenta


1) Efetue o download em http://www.teamst.org/ >> Menu Download >> Ser aberta nova janela. 2) Selecione a verso TestLink 1.9.3 3) Clique em testlink-1.9.3.tar.gz e aguarde que o download inicie. Ser salvo em C:\Users\Nome_usurio\Downloads 4) Clique no .Rar e descompacte os arquivos dentro da pasta C:\wamp\www . 5) Utilizando o WampServer, v em PHPMyAdmin e crie um banco de dados com o nome de TestLink. 6) Aps criar o bd, no arquivo "php.ini" alterar as questes abaixo: o Max_execution_time de 30 para 120; o session.gc_maxlifetime de 1440 para 5000; o Salvar o arquivo e aps reinciar o WampServer. 7) Execute a aplicao via http://localhost/ 8) O sistema questionar sobre instalar uma nova verso ou atualizar uma verso j existente: 9) Solicite criar uma nova verso clicando no link New Installation.

27

Automao de Testes

A instalao dividida em cinco passos: Acceptance of License (Aceite da Licena) Basicamente ler e aceitar a licena marcando o checkbox I agree to the terms set out in this license. Verification of System and configuration Requisitoss (Verificao do sistema e configuraes requeridas) O sistema avalia as configuraes do computador em que o TestLink ser instalado. Caso tenha algum problema, ele ser apresentado para correes. Quando a mensagem Your system is prepared for TestLink configuration (no fatal problem found). for apresentada, basta solicitar Continue. Definition of DB access (Definio do acesso ao Banco de Dados) Neste tutorial s apresentaremos a instalao usando a mquina local e o MySql como banco de dados. Informe o nome do banco de dados criado, neste caso testlink, usurio e senha do root do banco de dados. Inclua tambm o usurio que criamos e a senha escolhida, logo aps solicite Progress TestLink Setup. Criar DB, testlink DB user, structures and default data & Criar configuration file. (Criao do usurio do Banco de dados, estruturas e dados padres e criao do arquivo de configurao) Verify the procedure result (Verificao dos resultados do procedimento)

28

Automao de Testes Continue to TestLink login. (Continue para o login do TestLink).

5.1.3 Estrutura geral


H trs fundamentos no TestLink: Projeto de Teste, Plano de Teste e Usurio. Todos os outros dados so relaes ou atributos desta base.

5.1.4 Definies Bsicas


Primeiro, vamos definir os termos que so utilizados no Testlink: Teste: descreve uma tarefa de teste atravs de passos (aes, cenrio) e resultados esperados. O caso de teste o elemento fundamental do TestLink. Test Suite: (Suite Test Case) organiza Casos de Teste em unidades. Subdivide uma especificao de teste em partes lgicas.

29

Automao de Testes Plano de Teste: criado quando voc pretende executar casos de teste. Planos de teste so feitos dos casos de teste a partir do projeto de teste atual. Um plano de teste inclui Builds, Marcos, atribuio de usurio e resultados do teste. Projeto de Teste: algo que vai existir sempre no Testlink. Um projeto de teste sofre muitas verses diferentes ao longo de sua vida. Um projeto de teste inclui especificaes de teste com Casos de Teste, Requisitos e palavras-chave. Usurios dentro do projeto definem papis. Usurio: cada usurio TestLink tem um papel que define as caractersticas disponveis.

5.1.5 Exemplo simples de fluxo de trabalho no TestLink;


1. O Administrador cria um projeto de teste "Fast Food" e mais dois usurios, Adam com direitos "Lder" e Bela com direitos "Tester Snior". 2. O Lder Adam importa Requisitos de Software e parte desses requisitos gera casos de teste vazias. Ele reorganiz-os em duas suites de teste: "peixe" e "Chips". 3. A Tester Bela descreve um cenrio de teste (cria um contedo de Casos de Teste vazias) usando estas especificao de teste que est organizado em suites de testes. 4. Adam cria a palavra-chave "teste de regresso" e atribui esta palavra-chave para 10 destes casos de testes. 5. Adam cria um Plano de Teste "Fish & Chips 1", Build "Fish 0,1" e liga todos os casos de teste em Suite de Teste "Fish" para este Plano de Teste. Ele atribui a si mesmo e a Bela como recursos para este Plano de Teste tambm. 6. Agora, os desenvolvedores Liberaram a primeira verso. Adam e Bela executam e gravam o teste com o resultado: 5 passado, uma falha e 4 esto bloqueadas. 7. Os Desenvolvedores fazer uma nova build "Fish 0,2" e Bela testa apenas os casos de teste que falharam e foram bloqueados. Desta vez estes testes passaram, e com isso eles tambm testam novamente todos os casos de teste com palavraschave "teste de regresso".

30

Automao de Testes 8. Um gerente dessa equipe Quer ver os resultados. O Administrador explica a ele que ele pode criar uma conta na pgina de login. O Gerente o faz. Ele tem padro "Gerente" direitos e pode ver os resultados de teste e casos de testes. Ele pode ver que tudo o que passou no relatrio geral ;-) e problemas na Build "Fish 0.1" em um relatrio especfico para Build.1. 9. Mais tarde, os desenvolvedores finalmente, adicionam tambm a funcionalidade "Chips". Adam cria um Plano de Teste "Fish & Chips 2". Ele pode reutilizar o primeiro plano de teste como modelo. Todos os Casos de Teste "Fish" e os papis sero adicionados automaticamente. Ele cria um novo Build "Fish 1.1" e vincula todos os Casos de Teste "chips" a este plano de teste tambm. 10. Agora o teste comea como de costume. 11. Mais tarde, o Administrador cria um novo projeto de teste para outro produto "Hot Dog". Mas esta de uma outra equipe de teste e histria diferente.

31

Automao de Testes

5.1.6 Algumas configuraes antes de iniciar


No TestLink para facilitar seu entendimento, ao logar, v at My Settings e solicite o Locale para Portuguese (Brazil). No arquivo C:\wamp\www\testlink\config.inc.php: Aqui no veremos todas as opes de configuraes que podemos realizar no arquivo de configuraes do TesLink, mas salientar que arquivo pode ser alterado visando otimizar esta ferramenta para ser mais usual, produtiva e atrativa para seus usurios e desenvolvedores. Ocultando Avisos de segurana: V at a linha $tlCfg>config_check_warning_mode = FILE; e modifique o File por SILENT. Removendo o registro de novos usurios: V at a linha $tlCfg>user_self_signup = TRUE; e modifique o TRUE por FALSE. Mudando o Idioma padro para portugus: V at a linha $tlCfg>default_language = en_GB; e modifique o en_GB por pt_br. Criando padro de login: Mude o valor da expresso regular na linha $tlCfg>validation_cfg->user_login_valid_regex=/^[\w \- .]+$/;. por exemplo, para ter um login com nome.sobrenome, mude a regex para /^[\w \-]+\.+[\w \-]+$/. Incluindo o logotipo da sua empresa no Sistema: Salve o logotipo da empresa no formato PNG, preferencialmente nas dimenses 115/53. Salve esse arquivo no diretrio C:\wamp\www\testlink\gui\themes\default\images. V at a linha $tlCfg>company_logo = company_logo.png; e modifique o texto company_logo.png para o nome do arquivo que salvou no diretrio citado acima. Mensagens de boas vindas, aviso ou emergncia: V at a linha $tlCfg->login_info = ; e inclua o texto entre as aspas simples. Esse texto ser apresentado na tela de login. Na imagem abaixo podem ser vistas algumas das mudanas, ressaltando esta. Ordenao alfabtica dos projetos: V at a linha $tlCfg->gui>tprojetcs_combo_order_by = ORDER BY nodes_hierarchy.id DESC; e modifique o contedo entre as aspas por ORDER BY name.

5.2 Projeto de teste


Assim que o TestLink for instalado e configurado, a sua primeira ao dever ser criar um novo projeto. Para tal tarefa, ou voc j estar na pgina Gerenciar Projeto de Teste ou clicar no link principal do TestLink no canto superior esquerdo, aps clicar em breve ser exibida a pgina Gerenciar projeto de Teste: Criar um novo projeto, conforme o exemplo apresentado abaixo.

32

Automao de Testes

importante ressaltar que durante a criao do projeto, voc poder desabilitar o recurso de funcionalidade e requisitos oferecido pelo TestLink, caso voc utilize alguma outra ferramenta para este fim. Aps preenchidos os campos conforme seu interesse, basta clicar em [Criar]. Pronto, agora voc possui um projeto.

33

Automao de Testes

5.2.1 Editando um projeto


Para editar um projeto muito simples, basta ir no meu Incio e clicar em Gerenciar Projeto de Teste como mostra imagem abaixo:

Ser exibida a lista contendo os projetos, clique sobre ele e edite o que quiser, aps clicar em [Salvar]. importante ressaltar que no interessante deletar um projeto, visto que todas suas informaes sero perdidas. Se possvel sempre inative seu projeto quando no quiser mais utiliz-lo.

34

Automao de Testes

5.3 Inventrio
Os usurios podem listar seu hardware em uma tabela por projeto. O recurso deve ser ativado na pgina de edio do projeto. Por default os lderes podem editar esta pgina e testadores podem apenas navegar. O link Inventrio est disponvel na pgina principal, no menu "Projeto de Teste". A pgina Inventrio oferece trs aes: criar, Editar e Deletar. A tabela mostra todos os dispositivos e permite a classificao em qualquer campo. Selecione a opo "Criar" para definir um dispositivo. Os parmetros a seguir so suportados: Nome do host (valor obrigatrio exclusivo); Endereo IP; Objetivo (texto simples com maximamente 2000 caracteres); Hardware (texto simples com maximamente 2000 caracteres); Notas (texto simples com maximamente 2000 caracteres); Dono (opcional) pode ser qualquer pessoa que tenha pelo menos a capacidade de ver. Para Editar e Excluir requer uma linha selecionada.

5.4 Especificaes de Teste

35

Automao de Testes O TestLink quebra a estrutura de especificao de teste em Suites e Casos de teste. Estes nveis persistem em todo o aplicativo. Um projeto de teste tem apenas uma especificao de testes. Planejamos implementar as seguintes habilidades: padres de teste, processo de reviso e status de casos de teste, estrutura de caso de teste (por exemplo o design de passo a passo).

5.5 Adicionando requisitos


Assim que o projeto for criado, o prximo passo a criao dos requisitos (caso voc tenha habilitado o recurso de funcionalidade e requisitos). Primeiro, voc dever adicionar uma Especificao de Requisito. Para realizar tal tarefa, v para a seo Requisitos e ento clique no menu Especificar Requisitos.

A pgina Especificao de Requisitos dever ser exibida, conforme o exemplo apresentado na figura abaixo:

36

Automao de Testes

Para adicionar uma Especificao de Requisitos, devemos clicar sobre o projeto desejado e aps clicar em Nova Especificao de Requisito:

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

5.5.1 Editando Especificao de Requisitos


To logo a Especificao de Requisito seja criada, voc dever clicar sobre ela. A pgina Editar Especificao de Requisitos dever ser exibida, conforme o exemplo apresentado abaixo:

37

Automao de Testes

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 Visualizar Impresso). Para adicionar um requisito manualmente, voc dever clicar no boto Criar Novo Requisito:

A pgina Criando um Novo Requisito dever ser exibida, conforme a seguinte tela. Convm lembrar, alis, que durante a criao do requisito, voc poder identificar no campo Status se o requisito testvel ou no e qual o Tipo dele.

38

Automao de Testes

Aps salvar a tela j atualizada com a informaes do requisito inserido.

5.5.2 Adicionando Casos de Teste


Pressupondo que os requisitos j foram criados, o prximo passo deve ser a criao dos Casos de Teste. Em primeiro lugar, no entanto, voc dever criar uma Especificao de Teste. Para tal tarefa, clique no menu Especificao. A pgina Especificao de Testes dever ser exibida, conforme o exemplo apresentado.

39

Automao de Testes

Nesta pgina clique sobre o projeto e aps clique em no boto Nova Suite de Teste:

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 Suites, que por sua vez pode ter uma ou mais Casos de Teste.

40

Automao de Testes

Uma vez que o Suite for criado, voc dever selecion-lo na lista dos componentes disponveis:

Aqui voc pode tanto criar um novo Suite dentro deste como pode j Criar um caso de teste.

41

Automao de Testes

O TestLink tambm permite a impresso dos Casos de Teste. Para realizar tal tarefa, voc dever ir para a seo Especificar Testes e ento clicar no menu Imprimir Casos de Teste. A pgina Imprimir Casos de Teste dever ser exibida.

42

Automao de Testes

Nesta pgina voc dever selecionar a Categoria que voc deseja imprimir e configurar as opes de impresso na seo Opes do documento.

43

Automao de Testes

5.5.3 Associando Casos de Teste aos Requisitos


Conforme comentado anteriormente, o TestLink permite que voc possa associar os Casos de Teste aos requisitos. Dessa forma, voc poder garantir o rastreamento entre os requisitos e os Casos de Teste por meio de uma matriz de rastreabilidade. Para realizar tal tarefa, voc dever ir para a seo Requisitos e ento clicar no menu Selecionar Requisitos.

A pgina Atribuir requisitos ao Caso de Teste dever ser exibida, conforme o exemplo abaixo. Nesta pgina voc dever selecionar o Caso de Teste desejado, depois selecionar os requisitos disponveis e, por ltimo, associar o Caso de Teste aos requisitos (por meio do boto Atribuir).

44

Automao de Testes

PS.: Um requisito s pode ser atribudo se este for o Requisito de Operao, ento primeiro cria-se um Requisito Pai <como feature por exemplo> e aps cria-se um requisito operacional vinculado a este Requisito pai.

5.5.4 Associando Palavras Chaves aos Casos de Testes


O TestLink permite que uma palavra-chave seja associada aos Casos de Teste. As palavras chaves facilitam a realizao de pesquisas ou filtros dos Casos de Teste disponveis. Para criar uma Palavra Chave voc dever ir para a seo Projeto de Teste e ento clicar no menu Gerenciar palavra-chave. A pgina Nova Palavra Chave dever ser exibida. To logo as palavras chaves sejam criadas, voc poder associa-las aos Casos de Teste. As Palavras-chave podem ser atribudas a casos de testes a partir da tela de atribuio de palavras-chave ou atravs da gesto de Casos de Teste (individualmente).

45

Automao de Testes Os usurios tm a capacidade de filtrar por palavras-chave em: rvore de navegao de especificao de teste; Busca de Casos de Teste de especificao de teste; Adicionar Casos de Teste em um conjunto de testes (plano de teste); "Executar teste" pgina.

5.5.5 Criao e excluso de Planos de Teste


Planos de teste podem ser criados a partir do "Gerenciar Plano de Teste" na pgina principal por usurios com privilgios para o projeto de teste atual. Pressione o boto "Criar" e inserir os dados. A definio do Plano de Teste consiste em ttulo, descrio (formato html) e status opo "Ativo". A descrio deve incluir as seguintes informaes em relao aos processos da empresa: Resumo / Scopo; Featues a serem testadas; Funes a no serem testadas; Critrios de teste (para passar o produto testado); O ambiente de teste de Infraestrutura; As ferramentas de teste; Riscos; Referncias (plano de produto ou solicitao de alterao, documentos de Qualidade, etc). Planos de teste so compostos de casos de teste importados de uma especificao de teste com um tempo determinado. Planos de teste podem ser criados a partir de outros Planos de Teste. Isso permite aos usurios criar planos de teste de casos de teste que existem um prazo de tempo desejado. Isso pode ser necessrio quando se cria um Plano de teste para um patch. Para que um usurio possa ver um plano de teste, o mesmo deve ter os direitos apropriados. Planos de teste podem ser excludos pelos usurios com privilgios. Excluindo os Planos de Testes de forma permanente exclui tanto o plano de teste e todos os seus dados correspondentes, incluindo os casos de teste, resultados, etc Isso deve ser utilizado apenas para casos especiais. Opcionalmente Planos de Teste podem ser desativados na mesma pgina, que suprime a exibio de menus de seleo.

5.5.6 Criando Baselines / Releases


medida que se queira executar os Casos de Teste de um Suite de teste voc dever criar um Baselines / Releases. Um usurio com privilgios de lder pode seguir o link " Baselines / Releases" no menu Gerenciar Plano de Teste na pgina principal. Uma Baselines / Releases uma verso especfica de software. Cada projeto em uma empresa composta de muitas verses. No TestLink, a execuo baseada em

46

Automao de Testes Baselines / Releases e Casos de Teste. Se no houver Baselines / Releases criados para um projeto, a tela de execuo no ir permitir que voc execute-a. A tela de mtricas tambm ser exibida completamente em branco.

Cada Baselines / Releases identificado atravs de ttulo. Ele inclui descrio (formato html) e dois estados: Ativo / Inativo; Aberto / fechado.

5.5.7 Adicionando casos de teste ao Plano de Teste


O contedo do plano de teste definido pela adio de um conjunto de testes (de Casos de Teste) a partir da especificao de testes. No menu Contedo do plano de teste use o link "Adicionar / Remover Casos de Teste" na pgina inicial. Dados de especificao de teste podem ser filtrados por palavras-chave. Depois que os dados forem associados a um plano de teste, o mesmo marcado com uma seleo.

47

Automao de Testes

Pode-se escolher casos de teste atravs da caixa de seleo e clique em "Adicionar selecionadas" para definir o conjunto de teste. Clique cone de check para selecionar todos os casos de teste em cada Suite de Teste. Todos os casos de teste podem ser adicionados clicando no rtulo sob o ttulo Suite de Teste. Uma certa verso de um caso de teste atribudo a um Plano de Teste. Pode-se atualizar a verso para depois testar se o caso de teste for atualizado. O contedo de uma verso do caso de teste executado no pode ser modificado. Dica: um plano de teste tem apenas um conjunto de casos de teste. Pode-se adicionar novos casos de teste durante o teste, mas isso afeta as mtricas de verses mais antigas, como os novos casos de teste contam como "no executar" para aqueles verses. Na maioria dos casos isto no importante. Se, contudo, isso importante para voc, voc tem duas opes: Criar um plano de teste novo para a segunda fase de testes. Usar palavras-chave para reconhecer as fases de teste dentro de um plano de teste.

48

Automao de Testes

5.5.8 Atribuio de execuo de teste


Voc pode atribuir casos de teste para a execuo para diferentes usurios. Atribuio a execuo do teste afeta tanto a execuo e relatrios. Nos usurios de tela de execuo tem a capacidade de classificar os casos de teste executveis para ver os que foram atribudas. Nos relatrios, h uma tabela que apresenta os casos de teste restantes por testador. Se no houver um testador de caso de teste atribudo o padro nenhum. Um Tester tambm pode ver as mtricas de seu / seus prprios testes executados na pgina principal, se essas mtricas so ativados.

5.6 Plataformas
A Plataforma descreve uma "unidade" de casos de teste que pode ser executada. Por exemplo, uma plataforma pode ser um navegador, um sistema operacional, um equipamento de hardware ou configurao. Um plano de teste pode ter plataformas associadas que so escolhidas quando um caso de teste executado. Um projeto de teste pode ter vrias plataformas que precisam ser testadas. Por exemplo, um site precisa ser testado em diferentes navegadores, ou um aplicativo precisa ser executado em diferentes sistemas operacionais ou equipamentos de hardware. O TestLink chama a isso de conceito de Plataformas. As plataformas so uma maneira de conectar casos de teste em um plano de teste e a uma plataforma especfica de software, equipamento ou configurao.

49

Automao de Testes

Para usar o recurso de plataformas, algumas plataformas devem primeiro ser criadas em "Gerenciamento de Plataforma" (acessvel a partir da pgina principal). Selecione um plano de teste e clique em "Adicionar / Remover plataformas". Atribuir plataformas para um plano de teste, movendo-os para o painel direito e Salvar. Agora casos de teste podem ser adicionados ao Plano de Teste. Isso feito da mesma forma normalmente, como a exceo de que um caso de teste deve ser verificado uma vez para cada plataforma que deve ser executado. O prximo passo atribuir os usurios a executar os casos de teste. Voc livre para associar usurios como voc deseja. Uma possibilidade ter um usurio para executar um caso de teste em todas as plataformas. Outra forma permitir que um usurio execute todos os casos de teste em uma plataforma, ou uma mistura dos dois. Quando mltiplas plataformas so utilizadas na etapa de execuo do TestLink, ele recebe uma opo de filtro adicional. Verifique se a seleo da plataforma est definido para a plataforma que voc est indo para executar em casos de teste. Relatrios de testes incluem a plataforma nas mtricas.

5.7 Priorizando testes


Prioridade de teste um recurso opcional. Normalmente, algumas caractersticas de uma verso so novas ou sujeitas a um forte desenvolvimento, que devem receber mais ateno. Por outro lado, algumas caractersticas foram quase intocadas, e para estes apenas os testes mais importantes precisam ser executados. Configurao: Esse recurso deve ser ativado em nvel de projeto de teste pelo administrador ("Gerenciamento de projetos de Teste" na pgina principal). O parmetro de prioridade de teste definido como uma combinao de importncia e urgncia do caso de teste e Suite em um plano de teste. Prioridade de teste pode ser utilizado como uma definio do filtro para a execuo do teste e tambm relatado em mtricas. TestLink d aos usurios a capacidade de atribuir importncia a casos de testes. Existem trs nveis: alta, mdia e baixa. Este valor ajustvel durante o projeto de teste na especificao de testes. Urgncia o segundo parmetro que afeta a prioridade de teste. Urgncia definido para um certo plano de teste e no depende de Importncia de teste.

50

Automao de Testes Se voc copiar um Plano de Teste, a urgncia no copiada. Um conjunto diferente de urgncia esperado. O TestLink combina esses dois atributos em nveis de prioridade alta, mdia e baixa. A prioridade deve ajudar a escolher o conjunto certo de execuo para testar em primeiro lugar.

5.8 Marcos
O lder de teste pode definir um marco numa determinada data com um objetivo de percentual esperado de testes finais. Este objetivo pode ser definido por trs nveis de prioridade, no caso de que priorizao de teste permitida.

5.8.1 Executando os Casos de Teste


A execuo do teste est disponvel depois de: A especificao de teste estar escrita. Um plano de teste ter sido criado. Casos de Teste foram adicionados ao Plano de Teste. Pelo menos uma Baseline foi criada. Testadores receberam direitos apropriados para trabalhar com o presente Plano de Teste.

Selecione a opo "Executar Testes" no menu superior ou na pgina principal para navegar na tela de "Execuo de Caso de Testes". O painel esquerda permite a navegao dentro dos casos de teste atravs de um menu rvore, e o set-up de configuraes e filtros. A janela de execuo mostra informao relevante sobre um caso de teste e permite a entrada de resultados do teste. O painel de navegao constitudo por Configuraes e Filtros no menu de rvore contendo Casos de Teste.

51

Automao de Testes

Os usurios podem especificar o plano de teste para qual caso de teste deve ser executado. Casos de Teste apenas pertencentes a esse plano de teste so mostrados. Os usurios devem especificar a Baseline em teste, selecionando a partir da lista de verses ativas. Sua Baseline mais recente por default definida. Geralmente cada caso de teste executado apenas uma vez contra cada Baseline. No entanto, possvel execut-lo vrias vezes (talvez se o testador cometeu um erro). Filtragem de Casos de Teste Essa tabela permite ao usurio filtrar os casos de teste para navegao inteligente antes de serem executadas. Voc deve clicar em "Aplicar filtro" para aplicar uma nova configurao do filtro. rvore O menu da rvore no painel de navegao mostra a lista escolhida de Casos de Teste no Plano de Teste. Ele permite que o caso de teste apropriado seja aberto para a execuo do teste no quadro direita. Suites de teste no menu so reforadas por um breve status de teste aps o ttulo. Isso d uma contagem de um cdigo de cores de casos de teste: no-executado, passou, falhou e bloqueado, respectivamente.

52

Automao de Testes Status do teste A execuo o processo de atribuio de um resultado (aprovao, reprovao, bloqueado) para um caso de teste para um Build especfica. Um caso de teste 'bloqueado' no pode ser testado, por algum motivo (por exemplo, um problema na configurao impede que uma funo de ser executado). Inserindo Resultados do teste O resultado do teste mostrado atravs de um clique em um Suite de teste ou caso de teste no painel de navegao. O ttulo mostra a Baseline atual e dono. A barra colorida indica o status do caso de teste. A caixa amarela inclui o cenrio de teste do caso de teste.

5.8.2 Relatrios de teste e mtricas


Os relatrios de testes e mtricas so acessados clicando em Resultados ou Relatrios de testes e mtricas nos links na pgina principal. Relatrios e mtricas baseiam-se no Plano de Teste selecionado (do menu da combobox). A pgina que mostrada ao usurio inclui: o painel direito ser preenchido com instrues sobre como usar os controles e como cada relatrio produzido. O painel esquerdo usado para navegar por cada relatrio e por controles operacionais que controlam o efeito e o comportamento dos relatrios que so mostrados. O boto Imprimir inicializa a impresso do painel direito (nenhuma navegao ser impressa). Todos os relatrios de teste (exceto grficos) podem ser gerados em 1 de 3 formatos: 1Normal: relatrio exibido na pgina web (html). 2-MS Excel: relatrio exportado para o Microsoft Excel. 3-HTML e-mail: relatrio enviado ao endereo de e-mail do usurio. Existem atualmente nove relatrios separados para escolher sua finalidade e suas funes so explicadas a seguir. Atualmente, no h relatrios que compilam os resultados de vrios planos de testes.

5.8.3 Mtricas gerais de Planos de Testes


Esta parte mostrar apenas o mais atual status de um Plano de teste para testes de Suite, proprietrio e palavra-chave. A maioria dos status atual so determinadas pelos mais recentes casos de testes de build executadas no dia. Por exemplo, se um caso de teste foi executado durante vrios builds, apenas o mais recente resultado tido em conta. ltimo Resultado do teste um conceito usado em muitos relatrios e determinado como se segue:

53

Automao de Testes 1) A ordem na qual os builds so adicionados no plano de teste determina qual build mais recente. Os resultados do mais recente build ter precendentes de builds mais velhos. Por exemplo, se voc marcar um teste como falha no Build 1 e marc -lo como passou no Build 2, seu ltimo resultado ser passou. 2) Se um caso de teste executado mltiplas vezes, sobre o mesmo build, a execuo mais recente ter precedncia. Por exemplo, se Build 3 liberado para a sua equipe e o testador 1 marca como passou 2 horas da tarde e o testador 2 marca como falha 3 horas da tarde, ele aparecer como falhou. 3) Casos de testes classificados como no executados contra um build no so tidos em conta. Por exemplo, se voc marca um caso como passou no Build1e no execut-lo em Build 2, o ltimo resultado ser considerado como passou. A lista dos resultados de cada nvel superior Suite. Total de casos, passou, falhou, bloqueados, no executados e o percentual completo. Um caso de teste completo um processo que tem sido marcado como passou, falhou ou bloqueado. Resultados de nvel superior de Suites incluem todas as sutes mais novas.

5.8.4 Resultados por palavra-chave


Lista todas as palavras-chave que so atribudas a processos no Plano de teste atual e os resultados que lhes esto associados.

5.8.5 Resultados por Dono


Lista cada proprietrio que tem casos de testes atribudos no atual Plano de Teste. Casos de testes que no so atribudos so tallied under the unassigned heading.

5.8.6 Viso geral do status da Baseline


Lista a execuo de resultado para cada build. Para cada build, o total de casos de testes, total que passou, % que passou, total que falhou, % que falhou, bloqueados, % bloqueados, no executados e % de no executados so exibidos. Se um caso de teste foi executado duas vezes, no mesmo build, a mais recente execuo ser tomada em conta.

5.8.7 Mtricas da Query


Este relatrio constitudo por um formulrio de pgina de consulta e uma pgina de consulta de resultados que contm os dados questionados. Formulrio da pgina de consulta:

54

Automao de Testes O usurio apresentado com uma pgina de consulta com quatro controles. Cada controle definido para um padro o qual maximiza o nmero de casos de teste e builds que a consulta dever ser executada. Alterando os controles, permite ao usurio filtrar os resultados e gerar relatrios especficos para proprietrio especfico, palavra-chave, Suite e combinaes de build. Palavra-chave - 01 palavras-chave podem ser selecionadas. Por padro- nenhuma palavra-chave selecionada. Se uma palavra-chave no est selecionada, ento todos os casos de teste sero considerados independente das atribuies das palavras-chaves. As palavras-chave so atribudas na especificao de testes ou nas pginas de gerenciamento de palavra-chave. Palavras-chave, atribudas aos casos de testes, abrangero todos os planos de testes e abrangem a todas as verses de um caso de teste. Se voc est interessado no resultado de uma determinada palavra-chave, ento voc deve alterar esse controle. Proprietrio: 01 proprietrios podem ser selecionados. Por padro, nenhum proprietrio selecionado. Se um proprietrio no selecionado, ento todos os casos de testes sero considerados independentemente do proprietrio assignado. Atualmente, no h nenhuma funcionalidade de pesquisa de casos de testes para no atribudo. A propriedade atribuda atravs de execuo de Atribuir Casos de Testes e feito em uma base per Plano de Teste. Se voc estiver interessado no trabalho realizado por um determinado testador, voc deve alterar esse controle. Nvel superior de Suite: 0n nvel superior de Suites podem ser selecionados. Por padro, todas as Suites so selecionadas. Apenas Suites, que so selecionadas, sero consultadas para resultar mtricas. Se voc estiver apenas no intested dos resultados de uma determinada Suite, voc deve alterar esse controle. Baseia - 1n builds podem ser selecionados. Por padro - todos os Builds so selecionados. Apenas execues realizadas em Builds que voc selecionar sero tidos em conta quando se produzir mtricas. Por exemplo: se voc quiser ver quantos casos de teste foram executados nos ltimos 3 Builds, voc altera este controle. Palavra-chave, proprietrio e nvel superior de selees de Suite iro ditar o nmero de casos de teste a partir do seu Plano de teste que so usados para calcular por Suite e por mtricas de planos de testes. Por exemplo: se voc seleciona proprietrio = Greg, palavra-chave = Prioridade 1 e todos os testes de Suite disponveis, apenas o casod de teste de Prioridade 1 atribudo a Greg sero considerados. O # Casos de Teste totais que sero vistos no relatrio sero influenciados por estes 3 controles. Selees de build iro influenciar se um processo considerado passou, falhou, bloqueou ou no foi executado. Refira-se a Resultado do ltimo teste de regras

55

Automao de Testes que aparecem acima. Pressione o enviar para avanar com a consulta e exibir a pgina de sada. A pgina do relatrio exibir: 1- Os parmetros utilizados para criar o relatrio. 2- Totais de todo o plano de teste. 3Uma discriminao dos totais por Suite (soma/passou/falhou/bloqueados/no executados) e todas as execues realizadas nessa Suite. Se um Caso de Teste foi executado mais de uma vez em mltiplos Builds, sero exibidas todas as execues que foram registradas contra os Builds selecionados. Contudo, faa um resumo para que Suite s inclua o Resultado do ltimo teste para os builds selecionados.

5.8.8 Relatrios de casos de testes bloqueados, com falha e no executados


Estes relatrios mostram todos os casos de testes bloqueados, com falha e no executados atualmente. A lgica do Resultadodo ltimo teste (o que descrito acima em Mtricas gerais dos planos de teste) novamente empregada para determinar se um Caso de Teste deve ser considerado bloqueado, com falha ou no executado. Relatrios de casos de teste bloqueados ou com falha exibiro os Bugs associados se o usurio estiver usando uma abordagem de bug integrada no sistema de monitoramento.

5.8.9 Relatrio de Testes


Ver status de cada casos de teste em cada Baseline. Se um Caso de Teste foi executado vrias vezes na mesma Baseline, o resultado da mais recente execuo ser utilizado. recomendado exportar este relatrio no formato Excel para facilitar a navegao se um grande conjunto de dados est sendo usado.

5.8.10 Grficos
Esta pgina de relatrio requer que o navegador tenha um plugin flash. A lgica do Resultado do ltimo teste usada para os quatro grficos que voc ver. Os grficos esto animados para ajudar o usurio visualizar as mtricas do plano de teste atual. Os quatro grficos fornecidos so: 1. Grfico de pie com a viso geral do que passou/falhou/bloqueou e no executado nos casos de testes; 2. Grfico de barras com os resultados por palavra-chave; 3. Grfico de barras com os resultados por proprietrio; 4. Grfico de barras com os resultados por nvel superior de Suite.

56

Automao de Testes As barras, no grfico de barras, so coloridas para que o usurio possa identificar o nmero aproximado dos casos que passaram, falharam, bloqueados e no executados. Ele utiliza tecnologia flash fornecidas por http://www.maani.us apresentando os resultados em um Formato grfico.

5.8.11 Total de Bugs para cada caso de teste


Esse relatrio mostra cada caso de teste com todos os Bugs associados a ele para todo o projeto. Este relatrio est disponvel somente se o Sistema de Bug Tracking estiver conectado.

5.8.12 Como adicionar um novo relatrio


Copie um dos atuais relatrios e modifique-o de acordo com a sua necessidade. No se esquea que usamos modelos de renderizao (<testlink_root>/gui/templates/<report_name>.tpl) e lgica (<testlink_root>/lib/resultados/<report_name>.php). Recomendamos reutilizar as funes existentes para colher dados para o relatrio, ao invs de criar novas. Editar <testlink_root>/lib/resultados/resultsNavigator.php para adicionar um link para o seu novo relatrio. Existe um array que poderia ser facilmente melhorado. Voc deve adicionar uma nova URL e nome da palavra-chave do relatrio. Voc pode modificar o estilo CSS de um relatrio. Sugerimos criar novas classes, em vez de modificar os atuais (para evitar alteraes indesejadas em outras pginas). Se voc contribuir, seu(s) novo(s) relatrio(s) atravs do nosso tracker, voc pode encontr-lo tambm nas prximas verses Caso contrrio, corre o risco de que no ir trabalhar para a prxima verso principal.

5.8.13 Administrao de usurios


Configuraes da conta Cada usurio do sistema ser capaz de editar suas prprias informaes atravs da Conta configuraes da janela (link Personal na barra de menu). O TestLink permite usurios, com direitos de administrador, de criar, editar e excluir usurios dentro do sistema. No entanto, TestLink no permite que os administradores visualizem ou editem senhas do usurio. Se os usurios esquecem suas senhas, h um link, na tela de login, que ir enviar suas senhas utilizadas com base em seu nome de usurio e endereo de e-mail que entrou. Permisses dos papis

57

Automao de Testes O TestLink construdo com 6 diferentes nveis de permisso padres. Alterando esses direitos de manipulao pelo link de administrao do usurio que pode ser acessado pelo administrador. Estes nveis de permisso so os seguintes: Guest: Um guest s tem permisso para visualizar casos de testes e mtricas do projeto. Executor de teste: Um testador fora da empresa que s tem permisses para executar testes atribudos a eles. Teste Designer: Um usurio pode funcionar completamente com especificao de testes e requisitos. Analista de Testes: Um testador pode ver, criar, editar e excluir casos de testes, bem como execut-los. Faltam testadores para as permisses de gerir planos de testes, gerir projetos de testes, criar marcos ou ceder direitos. Inicialmente testador, testador snior. Lder de teste: Um lder tem todas as permisses como um testador, mas tambm as capacidades de ganho para gerir planos de testes, atribuir direitos, criar marcos e gerenciar palavras-chave. Admininstrator: Um administrador tem todas as possveis permisses (lder plus com a capacidade de gerenciar projetos de testes e usurios). Nota:as necessidades de planos de testes so relacionadas com caractersticas de tambm atribuir um Plano de Teste para estar disponvel. Veja Atribuio de Plano de Teste. Funes de usurio H papis pr-definidos de usurios. O administrador tem a capacidade adequada de alterar os dados dentro do TestLink. Cada usurio tem atribudo apenas um desses papis. Se voc ver a tabela voc ver linhas para cada um dos nveis de permisses (guest, testador, testador snior, lder, administrador). A segunda coluna contm todos os direitos dos diferentes nveis que sero definidos abaixo. Estes nveis foram determinados como norma para o uso, mas eles podem ser editados para definir novas funes (por um administrador experiente). A tabela do usurio contm uma chave estrangeira que aponta para o nvel de permisso adequado na tabela dos direitos.

Atribuio de plano de teste Os usurios podem ver apenas os planos de testes atribudos. Para ganhar permisses de Planos de testes um usurio lder ou administrador deve dar-lhes direitos atravs do link Definir direitos de usurio/projeto dentro de Gerenciamento de Plano de teste. Todos os usurios do sistema, por padro, no tm permisso para ver planos de testes recm-criados(exceto para a criao de Plano de testes que podem ser criados por eles

58

Automao de Testes mesmos). As permisses de Planos de Testes Zero significa que os usurios no vero nenhum Plano de teste no combobox na tela principal. Existe uma tabela com os direitos do plano de teste(ou seja, onde os usurios podero ver qual Plano de teste). Esta tabela constituda de uma combinao de id de usurios e id de projeto. A pgina principal contm um cdigo que verifica se o usurio efetuou login nas permisses adequadas (e, em seguida, mostra os projetos permitidos. No recomendado que este seja cortado.

5.8.14 Campos personalizados


As definies de campos personalizados consistem em um sistema amplo, ou seja, no possvel definir dois campos com o mesmo ID. Depois de ter criado um campo personalizado, voc precisa associ-lo ao Projeto de Teste que voc deseja usar. O campo personalizado foi implementado utilizando uma mistura de funcionalidade dos modelos Mantis (http://www.Mantisbt.org/) e dotprojetc (http://www.dotprojetc.net/). Mostrar/Exibir atributos

Mostrar em design: O campo personalizado ser exibido durante a especificao do caso de teste. Exibido na execuo: O usurio ser capaz de atribuir/alterar o valor do campo personalizado durante a especificao do caso de teste: Os campos personalizados devero ser exibidos durante a execuo do caso de teste. Permitir em execuo: O usurio ser capaz de atribuir/alterar o campo personalizado durante a execuo do caso de teste. Os valores atribudos sero salvos.

Exemplo 1. Custom Field: Adicionaritional Notes Type: string applicable to Suites de Teste, to be edited ONLY during Caso de Teste specification, but useful to be seen during test execution. show on design = YES enable on design = YES show on execution = YES enable on execution = NO Exemplo 2. Custom Field: Operating System Type: list applicable to Casos de Teste, to be edited ONLY during Caso de Teste EXECUTION, unused during Caso de Teste DESIGN. show on design =NO enable on design = NO

59

Automao de Testes show on execution = YES enable on execution = NO

5.8.15 Importao de dados


A TestLink suporta diversas maneiras de compartilhar dados.

Importao e Exportao de palavras-chave

Exemplo de XML com palavras-chave:

60

Automao de Testes

5.8.16 Importao e exportao de projetos de testes


O usurio pode importar ou exportar projetos de testes incluindo a descrio do projeto, a especificao de testes e palavras-chave. As prximas duas fotos mostram a rvore de menu com os dados e os mesmos dados do arquivo XML.

61

Automao de Testes

5.8.17 Importao e exportao de testes de Suites

Exemplo de XML Teste de Suite dentro de palavras-chave

62

Automao de Testes

Exemplo de XML Teste de sute com palavras-chave

63

Automao de Testes

5.8.18 Just one Caso de Teste

Exemplo de arquivo de XML:

5.8.19 Todos os casos de testes no Suite

64

Automao de Testes

5.8.20 Importao/Exportao de requisitos de software

5.8.21 Importando casos de testes para o Excel via XML


Criando arquivo XML para importao no TestLink Etapa 1: Exportar um ou mais casos de testes do TestLink dentro de um arquivo XML. Etapa 2: Abrir novo documento em branco spread sheet document file. Etapa 3: Navegue atravs do menu Dados> XML> Importao e selecione o arquivo XML. Cria estrutura adequada em Excel.

65

Automao de Testes Etapa 4: Depois aparecer uma caixa de dilogo perguntando Onde voc deseja colocar os dados? Etapa 5: Escolha uma opo Escolher um XML existente da lista com a primeira clula $A$1.

Etapa 6: Voc ser capaz de ver as seguintes colunas: nome, resumo, etapas e resultados esperados.

Etapa 7: Copie este arquivo em seus dados nesse sentido e salve o arquivo de dados em formato XML (*.XML). Etapa 8: Verifique se o arquivo XML pode ser aberto com a ajuda do internet explorer.

66

Automao de Testes

5.8.22 Importando arquivo XML no TestLink


Etapa 1: Entrar no TestLink > Selecione seu projeto na lista dropdown. Etapa 2: Clique na Especificao > Criar Nova Suite > Escolha Suite > Clique em Importar casos de testes.

Etapa 3: Navegue para o arquivo XML, apresente-o e voc ter feita a importao.

67

Automao de Testes

Unidade 6 Gerenciando defeitos com Mantis Bug Tracker


6.1 Gesto de defeitos com Mantis Bug Tracker
6.1.1 Objetivos
O Mantis uma ferramenta Web de Gesto de defeitos OpenSource, independe de plataforma (qualquer uma que suporte php4 e banco MySQL), multi-linguagem (incluindo o portugus), envio de e-mails, relatrio de defeitos, multiusurio, etc. O principal propsito desta ferramenta ser uma ferramenta de gesto de defeitos leve e simples. Tambm tem as premissas de ter uma navegao simples, sem frames, sem javascript, sem animaes, etc. Isso para garantir a velocidade e leveza desta ferramenta. O Mantis roda em praticamente todos os servidores como Windows, Linux, Solaris, etc., sendo free para uso no comercial e comercial. Ocupa pouco espao em disco, sendo 6 MB da instalao e de 10 a 20 MB de espao para 2 mi de issues com alguns anexos. Os pr-requisitos bsico para a instalao e funcionamento do Mantis so: PHP 4.0.6 ou superior; Banco de Dados (MySQL ou PostgreSQL); Servidor Web (apache ou IIS). O download do Mantis pode ser feito em: http://www.Mantisbt.org/download.php Com ele voc pode configurar e administrar todas as informaes necessrias para que possa ser clara a que projeto a issue est relacionada (ento podem ser criados projetos, subprojetos, verses, campos personalizados, etc.). utilizada em diversas empresas para gesto de defeitos.

6.1.2 Instalao da ferramenta


1) Efetuar o download da ultima verso em www.Mantisbt.org/download.php . >> Descompactar o arquivo no servidor Apache: C:\wamp\www .

68

Automao de Testes

2) Clicar no .Rar e descompactar os arquivos dentro da pasta C:\wamp\www . 3) Utilizando o WampServer, v em PHPMyAdmin e crie um banco de dados com o nome de Mantis. 4) Execute a aplicao via http://localhost/ 5) Na janela Pre-Installation Check, preencha os campos username com 'root' e o campo password fica nulo. 6) Deixe os valores default nos demais campos. <Altere nome do banco> 7) Pressione o boto Install/Upgrade Database. 8) Abra o seu navegador e acesse (http://localhost/mantis/login_page.php). o seguinte endereo:

9) Faa o login com o usurio padro (administrator/root). Lembre-se de mudar a senha deste usurio. 10) Caso voc prefira utilizar esta ferramenta com todos os textos traduzidos para a lngua portuguesa, ento siga os passos descritos abaixo: 11) Faa o login normalmente com o seu usurio e senha. 12) Clique no menu My Account e ento selecione a opo Preferences. 13) No campo Language selecione a opo "portuguese_brazil". 14) Pressione o boto "Update Prefs".

6.1.3 Login no Mantis


Entrando com username administrator e password root j estaremos no Mantis. Se uma conta no existir, estiver desabilitada ou com a senha incorreta podemos recuperar a senha, por exemplo, pelo link Lost your password. Podemos configurar a o cadastro de usurios diretamente na tela de login, pelo link <> podemos remover o link de cadastro de usurio da pgina de login ou mesmo habilitar uma conta annima.

69

Automao de Testes Para cadastrar uma nova conta de acesso precisamos informar um e-mail vlido e um nico nome de usurio. O e-mail servir para receber informaes sobre as issues. Assim que um novo cadastro feito uma senha randmica criada e enviada para o usurio, que ser trocada logo aps o primeiro acesso.

6.1.4 Pgina inicial


Acessamos a pgina principal logo aps o login, Nela podemos ver as ultimas notcias cadastradas dentro do prprio Mantis, a data e hora de ultimo acesse o total de Bugs abertos e relatados por mim (no caso vocs). Este dois ltimos itens so clicveis, onde o Mantis efetua um filtro exibindo quais so estas issues.

6.1.5 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 Adicionar Project dever ser exibida, conforme o exemplo apresentado na figura abaixo.

70

Automao de Testes

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, Usurios do projeto, entre outras informaes conforme o exemplo apresentado na figura abaixo..

71

Automao de Testes

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

72

Automao de Testes

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. Esta pgina, por default, lista todos os Bugs abertos. No entanto, voc poder configurar filtros especficos 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.

73

Automao de Testes

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 voc poder clicar sobre qualquer bug da lista a fim de abrir a pgina Viewing Issue e modificar qualquer informao relacionada ao bug.

74

Automao de Testes

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.

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

75

Automao de Testes

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

76

Automao de Testes

6.1.9 News
O Mantis tambm oferece uma funcionalidade para a divulgao de notcias Novos. 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. A notcia registrada poder ser vista na pgina principal do Mantis.

77

Automao de Testes

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

78

Automao de Testes

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

79

Automao de Testes

6.1.12 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 dive rsas 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.

80

Automao de Testes

Unidade 7 Teste de performance, carga e stress com JMeter


7.1 O que o JMeter?
O Apache JMeter, uma aplicao desktop projetada para a realizao de testes de desempenho e estresse em aplicaes cliente/servidor, tais como aplicaes Web. Ele pode ser usado para simular cargas de trabalho em um servidor, rede, aplicaes ou mesmo em um objeto, testando sua robustez. O seu desenvolvedor original foi Stefanno Mazzochi, membro da Apache Software Foundation, mas hoje a ferramenta, que Open Source, resultado do trabalho de milhares de pessoas. Por ser uma ferramenta inteiramente escrita em Java, o JMeter compatvel com qualquer ambiente capaz de suportar a mquina virtual Java verso 1.4 ou superior. O JMeter tambm permite a criao de testes para diversos protocolos, como HTTP, JDBC, FTP, SOAP, dentre outros, podendo inclusive ser utilizada para testar objetos implementados em Java. Alm de poder ser usado para criao e execuo de testes de desempenho e estresse, o JMeter tambm permite a realizao de testes funcionais. Isso possvel graas aos vrios tipos de asseres que ele possui e que podem ser usadas para verificar os resultados das requisies enviadas ao objeto de teste. Essas asseres aceitam inclusive expresses regulares, o que lhes agrega mais poder e flexibilidade. No JMeter, a organizao dos elementos que compe o teste feita atravs de uma rvore hierrquica, cuja raiz o Plano de Teste (TestPlan). Na Figura abaixo possvel observar a rvore mencionada. Alguns elementos da rvore de teste so hierrquicos, como os Listeners (relatrios) e as Assertions (asseres), pertencendo e referenciando a outros elementos da ordem hierrquica superior. Outros elementos, como os Samplers (requisies), so primariamente ordenados e, portanto, a ordem na qual aparecem verticalmente na rvore determina sua ordem de execuo.

81

Automao de Testes

Essa organizao tambm refletida no arquivo XML gerado pela ferramenta para a persistncia dos elementos. Nesse arquivo, cada elemento do script de teste corresponde a um elemento na estrutura XML.

82

Automao de Testes

Quanto a execuo dos testes com o JMeter, ela pode ser feita de duas formas: em uma mquina s ou de forma distribuda, na qual o esforo do teste distribudo dentre diversas mquinas. A partilha do esforo do teste uma caracterstica muito importante e muitas vezes necessria para a correta execuo dos testes de desempenho e estresse. atravs dela que os testadores podem conseguir uma maior fidelidade na recriao de cenrios de teste, pois com a distribuio da execuo do teste entre vrias mquinas evita-se gargalos tanto de processamento quanto de caminhos na rede do sistema sob teste.

7.2 Instalando o JMeter


1) Acesse o site http://jmeter.apache.org/download_jmeter.cgi para fazer o download da ferramenta; 2) Descompacte o arquivo em uma pasta de sua preferncia; 3) Localize o arquivo .jar jmeter>/bin/ApacheJMeter.jar; atravs do caminho <pasta

83

Automao de Testes 4) Execute o arquivo ApacheJMeter.jar com dois clique, pronto logo se abre a janela principal.

7.3 Componentes do JMeter


Um Plano de Testes para o JMeter um conjunto de elementos que descrevem uma srie de passos que sero executados. Assim, um teste bem definido geralmente incorpora vrios componentes do JMeter. Para adicionar, deletar, copiar ou mover um elemento (componente) de um script de teste, basta clicar com o boto direito do mouse sobre o elemento e escolher a opo desejada. Um componente tambm pode "conter" outro componente. Nesse caso, diz-se que um o "filho", o que est a uma hierarquia inferior, e o outro o "pai", que est em uma hierarquia superior a do filho e com o qual o filho est ligado. Na primeira figura exibida nessa unidade, por exemplo, o primeiro "Duration Assertion" filho da requisio nomeada de "Login", todos os elementos da mesma hierarquia ou inferior ao dessa requisio so filhos do Thread Group, que por sua vez filho do Test Plan. O JMeter possui vrios componentes que podem ser usados na criao dos testes. Essa sesso, entretanto, abordar apenas aqueles mais usados e diretamente ligados criao e execuo de testes automatizados para sistemas Web.

7.3.1 Elementos Bsicos


Os elementos denominados aqui como "Bsicos", so os componentes do JMeter que devem estar presentes em todos os testes criados/executados com ele. Os elementos referidos so: Test Plan: componente que representa o plano de teste; WorkBench: uma espcie de "rea de trabalho". Assim, todos os elementos que forem seu filho no sero executados: eles so utilizados apenas como rea de armazenamento temporrio, para a composio do teste; Thread Group: contm a configurao do grupo de usurios virtuais, onde cada usurio corresponde a uma thread que lanada e controlada pelo JMeter e que simula a navegao do usurio na aplicao sob teste.

Os dois primeiros elementos citados anteriormente esto presentes no script de teste desde o momento em que o JMeter iniciado. J o Thread Group deve ser adicionado manualmente. A primeira ao a ser feita aps a adio do Thread Group configurar o Test Plan, ilustrado abaixo.

84

Automao de Testes

Nele possvel definir um nome identificador para o Plano do Teste, adicionar comentrios, criar variveis globais, que so visveis por todas as requisies do plano de teste em questo, alm de permitir a definio de parmetros ou comportamentos comuns a todos os testes. Alm disso, o Test Plan contm duas caixas de seleo (checkbox): "Functional Testing", que se selecionada faz com que o JMeter grave os dados retornados do servidor para cada requisio feita. Essa opo interfere significamente no desempenho da ferramenta e, portanto, no deve estar marcada no caso de um teste de desempenho ou estresse. "Run each Thread Group separately", com o qual pode-se definir se os grupos de usurios virtuais sero executados simultaneamente ou sequencialmente.

85

Automao de Testes Como supracitado, o Thread Group, ilustrado na prxima figura, representa um grupo de usurios virtuais. Podemos ter vrios Threads Groups ligados ao Test Plan, e todos os outros elementos, com exceo do WorkBench, devem ser adicionados como filho de algum Thread Group.

Na criao de testes com o JMeter, aps configurar o Test Plan, o testador deve configurar o Thread Group, ou seja, deve definir suas propriedades. "Number of threads": o nmero de threads que executaro os testes, ou seja, o nmero de usurios virtuais. Cada thread ir executar o plano de teste de forma independentemente das outras threads que esto executando, por isso threads mltiplas so usadas para simular conexes concorrentes na aplicao sob teste; "Ramp-Up Period": define a frequncia de lanamento das threads. Se forem definidas 10 threads e um ramp-up de 100s, ento o JMeter levar 100s para iniciar todas as threads, ou seja, uma thread ser iniciada a cada 10s. "Loop Count": define quantas vezes o plano de teste ser executado. Logo, caso seja marcado o checkBox "Forever", o teste entrar em execuo infinta e o valor definido no Loop Count ser desconsiderado. "Scheduler": atravs do qual pode-se definir um horrio para o incio e trmino da execuo dos testes. Ao contrrio das citadas anteriormente, a configurao dessa propriedade opcional.

86

Automao de Testes

7.3.2 Sampler
Samplers so componentes que representam cada requisio que o JMeter far ao servidor quando o plano de teste for executado. No caso de um sistema Web, cada operao ou mudana de pgina corresponde a uma requisio. O JMeter contm vrios tipos de Samplers, como por exemplo, Requisies FTP, Requisies HTTP, Requisies JDBC, dentre outros. Cada Sampler contm vrias propriedades que podem ser configuradas. Como o objetivo deste artigo apresentar a automao de testes de desempenho e estresse para aplicaes web, apresentamos a seguir apenas a requisio HTTP. HTTP Request O HTTP Request permite o envio de requisies HTTP/HTTPS ou arquivos para um servidor Web. Na figura abaixo apresentamos um exemplo de um HTTP Request adicionado a um Plano de Teste.

Dentre as propriedades desse elemento podemos destacar: "Name": o nome da requisio; "Server": URL ou endereo ip do servidor Web;

87

Automao de Testes "Port": a porta a ser usada. Por default ela j est configurada como 80. "Protocol": define se a requisio HTTP, HTTPS or FILE (para enviar arquivo ao servidor); "Method": define o mtodo de submisso dos dados. Os principais mtodos so o GET, no qual os dados so enviados na prpria URL, e POST, onde os dados so enviados "ocultamente"na requisio, ou seja, no so visveis na URL; "Path": o path da pgina testada; "Send Parameters With the Request": no qual adicionamos todos os parmetros e os seus respectivos valores para serem enviados junto com a requisio;

7.3.3 Logic Controllers


Os Logic Controllers so usados para alterar a execuo do plano do teste. Com eles possvel, por exemplo, selecionar qual requisio ser enviada dentre um conjunto de requisies, repetir a execuo de requisies e executar requisies somente sob certas condies. Sero apresentados aqui os principais controladores lgicos: "Simple Controller", "Loop Controller", "Once only Controller", "Interleave Controller" e "If Controller". Simple Controller Os Simple Controllers so elementos que no causam nenhuma alterao na execuo dos testes, sendo utilizado somente para organizar a rvore do plano de teste. Com ele o usurio pode agrupar Samplers e outros elementos de forma a deixar o teste mais organizado e inteligvel. Uma ilustrao dessa situao pode ser visualizada na imagem abaixo, onde trs Simpler Controller so usados para agrupar as requisies de forma a permitir a fcil identificao de quais delas so executadas em cada um dos dois casos de uso, Login ou Usuario, do sistem sob teste.

88

Automao de Testes

Loop Controller O Loop Controller , imagem abaixo, o componente no qual possivel determinar quantas vezes um certo grupo de requisies deve ser executado. Esse elemento atua independentemente da propriedade "Loop Count"do Thread Group. Assim, se o plano de teste foi configurado para ser executado trs vezes e existe uma "requisio A"que est como filho de um Loop Controller configurado para ser executado 2 vezes, ento a requisio em questo ser executada 3 * 2 = 6 vezes.

89

Automao de Testes Once Only Controller O Once Only Controller, ilustrado na figura abaixo, permite que as requisies controladas por ele, assim como seus filhos, sejam executados uma nica vez por cada thread. Dessa forma, a requisio que est sobre o efeito desse elemento s ser executada na primeira iterao do teste. Testes que requerem um nico login para estabelecer a sesso podem ser criados utilizando uma requisio que faa o login como filho de um Once Only Controller. Assim, o login s executado apenas uma vez por cada thread.

Interleave Controller O Interleave Controller usado para alternar entre seus filhos a cada iterao, com base na ordem em que eles esto dispostos. No exemplo ilustrado na prxima imagem, apresentamos um teste que foi configurado para iterar duas vezes, tendo a seguinte sequncia de execuo: Requisio A, Requisio B, Requisio A, Requisio C.

O JMeter tambm possui o Random Controller, que similar ao Interleave Controller. A nica diferena entre eles o fato desse no alternar entre as requisies com base na ordem em que foram colocadas. O Random Controller simplesmente escolhe aleatoriamente um dos seus filhos a cada iterao.

90

Automao de Testes If Controller Com o If Controller possvel colocar uma condio que ser avaliada para definir se o seu filho vai ser executado ou no. No exemplo ilustrado na figura abaixo, a "requisio A"s ser executada se a varivel "var"tiver valor menor que 10. importante observar tambm como feita a referncia a variveis no JMeter: devemos utilizar o nome da varivel (var) entre chaves e precedida de cifro ($).

7.3.4 Listeners
Para visualizar os resultados dos testes necessrio adicionar um Listener ao plano de teste. Os Listeners capturam os dados das informaes durante a execuo dos testes e criam relatrios e grficos com os resultados obtidos. Alm de exibir os resultados, os listeners tambm possibilitam a gerao de um arquivo, que pode ser inclusive uma planilha eletrnica, contendo tais resultados. Existem vrios tipos de Listeners, mas apenas trs sero abordados a seguir : "View Results Tree", "Assertion Results" e "Graph Results". View Results Tree O View Results Tree um listener que mostra uma rvore com as respostas de todos os samplers, permitindo assim que o testador veja o resultado de cada sampler que foi executado. Atravs dele, o usurio tambm toma conhecimento do tempo gasto para obteno da resposta, alm de outras informaes associadas requisio, como por exemplo, a URL acessada e os parmetros enviados. Esse elemento tambm permite visualizar o resultado de vrias formas diferentes, como por exemplo, no formato texto, HTML ou XML. A figura abaixo ilustra a utilizao desse listener. A partir da figura podemos observar que esse Listener ideal para visualizar o que exatamente o usurio final deveria de acordo com cada requisio.

91

Automao de Testes

Assertion Results O Assertion Results permite uma visualizao do resultado das asseres que falharam. Alm de indicar qual requisio teve falha na assero, ele indica qual assero falhou (Response ou Duration), e o porqu da falha. No exemplo ilustrado na figura abaixo, por exemplo, ele mostra que o Response Assertion da "requisio A"falhou, pois ele procurou pela palavra "teste"e no a encontrou na pgina resultante da execuo dessa requisio.

92

Automao de Testes Graph Results O Graph Results, ilustrado na figura abaixo, gera um grfico que plota os tempos de todas as requisies, o desvio padro, a mdia e a taxa de requisies realizadas por segundo. O testador tem a possibilidade de optar por quais desses dados ele quer visualizar no grfico e esse Listener, assim como os outros, permite a indicao de um arquivo para exportar a visualizao gerada.

7.3.5 Configurations Elements


Os Configurations Elements so elementos que podem adicionar ou modificar dados das requisies. Os principais Configurations Elements utilizados em testes para aplicaes Web so o "HTTP Cookie Manager", usado para manter a sesso, e o "HTTP Request Defaults", para definir o servidor que ser usado por todas as requisies HTTP da sua hierarquia ou inferior.

93

Automao de Testes HTTP Cookie Manager Esse elemento, ilustrado na figura abaixo, pode ser usado de duas formas: sem preencher nenhum valor ou configurando o Cookie manualmente. No primeiro caso, esse componente guarda e envia os cookies como um browser e atua como se houvesse um Cookie Manager para cada thread. Isso quer dizer que aps o JMeter receber a resposta de uma requisio, se ela contiver um cookie, esse ser armazenado e enviado para as prximas requisies para o mesmo site. J no segundo, quando o testador adiciona manualmente um cookie, o Cookie Manager servir para compartilhar o mesmo cookie entre todas as threads.

HTTP Request Defaults Esse elemento permite a definio de propriedades para serem utilizados por todas as requsisies HTTP da sua mesma hierarquia ou e, uma hierarquia inferior. Se um teste contiver, por exemplo, 30 requisies para um mesmo site, ento elas provavelmente acessaro o mesmo servidor. Assim, ao invs de definirmos em cada HTTP Request o servidor, colocamos o endereo do servidor apenas no HTTP Request Defaults, ilustrado na figura abaixo, restando s HTTP Requests definir apenas os path e os parmetros das pginas testadas.

94

Automao de Testes

7.3.6 Assertions
Os Assertions permitem a validao das respostas recebidas do servidor que est sendo testado. Com as assertions, o testador obtm a certeza de que a aplicao est retornando o resultado esperado. Isso porque ela faz com que o JMeter procure determinado texto dentro do contedo retornado de uma requisio. Se o texto no for encontrado a assero falhar. Em testes para servidores Web, duas assertions so muito utilizadas: "Response Assertion"e "Duration Assertion". Response Assertion O Response Assertion faz com que o JMeter procure por um determinado texto, definido pelo testador, na requisio obtida como resposta. A procura por esse texto feito utilizando-se o sistema de expresso regular presente na ferramenta. Caso o texto no seja encontrado, a assero falhar e aparecer no Assertion Results em vermelho, aparecendo destacado no View Results Tree, caso esses elementes estejam adicionados a um plano de teste. Na figura abaixo , por exemplo, temos uma Response Assertion que possui um nico objetivo, que encontrar a palavra "teste"na reposta da requisio a qual ele est associado.

95

Automao de Testes

Duration Assertion O Duration Assertion, ilustrado na figura abaixo, usado para definir o tempo mximo que o sistema tem para responder a uma requisio. Caso a obteno da resposta demore mais que o tempo definido, a assero falhar. Essa assertion muito utilizada, pois a partir dela podemos verificar o atendimento a um dos principais requisitos de desempenho: o tempo de resposta das requisies.

7.3.7 Timers
Por default, o JMeter envia as requisies das threads sem pausar um tempo entre elas. Isso significa que as requisies sero disparadas rapidamente, uma seguida da outra. Como os usurios sempre analisam os resultados obtidos antes de executar a prxima ao, Timers devem ser usados para simular paradas entre as requisies, tornando-as mais realistas. Existem vrios tipos de timers, mas para simplificar, apresentamos aqui apenas o mais simples deles, o "Constant Timer", ilustrado na figura abaixo. Esse timer define o tempo em milisegundos que cada thread deve aguardar entre as requisies.

96

Automao de Testes

7.3.8 Pre-Processors
Um Pre-Processor um elemento que executa certas aes antes da requisio ser enviada. Eles so utilizados para modificar caractersticas ou atualizar valores de variveis das requisies antes que estas sejam executadas. Dentre os Pre-Processors disponveis temos o Counter, ilustrado na figura abaixo, que representa um contador que pode ser referenciado em qualquer lugar do Plano de Testes. Ele pode ser usado, por exemplo, para colocar um valor nico em um certo campo em cada iterao. Para isso, basta colocar como valor desse campo uma string qualquer seguido da referncia varivel que contm o valor do contador, o "Reference Name"do contador. Suponhamos, por exemplo, que temos como parmetro de uma requisio, um campo com nome "login", cujo valor deve ser nico toda vez que essa requisio for executada. Uma possvel soluo seria acrescentar um contador, definir suas propriedades (valor inicial, vamor mximo, incremento, nome da varivel) e colocar "login${cont}", onde "cont" o nome da varivel do contador, como valor do campo "login".

97

Automao de Testes

7.3.9 Post-Processors
Um Post-Processor um elemento que executa uma ao depois que uma requisio executada. Geralmente eles so utilizados para processar os dados recebidos da requisio e os seus resultados so utilizados para modificar as requisies seguintes. Dentre os Post-Processors, destacamos o Regular Expression Extractor, ilustrado na figura abaixo, que permite ao testador extrair valores da resposta proveniente do servidor a partir de expresses regulares.

7.4 Criando testes de desempenho e estresse automatizados


Esta sesso tem por objetivo apresentar um pequeno exemplo de utilizao da ferramenta para a automao de testes de desempenho e estresse de um sistema Web. O objeto de teste referido uma parte de um gerador (sistema) de pginas Web para usurios leigos. A funo desse gerador tornar simples a criao de pginas, seguindo um formato prestabelecido. Os usurios do sistema podem criar menus laterais, notcias, destaques, usurios para administrar as pginas e links para outras pginas e arquivos. Esse sistema possui no total 8 casos de uso, mas iremos abordar aqui apenas o caso de uso Usurios, que corresponde as operaes de incluso, alterao, busca e remoo de um usurio desse sistema. Para iniciar a criao desse teste, primeira coisa a ser feita a insero do Thread Group e configurao do nosso Test Plan. Com base nos requisitos definidos para esse sistema, configuramos o teste para 100 usurios simultneos a serem disparados em 50 segundos. Tambm colocamos o teste para repetir por trs vezes, para assim confirmarmos os padres de comportamento do sistema, como por exemplo, a identificao de que certa operao sempre demora mais que o esperado. Para mantermos o teste organizado adicionamos quatro Simpler Controllers, cada um nomeado com a operao cujas requisies filhos iro realizar. O resultado pode ser visualizado na figura abaixo.
98

Automao de Testes

Em seguida, adicionamos os listeners, o View Resulsts in Tree e o Graph Results. E como os testes seriam todos para um mesmo servidor, acrescentamos tambm o HTTP Request Defaults, configurando-o com o endereo do servidor que ser testado e o HTTP Cookie Manager, pois para acessar o sistema preciso logar e necessrio manter a sesso do usurio logado para permanecer no sistema. O estado do Test Plan com essas cofiguraes ilustrado na figura abaixo.

Por fim, basta colocar as requisies que realizam as operaes, bem como as asseres para verificar o atendimento aos requisitos de desempenho. Primeiro criamos a
99

Automao de Testes requisio "Login", cuja funo fazer o usurio virtual logar na pgina. Como j tnhamos configurado o HTTP Request Default, s precisamos agora definir o path e os parmetros da pgina testada, que no caso da requisio "Login"so os campos login e senha. Existem caractersticas importantes que devem ser observadas nesse ponto. Em primeiro lugar, o path supracitado no qualquer path do sistema. O path em questo o path que tratar os dados provenientes da requisio. Logo, para a configurao correta, muitas vezes necessrio olhar o cdigo-fonte da pgina ou algum documento que tenha toda a configurao dela, a fim de descobrir qual pgina receber aqueles dados. Na pgina de login do usurio, por exemplo, verificamos que a pgina que trata os dados a prpria pgina que os recebe. Assim, o path dessa requisio o mesmo path onde o usurio insere os dados. Isso pode ser facilmente visualizado atravs do cdigofonte da pgina onde o usurio insere o login e a senha, ilustrado na prxima figura. Nele observamos que a ao do formulrio que recebe o login e a senha est em branco, concluindo ento que ela prpria recebe e trata o login e a senha.

Outro detalhe que merece ser mencionado est relacionado aos re-direcionamentos de alguns sistemas Web. No sistema utilizado neste trabalho, por exemplo, quando o usurio efetua a operao de login, o sistema redireciona para a mesma pgina, se o login falhar, ou para a pgina principal caso o login seja bem sucedido. O problema que se a opo Follow Redirects no estiver marcada, o JMeter no "seguir"esse redirecionamento e, portanto, continuar na mesma pgina para o qual os dados foram enviados. Assim, devemos desmarcar a opo Redirect Automatically, que no segue os re-direcionamentos que vem como resposta de uma requisio, e marcar a opo Follow Redirects. Alm disso, devemos colocar como mtodo de submisso aquele utilizado pela pgina (GET,POST,...) e adicionar os parametros necessrios. No nosso exemplo, a partir do cdigo-fonte, ilustrado na fugura anterior, identificamos que o mtodo utilizado o POST e observamos que os campos necessrios no eram somente "login"e "senha".
100

Automao de Testes Para o correto funcionamento da requisio necessrio colocar tambm o campo "enviado". Isso porque os campos hidden so usados pela pgina para identificar a submisso de dados, logo so campos necessrios para a execuo da operao requisitada. Nesse caso devemos preencher os valores respectivos dos campos login e senha, colocando tambm o valor do campo "enviado"como sendo o valor definido na sua propriedade value, ou seja, o valor "ok". Como resultado de todas essas configuraes, o login foi bem sucedido, como visto na figura abaixo.

Como basta um login para cada usurio virtual, colocamos a requisio de login como filho do controlador Once Only Controller. Continuando a automao do teste, inserirmos uma Response Assertion, para nos certificarmos que a pgina alvo foi alcanada e um Duration Assertion, para medirmos o tempo gasto para responder a essa requisio. Por ltimo, devemos criar as outras requisies seguindo os mesmos passos: descobrindo o path, colocando os campos, o mtodo, adicionando um duration e um response assertion. Feitas todas as requisies, notamos que algumas asseres da requisio de Insero de Usurio falhavam. Observamos ento que isso acontecia porque na insero de Usurio o campo "login", que nesse caso era o nome de login do usurio, deveria ser nico para cada usurio. Adicionamos ento um Count, e modificamos o valor do campo login para usuario${cont}, em que "cont" o nome da varivel que contm o valor do contador. Isso significa que durante a execuo desses testes estamos inserindo usurios com os logins usuario1, usuario2, usuario3, etc, ou seja, criaremos um login nico para cada

101

Automao de Testes usurio. Feito isso, temos agora um teste automatizado de desempenho e estresse para o caso de uso Usurio, teste esse visualizado na figura abaixo.

Alm da construo dos testes, a anlise dos seus resultados importante para se identificar as reas crticas do sistema. Os resultados da execuo do nosso exemplo, em forma de grfico, podem ser visualizados na prxima imagem. Com esses dados, aliados aos resultados exibidos no View Results Tree, adicionado ao plano de teste, podem ser utilizados pelo testador para avaliar sobre o atendimento da aplicao aos requisitos de desempenho existentes.

102

Automao de Testes

103

Automao de Testes

Unidade 8 Teste funcional com Badboy


Uma ferramenta para automao de testes fcil de usar. O aplicativo grava tudo o que o usurio faz na pgina web como requisies, parmetros, alerts, etc.. possvel alterar parmetros das pginas que esto sendo testadas, efetuar asseres por texto (simples ou HTML). A seguir, abordaremos a estrutura bsica do BadBoy e suas principais funcionalidades.

8.1 Como instalar o BadBoy?


Acesse o site da ferramenta atravs do endereo: http://www.badboy.com.au/. A figura apresenta a pgina principal do aplicativo, veja:

No menu esquerda, clique em DOWNLOAD para baixar o software. Nesta primeira parte, a pgina da ferramenta Badboy informa aos usurios, que a mesma est

104

Automao de Testes disponvel gratuitamente. Mas, necessrio verificar o contrato de licena antes de baixar o aplicativo. O Cadastro para baixar o software solicitado, mas toda a informao opcional, voc poder pular esta etapa clicando no boto (Continue >>).

Ateno: Esta etapa opcional. O download da verso 2.1.3 recomendado para novos usurios. Mas, voc pode optar por baixar verses mais antigas que esto mais estveis, ou ainda, as verses beta que tm caractersticas melhores, mas no so to bem testado. Abaixo as verses que se encontram disponveis:

105

Automao de Testes

Ao clicar no link Download, a janela exibida na figura abaixo abrir automaticamente, observe:

O prximo passo clicar novamente no boto <Download> para baixar o arquivo de instalao do aplicativo. Na sequncia, o usurio visualizar um feedback (retorno da informao) de que o software est sendo salvo em um diretrio do seu computador. Normalmente, os arquivos so direcionados para a pasta Downloads, no caminho C:\Downloads.

106

Automao de Testes

Para prosseguir com os procedimentos de instalao, clique duas vezes no arquivo BadboyInstaller-2.1.3.exe. Caso voc estiver baixando o software atravs do Sistema Operacional Windows, a janela ser mostrada na tela:

A figura abaixo apresenta a tela em que o usurio deve aceitar a licena da ferramenta BadBoy para fazer uso das funcionalidades do software. Para continuar com a instalao, clique no boto em destaque abaixo:

107

Automao de Testes A prxima imagem exibe o caminho em que a ferramenta est sendo salva, bem como o diretrio que conter o arquivo executvel:

Ao clicar no boto <Install>, o usurio visualizar a janela que mostra a extrao dos arquivos do software.

Em seguida, abre-se uma tela perguntando ao usurio se o sistema pode adicionar o aplicativo aos Programas do seu computador.

108

Automao de Testes

Para finalizar a instalao da ferramenta BadBoy, clique no boto <Close>.

Caso a ferramenta no abrir automaticamente aps voc finalizar a instalao, acesse menu >> Todos os programas, e selecione o programa BadBoy, conforme o cone em destaque:

Essa ser a tela principal a ser exibida:

109

Automao de Testes

8.2

Conhecendo o BadBoy

8.2.1 Gravando Como o Badboy trabalha no conceito de Record-and-Play (gravar e executar), voc percebe que logo que iniciamos o programa o modo gravao j est ativo, a fim de capturar todas nossas aes nas iteraes das pginas web. Podemos ativar ou desativar a gravao pelo boto Record:

110

Automao de Testes

Sabemos que o mesmo est ativo quando o boto pressionado palavra recording no ttulo do programa como na imagem acima.

ou quando h a

Ento sempre que voc quiser parar uma gravao necessrio clicar sobre o boto Record ou sobre o boto Stop Playing conforme abaixo:

8.2.2 Criando testes Aqui no badboy h distino entre Test Suite (Suite de Teste), Test (Teste) e Step (passo). Essa separao facilita no agrupamento de funcionalidades. Um Test Suite a maior o maior na hierarquia, sendo de certo modo o nosso caso de teste, agrupando diversos Tests e diversos Steps. Um Test pode ser utilizado como um agrupador de funes executadas cque possuam relao entre si, como por exemplo, Efetuar login sendo que cada Test pode ter uma ou mais iteraes. Um Step uma ao do sistema, geralmente cada ao de requisio tratado como um passo. Por exemplo: toda vez que clicamos e algo, seja um boto ou link numa pgina web ele gera uma requisio. Assim que entramos no Badboy a estrutura bsica da rvore de Script, exibe a organizao como Test Suit, Test e Step:

8.2.3 rvore do script


A rvore exibe toda a iterao que temos no sistema web, o qual estamos executando.
111

Automao de Testes

A figura acima mostra um script que foi criado para pesquisar o site da Alfamdia no site Google. Executando Para executarmos os scripts de testes tremos de utilizar os botes localizados na barra de ferramentas, ou clicando com o boto direito sobre o Test Suite, Test, ou Step desejado.

112

Automao de Testes

H duas formas de executarmos os scripts: passo-a-passo ou execuo contnua. Para executarmos o passo-a-passo temos de clicar no boto [Play] ou se for execuo contnua temos de clicar em [Play All]. Play executa o conjuntos de Tests (para execuo e verficao) do browser, para seguir com a execuo basta clicar em [Play] novamente. Play All Rewind executa todo o script sem esperar pela verificao do browser. volta um estado de execuo. executa somente o resquest selecionado.

Play Single Request

8.3 Vamos gravar nosso primeiro script?


Abra o badboy, ser exibia a tela inicial. Perceba que o boto de [Record] j iniciou em modo ativado. Clique duas vezes sobre o item TestSuite1, ser exbida a pop-up Documentation . No campo Name for this item preencha com <Pesquisando Alfamdia no Google>, se quiser pode inserir uma descrio mais detalhada no campo abaixo deste.

113

Automao de Testes

E Test1 repita o mesmo processo com um nome de sua escolha. Em Step, clique duas vezes sobre ele, ser exbida a pop-up Documentation . No campo Name for this item preencha com <Acessando o Google>. Na barra de URL informe o endereo: www.google.com.br e clique em [Enter]. Uma request ser criada contendo www.google.com.br e uma response associada com o tempo de carregamento.

114

Automao de Testes

Na barra de ferramentas clique no boto [Create new step] , ser criado um novo step chamado Step2. Altere o nome deste para <Preencher a caixa de pesquisa com "Alfamdia"> . N pgina do Google informe Alfamdia e clique em [Pesquisa Google] . Uma request ser criada contendo /search, juntamente a uma response e vrios outros parmetros.

Crie outro Step e chame-o de < Verificar a existncia desta palavra>. Selecione o texto na gina do Google conforme abaixo:

115

Automao de Testes

V na barra de ferramentas e clique no boto [Create Easy Assertion] . Na revore do script de test ser criado um item Check for text, clique duas vezes sobre ele e altere o valor de Action para <Mark as Failed>.

Essa assero verificar se existe a palavra Alfamdia na pgina do Google, caso no existe o badboy marca como falha e continua a execuo do script.

116

Automao de Testes Crie um novo step e coloque seu nome como < Clicar em "Alfamdia">, clique no link da lista de resultado de busca do Google ode esteja o da Alfamdia. Ser criado um request para o site da Alfamdia.

Na barra de ferramentas clique em [Save] Pronto, gravamos nosso primeiro script.

e salve com o nome e local que desejar.

117

Automao de Testes

8.4 Automatizando o script


8.4.1 Request Mode
Neste mtodo o Badboy registra as solicitaes HTTP que so enviados do navegador para o servidor, incluindo todos os seus parmetros e outras informaes. Em um sentido simplista, voc pode pensar sobre requests simplesmente como URLs, como o endereo de sua pgina web. H vantagens que utilizam este modo: Requests so independentes do layout e aparncia das pginas da web que voc est testando. Isto significa que se o layout das pginas web muda seu teste continuar a funcionar. Requests funcionam perfeitamente com Badboy em testes de carga. que tambm podem ser exportados para o JMeter para fazer testes de carga e stress. Embora o Badboy possa carregar pginas de teste usando Navegaes, eles no funcionam to eficientemente - por isso, se voc precisa fazer o teste de carga em nveis mais elevados, registrando seus testes com requests podem funcionar melhor.

No entanto, existem tambm algumas desvantagens importantes: Em alguns casos, os requests podem ser mais difceis de se trabalhar. Isto porque os requests substituem completamente as informaes enviadas da pgina web para o servidor com as informaes HTTP gravadas. s vezes, as pginas web colocam informaes na pgina que tem de ser especialmente calculado toda vez que um usurio vai para a pgina. Nesse caso, os requests precisam ter seus parmetros alterados para usar variveis depois de grav-los. Enquanto Requests so independentes do layout e da aparncia, s vezes isso pode ser uma desvantagem. Por exemplo, imagine que voc edite uma pgina e apague acidentalmente o boto de "logon". Voc provavelmente gosta que seu teste falhe para que voc possa encontrar e corrigir o problema. No entanto, quando voc usa requests isso no vai acontecer! Em vez disso, o Badboy vai jogar a solicitao da mesma forma, independentemente de o boto de logon est l ou no. Claro, voc pode verificar explicitamente se o boto de incio de sesso est l usando um Assertion, mas para isso voc teria que criar a assero de antecedncia - que seria muito trabalhoso para verificar cada item que voc gravar dessa maneira. Em vez disso, o modo de navegao pode ajudar a superar este problema.

8.4.2 Navigation Mode


Neste mtodo o Badboy ir gravar qual elemento navegador que voc clicou. Quando voc reproduzir, em vez de repetir a solicitao HTTP que foi enviada anteriormente, o Badboy vai encontrar o elemento navegador original que voc clicou quando a gravao simular um clique sobre ele. Este mtodo tem as seguintes vantagens:
118

Automao de Testes Em algumas pginas muito mais fcil de se trabalhar. Isto especialmente verdadeiro para pginas complexas, tais como pginas de logon. A razo que a navegao repetir a interao com o navegador e deixar o navegador fazer o trabalho de criao do request. Porque navegaes explcitas exercitam a interface do usurio que so muito melhores para os problemas que travam caso a interface esteja quebrada. No exemplo acima, para o mtodo de request, se voc tivesse gravado o seu boto de "logon" como navegao o teste seria um fracasso se algum tivesse apagado o boto da pgina. A principal desvantagem do modo de navegao que muitas vezes voc no pode usar este modo para a execuo de testes de carga. Isso ocorre porque o mecanismo de teste de carga executado sem exibir qualquer interface de usurio, e, portanto, no pode executar Navegaes. Outra desvantagem que os seus testes depender dos itens estarem presentes e corretos na interface utilizada para o trabalho. Assim, se o seu objetivo principal apenas para testar se a funcionalidade do seu site funciona sem se preocupar com a interface do usurio, o modo de request pode ser melhor.

A diferena entre estes dois modos muito importante. A escolha que voc faz na gravao ter um grande efeito sobre a forma como seus scripts se adaptaro s mudanas em seu site.

8.4.3 Navigations
Navigations so um tipo de item no Badboy, que registra cliques ou ativao de elementos de interface do usurio na janela do navegador. Quando voc gravar uma navegao, ele encontra o elemento browser que foi clicado (ou navegou de outra forma, por exemplo, clicando em espao ou entrar) e se recorda dele. Quando voc reproduz, o Badboy encontra o mesmo elemento e simula novamente um clique sobre ele para que o navegador execute a mesma navegao novamente.

8.4.4 Gravando navegaes


Por default, o Badboy registra os requests em vez das navegaes. No entanto, voc pode facilmente alternar entre os modos de gravao a qualquer momento. Voc pode fazer isso atravs dos seguintes mtodos: Clique no 'N' boto na barra de ferramentas para alternar entre os modos; Pressione Ctrl+Alt+N para alternar entre os modos de navegao; Para alternar entre os modos durante a gravao de apenas um nico item basta segurar as teclas Ctrl+Alt pressionadas enquanto clica ou navega na pgina. Isso ir alterar o modo de gravao enquanto mantiver as teclas pressionadas.

119

Automao de Testes

8.4.5 Tipos de itens de navegao


O Badboy ir gravar diferentes tipos de itens de navegao em seu script, dependendo do tipo de elemento que voc clicar e tambm como esse elemento representado na pgina que voc est gravando. A tabela abaixo mostra os trs diferentes tipos de item que voc vai ver:

Tipo de Navegao

Descrio
Representa um clique em um link. Isto pode ser qualquer tipo de ligao, incluindo um link de imagem ou de outro contedo no textual. Um clique sobre um boto. Estes so geralmente botes em formulrios, tais como botes de envio. Um clique sobre um item diverso na pgina. Freqentemente estas ocorrem quando na pgina foi utilizado um JavaScript para responder a "onclick" cliques em elementos da pgina que gera numa navegao de pgina ou um envio de formulrio.

8.4.6 Referncias de navegao


Pginas da Web podem mudar frequentemente de forma bastante significativa em seu layout, tamanho e forma, e muitas vezes podem ter vrios elementos que so semelhantes ou se parecem o mesmo. Devido a isso, o Badboy utiliza maneiras diferentes de identificar os elementos, a fim de assegurar que ele encontrar o correto e que foi originalmente registrado na reproduo. A informao que o Badboy utiliza para identificar o elemento chamada de "referncia". Quando voc grava um clique em um elemento, o Badboy usa a seguinte lgica para encontrar uma referncia para ele: Se tem um id, ento ele ir gravar o id do elemento; Se ele tem um nome nico atribudo, ento ele ir gravar o nome; Se for um link ou um boto e tem texto visvel (como o rtulo do boto), ento ele vai gravar o texto e identificar o item por meio do texto. Se no for nenhum dos outros mtodos de aplicao, ento ele vai identificar o elemento pela sua posio browser DOM, usando uma expresso JavaScript.

120

Automao de Testes

8.4.7 Propriedades de navegao


Se quiser, voc pode abrir as propriedades de navegao e definir as informaes de referncia a si mesmo. A figura abaixo mostra como o dilogo de propriedades parece:

A tabela a seguir descreve as propriedades diferentes que voc pode definir:

Propriedade
Element Reference

Descrio
Isto identifica o elemento a ser navegado. Como este ser interpretado depende do tipo de referncia.

121

Automao de Testes Determina como o texto de referncia usado. For Visible Text, a referncia interpretado como o rtulo ou o contedo da pgina visvel que as exibies de elementos (por exemplo, o contedo exibido por um link, o texto em um boto ou uma dica de ferramenta que descreve o item). For Id/Name, a referncia interpretado como um ID ou conjunto nome no elemento a ser navegado. Se voc escolher "JavaScript Reference", o Badboy ir executar o texto como JavaScript que deve retornar o item a ser navegado. Voc pode usar isso para escrever uma lgica mais complexa para encontrar o elemento a ser navegado.

Element Type

Define o tipo de elementos que devem ser considerados para combinar o texto de referncia. Isso ajuda a garantir Element Filter que o Badboy escolher o elemento correto por triagem, fora todos os elementos que no combinam com o filtro. Voc pode escolher "Links", "Buttons" ou "All Elements". Faz com que o Badboy utilize a ocorrncia especificada do elemento correspondente na pgina. Por exemplo, se houver trs botes chamados 'Sair' na pgina, voc pode fazer o Badboy usar o terceiro, especificando "2" na propriedade Index Index. Note que esta propriedade default "0", assim que a primeira ocorrncia (o padro) for especificado usando o "0" e o segundo especificado usando "1" e assim por diante. Use Regex Match Faz com que a navegao trate a referncia como uma expresso regular durante a tentativa de combinar elementos da pgina. Isso til quando elemento que deseja acessar muda a cada execuo. Esta opo s se aplica ao "Visible Text Reference" tipo de referncia.

Se voc tiver problemas na sua navegao para localizar o elemento certo, voc pode clicar sobre a navegao e escolher "Highlight Element" para mostrar qual elemento na pgina ser o alvo. Se ele atinge o caminho errado, ento voc pode incrementar a opo "Index" nas propriedades para encontrar o prximo item na pgina at encontrar o elemento correto.

8.4.8 Variveis
As variveis so uma caracterstica fundamental do Badboy. Elas permitem que voc personalize itens de script como so reproduzidas em tempo de execuo, de modo que voc possa criar scripts que se comportem de forma inteligente em vez de simplesmente

122

Automao de Testes repetir a mesma ao e outra vez. Esta seo descreve como voc pode adicionar e usar variveis em scripts do Badboy.

8.4.9 Adicionando Variveis


H vrias maneiras de adicionar variveis no Badboy. Primeiro, voc pode adicion-las diretamente clicando na janela varivel no canto inferior esquerdo da tela. A fim de fazer a adio de variveis o Badboy oferece duas formas mais fceis de se de fazer isso: Clique com o boto direito do mouse em um parmetro na rvore de script e selecione "Add as Variable ..." ou "Add Linked Variable". A primeira delas ir simplesmente adicionar uma varivel com o mesmo nome que o parmetro. O segundo ir adicionar uma varivel e procurar o valor em todos os outros parmetros no script, ligando todos os parmetros com o mesmo valor da varivel a ele. Use a opo no menu "Tools > Create Hostname Variable". Este especificamente para a criao de uma varivel para controlar o nome do host de todos os seus requests.

8.4.10 Variveis de visualizao


Voc pode ver todas as variveis que voc adicionou ao seu script na aba Variable. Este ponto de vista um guia na visualizao de resumo que normalmente no canto inferior esquerdo da janela do Badboy (embora voc pode mov-lo arrastando-o). A figura abaixo mostra como a aba Variable mostra:

123

Automao de Testes

8.4.11 Editar Variveis


Editando o valor de uma varivel pode ser realizada atravs da abertura de sua janela de propriedades - basta clicar sobre a varivel e selecione "Propriedades".

8.4.12 Usando variveis


Voc pode usar variveis quase em qualquer lugar que voc possa inserir um valor no Badboy. Para usar uma varivel, se referam a ela, colocando-a dentro de chaves com um cifro na frente. Por exemplo, para usar uma varivel "foo", voc pode definir um campo no Badboy ser "$ {foo}". Tambm possvel usar uma varivel incorporado no meio de outro texto. Por exemplo, se uma varivel chamada de "animal" e tem um valor "sapo", ento eu posso fazer uma frase "o $ {} verde", usando a varivel. Quando Badboy desempenha seu script que ir substituir os valores das variveis em que voc colocar referncias de variveis.

8.4.13 Varivel lista de valor


Variveis no Badboy tem dois componentes: O valor atual (este o valor que usado quando a varivel avaliada em seu script); Uma lista de valores futuros; Voc pode definir a lista de valores que uma varivel tem abrindo a janela de propriedades da varivel (duplo clique no aba varivel ou clique direito e selecione "Propriedades"). Quando voc faz isso, voc pode adicionar uma lista de valores para a varivel. Se voc quer fazer uma expresso que se refere a um determinado valor em uma lista varivel de valor, ento voc pode colocar o ndice do valor entre colchetes aps o nome da varivel. Por exemplo, $ {animal [3]} remete para o quarto valor na lista de valores para o "animal" varivel. (Note que os valores das variveis so numeradas a partir de zero!).

8.4.14 Variveis de Incremento


Uma forma poderosa de usar variveis torna-se evidente quando voc combin-os com os "incrementos". Incrementar significa simplesmente alterar o valor de uma varivel para um novo valor, com base em uma estratgia que voc pode especificar. Por padro, o Badboy vai olhar primeiro para o prximo valor na lista de valores variveis. Se a varivel no tem uma lista de valores definidos em seguida, ela s vai atribuir um valor aleatrio para a varivel.

124

Automao de Testes

8.4.15 Assertions/Asseres
Testar um site pode ser uma tarefa frustrante tediosa e montona. O Badboy ajuda a facilitar essa tarefa, automatizando a reproduo de scripts de teste, mas voc ainda vai adoecer de ver cada tela, para ver se funcionou da forma esperada. Voc pode se perguntar, no poderia o Badboy ajudar com isso tambm? Este o lugar onde Asseres entram em jogo.

8.4.16 Forma como as Asseres funcionam


Asseres so maneiras que voc pode dizer ao Badboy para executar verificaes automticas a fim de certificar-se de que o seu site est funcionando como voc espera. Voc pode pensar em uma assero como uma "declarao de verdade" algo que diz que verdade sobre o seu site. Se voc fizer esta declarao, o Badboy pode ter certeza que verdadeiro e avisar caso ele no seja. Assero no Badboy so feitas de duas partes: O item de declarao em si - descreve como verificaes so executadas e o que fazer quando eles falham; Checks - estes so itens que so adicionados como filhos da assero e examinar aspectos diferentes da pgina ou o script para determinar se a sua assero passa ou falha.

8.4.17 Adicionando Asseres


Voc pode adicionar uma assero em qualquer lugar em seu script apenas arrastando uma da caixa de ferramentas. Uma nova assero adicionada ao seu roteiro aparece como um smbolo de interrogao como mostrado abaixo:

O ponto de interrogao indica que a assero no foi testada ainda. Quando a assero executar, ir mudar para um carrapato ou uma cruz, dependendo se a assero encontrou para ser verdadeira.

125

Automao de Testes

8.4.18 Checks
Uma assero por si s no ir verificar nada e sempre passar - voc precisa adicionar Checks a partir da caixa de ferramentas para ele descrever as propriedades da pgina a ser verificada. Existem vrios tipos diferentes de itens de Checks que Badboy suporta. A tabela abaixo mostra alguns dos tipos diferentes:

Nome
Content Check Response Check Color Check

cone

Descrio
Verifica a presena de algum texto na pgina. Verifica caractersticas de tempo de resposta e tamanho Verifica cores especficas na pgina. Voc pode especificar uma gama de cores e localizao aproximada para permitir pequenas variaes. Verifica o resumo das informaes para itens no script. Por exemplo, ele pode verificar o nmero de vezes que um item foi executado, havia erro ou expirou. Executa JScript que voc forneceu e passa ou no a assero com baseando se o JScript retorna "verdadeiro" ou "falso". Verifica o valor de uma varivel para ver se ele corresponde a uma expresso regular que voc forneceu. Procura por uma janela com a legenda que voc especificar e, opcionalmente, olhar para uma janela filho (como um boto, um campo de texto, caixa, etc) com o texto especificado. Esta verificao no corresponde texto no contedo da web, apenas em janelas nativas.

Summary Check

JScript Check Variable Check

Window Caption Check

8.5 Salvando e entendendo o resultado do script


Quando reproduzir o seu script, o Badboy trar as estatsticas de registros sobre cada pgina executada, assim voc pode acompanhar o progresso e rever o que aconteceu. O Badboy torna possvel ver rapidamente essas informaes sobre qualquer item em seu script atravs da Summary View.
126

Automao de Testes

8.5.1 Summary View


O Summary View uma exibio com abas que exibida por padro no canto inferior esquerdo da janela principal do seu Badboy A figura abaixo mostra como fica:

A tabela a seguir explica os nmeros que so mostrados no resumo:

Statistic
Played Succeeded Failed Assertions

Description
O nmero de itens de script que executou e retornou uma resposta. O nmero de itens de script que executou e retornou uma resposta bem sucedida. O nmero de itens de script que executou e retornou uma resposta de erro
O nmero de asseres que falharam.

Warnings

O nmero de Warnings gerados. Os Warnings so problemas que ocorrem durante a execuo que no a impedem de concluir, mas podem indicar problemas com o script ou o seu site. Por exemplo, se uma pgina vivencia erros de JavaScript, ou se um Form Populator executa mas no consegue encontrar o formulrio especificado ento warnings sero registrados como parte da resposta para cada item.
O nmero de Timeouts que ocorreram.

Timeouts

Avg Time (ms) A mdia de tempo em milissegundos para itens que executaram e receberam uma resposta. Max Time O tempo mximo para qualquer gravao individual que teve (ms) resposta.

8.6 Ferramentas
Usando Data Sources

127

Automao de Testes Aplicaes sofisticadas podem precisar testar o mesmo script usando uma srie de valores de a sua entrada. Por exemplo, voc pode querer testar todas as condies de limite para uma operao , o que acontece quando algum pedir quantidades de 0, 5, 10, 1000 de um item em particular? Fazer este tipo de operaes em que voc deseja executar o mesmo script ao longo de muitos valores diferentes para um parmetro (ou varivel) muito fcil ligando seus scripts a uma fonte de dados como um arquivo de banco de dados de planilha ou texto. O Badboy suporta a leitura de valores para as variveis atravs de duas tcnicas diferentes: Usando uma ferramenta Setter varivel da caixa de ferramentas; Utilizar fontes de dados ODBC para ler diretamente a partir de um banco de dados ou planilha; Esta seo descreve a segunda dessas opes: como voc pode conectar o Badboy diretamente a uma fonte de dados, como um banco de dados ou uma planilha. Isto significa que se voc configurar uma fonte de dados ODBC (que pode ser qualquer coisa desde um banco de dados Oracle a um arquivo de texto separado por vrgulas), ento o Badboy pode ler valores de variveis a partir dele e quando as variveis so incrementadas no seu script ele ir percorrer os valores em sua fonte. Isso ajuda a utilizar um arquivo do Excel como um exemplo - mas lembre-se que voc pode usar qualquer fonte ODBC. Outra forma de ler os dados do Excel primeiro exportar os dados da planilha no formato CSV selecionando o Arquivo > Salvar como, e em seguida, escolher CSV como o formato de arquivo em Excel. Uma vez exportado como CSV, voc pode ler dados em suas variveis usando o "contedo do arquivo" opo em uma ferramenta de Variable Setter. Por padro O Badboy requer fontes de dados para satisfazer determinados requisitos. (Nota:. Voc pode mudar ou evitar esses requisitos, se voc souber escrever SQL para sua fonte de) 1. Todos os valores para todas as variveis devem aparecer em uma nica tabela; 2. A tabela deve ter ttulos de colunas que correspondem aos nomes de variveis que voc deseja ler; 3. Os valores para as variveis devem aparecer nas colunas correspondentes; 4. Opcionalmente, pode incluir uma coluna chamada "SEQ". Se esta coluna existe, ento ele ir ser usada para ordenar os valores que sero lidos a partir da fonte de dados. Deve ser um tipo de dados classificveis (valores inteiros so sugeridos). Note que, se a coluna no existe, ento no h garantia sobre a ordem na qual os valores sero usados. Aqui mostraremos como um exemplo de planilha Excel pode satisfazer esses critrios:

128

Automao de Testes

Isso mostra como voc poderia criar um arquivo do Excel para carregar os valores para as variveis "Pieces" e "weight". Note que todos os nomes so case sensitive, e que em alguns casos o ODBC pode converter os nomes para upper case, sem pedir a voc. Voc vai precisar experimentar com sua fonte de dados para fazer isso direito. Adicionando Data Source Data source so configurados no Badboy, adicionando os itens "data source" da sua caixa de ferramentas em seu script. A imagem abaixo mostra como um item de Data Source exibido depois de adicionar a um script:

Quando voc adicionar um item de Data Source para o seu script voc ter como escolher todas as fontes de dados ODBC em seu sistema. Alguns Data Source devem ser definidos com antecedncia usando o painel de controle do seu computador (a partir do menu Iniciar, escolha Configuraes> Painel de controle > Ferramentas Administrativas > Fonte de Dados (ODBC) (depende da verso do windows) . Outras fontes de dados, como por exemplo arquivos do Excel, podem ser acessados diretamente do Badboy. Para arquivos do Excel deve haver uma "Excel Files" na opo do menu drop-down (voc deve ter o Excel, juntamente com seus drivers ODBC instalados). Selecione esta opo e o Badboy ir ler o arquivo e mostrar as planilhas dentro. Voc deve ento selecionar a planilha a partir da qual voc gostaria que Badboy carregasse os valores. Depois de ter selecionada a planilha, no Badboy, voc voltar para a pgina de Data Source Properties onde voc pode selecionar outras preferncias para como que dados devem ser carregados. O diagrama abaixo mostra a pgina de propriedades para configurar uma fonte de dados:

129

Automao de Testes

Um cenrio muito comum carregar valores de uma fonte de dados e, em seguida, repetir uma etapa para cada linha de valores na fonte de dados. O Badboy faz isso com uma forma muito fcil de fazer, usando as propriedades de looping de Step. Voc pode fazer isso tomando as seguintes aes: Adicionar a fonte de dados para o seu script para carregar os dados; Aps a fonte de dados, adicionar um novo Step; Coloque as aes que voc deseja que ocorra para cada linha do conjunto de dados para o novo Step; Execute a fonte de dados uma vez para carregar as variveis;

130

Automao de Testes Ajuste a nova etapa dar um loop sobre uma das variveis carregadas por sua fonte de dados; Quando tiver terminado, seu script seria algo parecido a figura abaixo:

8.7 Badboy em linha de comando


Se desejar, voc pode executar a verso completa grfica de Badboy a partir da linha de comando (por exemplo, a partir de um prompt de comando ou em um script em lotes). Para fazer isso, basta colocar o diretrio de instalao Badboy em seu sistema varivel de ambiente PATH. Ento voc pode executar badboy como: badboy Se voc deseja abrir um script chamado "myscript.bb", ento voc pode dar a ele como um argumento: badboy myscript.bb H uma srie de opes que voc pode usar para carregar e executar scripts de diferentes formas a partir da linha de comando.

Flag de Linha de Comando


/play /playAll /autoExit /D <name>=<value> /nosplash

Descrio
Inicia o script aps abrir o documento. Reproduz inteiro depois de abrir o documento, sem parar em Passos. Provoca o Badboy para sair automaticamente quando chega ao final do script. Define uma varivel para o script para usar. Exemplo: badboy /D foo=bar myscript.bb Previne a tela inicial que est sendo mostrado na inicializao.

131

Automao de Testes

8.8 Usando Badboy com AJAX


Muitos sites modernos e os aplicativos usam uma tcnica conhecida como "AJAX" para atualizao de contedo em uma pgina em segundo plano, sem atualizar a pgina. O Badboy projetado para suportar gravar e reproduzir este tipo de aplicao. Esta seo explica como o Badboy lida com pginas web AJAX e d algumas dicas para a criao de testes de sucesso.

8.8.1 Entendendo as requisies Ajax


Requisies de AJAX diferem em aspectos importantes de requisies regulares. O aspecto mais importante de requisies de AJAX que elas no provocam diretamente no navegador web para carregar uma nova pgina quando terminar. Em vez disso, quando as requisies AJAX concluem elas chamam uma funo JavaScript existente na pgina que lanou a requisio AJAX. Essa funo JavaScript pode fazer todos os tipos de coisas - pode atualizar a pgina dinamicamente, definir variveis de JavaScript, preencher formulrios na pgina - que pode at lanar mais requisies AJAX ou provocar um carregamento de pgina real para ocorrer.

8.8.2 Gravao de pginas AJAX no Request Mode


Quando voc gravar no request mode, o BadBoy detecta e registra requisies de AJAX diretamente em seu script. Requsisies AJAX so semelhantes a requisies regulares, mas elas so de cor cinza. A tabela abaixo mostra como as solicitaes AJAX aparenta em relao s requests normais: Reproduzindo requisies AJAX Por causa da natureza diferente de requisies de AJAX, o Badboy as reproduz de forma diferente para requisies normais. O Badboy envia a requisio de AJAX para o servidor, mas no chama o JavaScript subseqente tratado para a requisio original. Essa importante diferena significa que quando o Badboy desempenhar uma requisio de AJAX, voc no pode ver a tela de atualizao como o faz quando a mesma ao acontece manualmente. No entanto o que aconteceu foi que o servidor web tenha processado o pedido e agora cr e se comporta como se a pgina esteja atualizada. Como as atualizaes podem estar faltando na tela depois de uma requisio de AJAX executada, voc pode no ser capaz de usar assertions que verificam o contedo da pgina para verificar se a requisio de AJAX conseguiu.

132

Automao de Testes Voc pode se preocupar que o teste ento, no funciona corretamente porque a atividade posterior causada por uma requisio de AJAX no executada. No entanto, este no geralmente problemtico pois o Badboy registrou todas as interaes com o servidor web: se a requisio de AJAX passou a fazer outra requsio de AJAX ento o Badboy ter registrado a requisio posterior e vai reproduzi-la novamente. Por outro lado, se a requisio de AJAX realmente chamou um carregamento de pgina, ento Badboy ter registrado tambm. Assim, embora possa haver casos em que a interface de usurio no refletem as atualizaes causadas por uma requisio de AJAX, o servidor mantido sempre atualizado corretamente, e o carregamento da prxima pgina far com que o contedo correto seja exibido.

8.8.3 Gravando pginas AJAX no Navigation Mode


Para o teste funcional, o modo de navegao geralmente o melhor modo para usar em gravar aplicaes web baseadas em AJAX, pelo menos para aquelas aes especficas na aplicao que usam requsies AJAX. Na verdade, voc provavelmente no vai notar nenhuma diferena em como Navigations so registrados para interaes AJAX. No entanto, se voc analisar mais de perto voc ver algumas pequenas diferenas: Se voc abrir as propriedades voc vai ver que a opo "Passive Navigation" est selecionada; Sob o ponto de navegao voc pode ver um item de AJAX request gravado para mostrar a requisio de AJAX que ocorreu quando o item foi clicado.

8.8.4 A reproduo de pginas AJAX no Navigation Mode


Quando as interaes AJAX gravadas no modo de navegao so reproduzidas para no fazer nada especfico ao iniciar a requisio AJAX. Pelo contrrio, ela simula um clique do mouse sobre o elemento para que o navegador inicie a interao AJAX como se o usurio tivesse feito isso. Uma vez que o pedido de AJAX seja iniciada pelo navegador, o Badboy observa, espera que ela termine, e ento registra o tempo de resposta, tamanho e outros atributos so registrados como uma resposta para a navegao. Aps a requisio de AJAX completa, o browser chama todas as manipulaes normais que ocorre quando a pgina navegada manualmente. Devido a isso atualizada a pgina com contedo novo e voc pode usar asseres para verificar o contedo exibido na pgina, assim como voc faria em um aplicativo no AJAX.

133

Automao de Testes

8.9 Usando o Badboy com JMeter


Enquanto o Badboy oferece alguns elementos caractersticos de teste de carga, para fazer testes de estresse reais muitas vezes precisamos de muito mais. Ao invs de tentar oferecer todas as caractersticas de um produto completo de teste de carga, o Badboy se integra com um produto livre Open Source chamado JMeter. O JMeter executado pela Apache Software Foundation e free e Open Source. O Badboy integra com o JMeter, permitindo que voc salve seus scripts no formato de arquivo JMeter para que voc possa abri-los e execut-los no JMeter. Este suporte significa que voc pode usar para gravar seus scripts para fazer testes funcionais, e salvar o mesmo script como um arquivo JMeter para fazer testes de desempenho usando o poder do JMeter! Exportar um script em formato JMeter muito simples. Basta gravar seu script e navegar at File-> Export to JMeter.

8.9.1 Limitaes
Infelizmente, h algumas limitaes do BadBoy ao apoio ao JMeter. Essas limitaes existem porque as caractersticas do JMeter e do Badboy no correspondem exatamente um ao outro e, em alguns casos, no possvel exportar itens diretamente. As seguintes limitaes devem ser observadas: JScript no podem ser exportados. o JMeter no pode executar JScript porque ele no tem uma janela de navegador incorporado. Itens de JScript sero ignorados no roteiro quando voc fizer a sua exportao; Fontes de dados no so exportados. o JMeter tem seu prprio conceito para substituir fontes de dados. Quando voc exporta o arquivo, todas as suas variveissero criadas no JMeter como "User Parameters". Voc pode, se quiser, fornecer um arquivo para o JMeter ler valores de variveis; Incrementos no so exportados. o JMeter no utiliza incrementos para modificar variveis. Pelo contrrio, as variveis so automaticamente modificadas pela iterao de um ciclo, e sa presena de um modificador de parmetros do usurio; Navegaes no so exportadas. Navegaes tambm necessitam em ter presente a janela do navegador e, portanto, no pode ser suportado diretamente pelo JMeter. Voc pode simular se quiser usando recursos o JMeter;

134

Automao de Testes

Asseres so exportadas, mas podem precisar de ajustes. O Badboy tentar exportar as asseres para o JMeter, mas devido a pequenas diferenas na forma como lidar com asseres entre JMeter e O Badboy possvel que eles nem sempre funcionem da mesma maneira. O Badboy verifica automaticamente por estes problemas e ir alert-lo com uma mensagem, depois da exportao que contenham detalhes sobre o que pode ter de ser ajustado.

135

Você também pode gostar